File: NEWS

package info (click to toggle)
hfst 3.16.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 14,532 kB
  • sloc: cpp: 101,875; sh: 6,717; python: 5,225; yacc: 4,985; lex: 2,900; makefile: 2,017; xml: 6
file content (1000 lines) | stat: -rw-r--r-- 28,036 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# NEWS for hfst-tools and library

This file contains all noteworthy changes in HFST development between releases.
For full listing of changes see ChangeLog.

## Noteworthy changes in 3.16.2

* Support for >OpenFst-1.8.0
    * only functional change is removal of n-best paths search for log weight
      automata, it probably has errored out before but has slightly different
      error now (HfstException instead of openfst exit)
* Optimisations to hfst-pmatch2fst alphabet handling

## Noteworthy changes in 3.16.1

* Bug fixes:

    * hfst-tokenize escapes both \r and \n now

    * regexp parsing more robust with comments and linebreaks

* Removal of some bundled libraries including foma and openfst, install
  suitable versions to compile support for them

* ICU stabilised as unicode handler over all

* experimental C API for rust bindings (unstable)

* new tools (testing):

    * hfst-check-alpha for checking and comparing alphabets in automata and
      their metadata

    * hfst-dump-alphabets for reviewing alphabets easier than hfst-summarize
      grepping

    * hfst-kill-paths for efficient path removal

* introduced clang-format to work towards standard code formatting

Noteworthy changes in 3.16.0
----------------------------

* Bugfixes:

  * During conversion between optimized-lookup and other formats, the alphabet
    was not being preserved, leading to incorrect behaviour in some cases.
    This has been fixed.

  * Fix segfaults in hfst-summarize, hfst-disjunct and foma back-end.

  * Force ICU, fixes #501.

  * Use unique_ptr for input/ouput stream memory allocation (#547).


* Improvements:

  * hfst-pmatch archives now no longer include or parse redundant alphabets,
    which in some cases can be a meaningful size and speed saving.

  * Multiple memory leaks fixed.

  * Drop support for TR1 standard assuming that C++14 is minimal requirement.

  * Drop legacy wrappers for foma and lexc (#532).

  * Use upstream Foma and by default upstream OpenFST.

  * Use C++17, or C++14 with bundled OpenFST.

  * Update external links for sfst, foma and flex.

  * Add lex/yacc sources to dist (see issue #524).

* Features:

  * A new variable in the hfst-pmatch language, "unicode-character-classes",
    which causes the use of built-in character sets to be interpreted at
    runtime using a unicode library.

  * Verbose output from hfst-pmatch2fst has been much improved, providing eg.
    a call graph of the process. It also warns about use of pmatch features
    that is likely to be incorrect and lead to errors.


Noteworthy changes in 3.15.5
----------------------------

* Fixes to pmatch:

  * Modify tracking of entry points to allow for RTNs in Captures()

  * Fix off-by-one bug in checking captures

* Fixes to other issues: #508, #488, #486, #452, #491, #494

* Fix memory leaks


Noteworthy changes in 3.15.4
----------------------------

* Import Foma patches with license change to Apache-2.0 and minimal other fixes

* Allow regeneration of Foma files so the generated files can be omitted

* Explicit license file for SFST


Noteworthy changes in 3.15.3
----------------------------

* Numerous improvements to command line tools, e.g. substitute, insert-freely, proc, fst2txt, expand


Noteworthy changes in 3.15.2
----------------------------

* Fix off-by-one bug in checking captures in pmatch


Noteworthy changes in 3.15.1
----------------------------

* Fix issue #443

* Fix issue #429

* Fix issue #409


Noteworthy changes in 3.15.0
----------------------------

* Numerous improvements in pmatch processing:

  * hfst-pmatch2fst now implements eg @include"filename.txt" as a preprocessing stage
  
  * hfst-pmatch2fst now implements Explode() and Implode() in full generality
  
  * hfst-pmatch now allows printing weights (in location mode, with --locate)
  
  * hfst.PmatchContainer.locate offered via python bindings
  
  * bugfixes and improvements hfst.PmatchContainer.tokenize

* Add tool hfst-eliminate-flags.

* Allow both escaped and unescaped zeros in multicharacters in all lexc lexicon entries (fixes issue #274).

* Also reweight state that is both initial and final in hfst-reweight (fixes issue #368).

* Do not let distributed files depend on configuration. Include man files in dist.

* Print warnings and error messages also in earlier stages of twol compilation.

* Add option --execute-and-quit (-E) to hfst-xfst.


Noteworthy changes in 3.14.0
----------------------------

* Numerous improvements to pmatching and tokenization:

  * pmatch now supports the default symbol

  * pmatch now supports reading word embeddings in the binary format

  * improvements to pmatch runtime context handling: a bug affecting expression-initial contexts is fixed, and pmatch now supports Ins() arcs inside RC() and NRC() contexts

  * in pmatch, bugs affecting multiple Ins() arcs, in particular nested ones, are fixed

* Implement variable 'retokenize' in hfst-xfst


Noteworthy changes in 3.13.0
----------------------------

* Numerous improvements to pmatching and tokenization:

  * [].with(X = Y) feature in pmatch This provides support in the pmatch2fst compiler to define "global flags".

  * Add a variable "xerox-composition", default to "on".

  * Consider list symbols (@L..." and "@X...") to be special.

  * Fix runtime handling of contexts and compilation of negative contexts.

  * Make Like() and Unlike() much faster by not sorting the whole vocabulary and only calculating each comparison key once.

  * Keep track of weights along context checking paths and unify weight handling.

  * In blankline-separated mode, keep blanklines in output too.

  * Round weight to zero decimals, non-sci.

  * Make hfst-tokenise usable as a lib; include simple string-to-string function.

  * Use libreadline in hfst-pmatch when available.

  * Cleanup remainder of the pmatch test suite, all the tests now pass.

* Python interface:

  * Support reading several twolc files.

  * Add functions 'compose' and 'cross_product' that take a list of transducers.

  * Allow empty string as input for hfst.fst and hfst.fsa and interpret it as epsilon.

  * Perform fsmbook tests also via python API.

  * Add option --local-hfst to setup.py.

  * Include pre-swig-generated wrappers to pypi source distribution.

* Compilation:

  * Use by default c++11 unordered_map and unordered_set, unless otherwise specified.

  * Add an option --without-c++11 (defaults to 'no') to compile hfst without c++11 support.

  * Require libc++ and osx version >= 10.7 with clang.

* New functions and options:

  * Add function HfstBasicTransducer::remove_final_weight.

  * Add function HfstTransducer::negate() for automata.

  * Add option --restricted-mode (-R) to hfst-xfst.

  * Flag diacritics: support getting a list of operations involved with a particular feature.

  * Allow creating HfstInputStream's from std::istream's.

* Fix issues #341 and #353, make workarounds for issue #358.


Noteworthy changes in 3.12.2
----------------------------

* Changes to configure:

  * Disable lexc and foma wrappers as well as hfst-train-tagger tool unless explicitly requested

  * Enable hfst-calculate and hfst-xfst by default

  * Add experimental options --with-openfst-log=lean and --with-sfst=lean which support a limited nuber of operations for these types (reading, writing, converting between types and deleting)

  * Require at least automake version 1.12 unless compiling from pre-yacc-generated sources

* Implement hfst-twolc as a single program instead of a script. Get rid of hfst-twolc-system and hfst-twolc-loc tools.

* Improve pmatch compilation and error handling mechanisms

* Improve hfst-tokenize tool

* Add transliterate output mode (--transliterate) to hfst-proc

* Changes to python interface:

  * Support twolc and sfst compilation

  * Improve HfstBasicTransducer iteration mechanism

  * Add experimental support for python version 2

  * Support apply up and apply down commands in function start_xfst


Noteworthy changes in 3.12.1
----------------------------

* Fix flag elimination bug (reported in issue #342)

* Do not allow unescaped dots in regular expressions

* Improvements to pmatch and tokenization tools:

  * Search for included files under scriptdir, not working dir

  * Add experimental two-vector model for word sense

  * Handle Apertium-style superblanks in --giella-cg format

* Rename the PyPI package to 'hfst' (currently available at testpypi.python.org)

* Update foma back-end


Noteworthy changes in 3.12.0
----------------------------

* fixes to memory leaks and efficiency

* fixes to numerous warnings

* changes in Python bindings:

  * rename hfst.rules into hfst.sfst_rules

  * get rid of hfst.types and offer implementation types in class ImplementationType

  * add Xerox-type rules in module hfst.xerox_rules

  * improve documentation

  * tentatively add partial support for pypi installation

* improvements to pmatch tools and hfst-proc


Noteworthy changes in 3.11.0
----------------------------

* Add docstrings to Python API

* Changes and improvements to pmatch tools, hfst-tokenize, hfst-optimized-lookup, hfst-lookup and hfst-xfst

* Fix bugs in flag elimination


Noteworthy changes in 3.10.0
----------------------------

* Swap directions of 'apply up' and 'apply down' in hfst-xfst, so that these commands work in the same way as in foma and xfst.

* Add a new tool called hfst-flookup. It does lookup from right to left, in the same way as foma's flookup and xerox's lookup. The tools hfst-lookup and hfst-optimized-lookup stay as they are.

* Improvements to pmatch and optimized lookup

* Make hfst-fst2fst print a more informative error message if a gzipped native foma transducer is given as input.

* Changes and improvements in Python interface:

  * Transducer functions returning a reference to the transducer now return void.

  * Tentatively add some pmatch functions.

  * Add some two-level rule functions.

  * Support lookup for transducers not in optimized-lookup format.

  * Support Python 2 unicode strings in lookup.


Noteworthy changes in 3.9.2
---------------------------

* Improvements to tokenization and pmatch tools


Noteworthy changes in 3.9.1
---------------------------

* License for the library code (under libhfst and python directories) is now LGPL 3

* Make python bindings compatible also with python2

* Add time cutoff option to hfst-pmatch and hfst-proc2

* Rename hfst-proc2 to hfst-tokenize, with hfst-proc2 and hfst-tokenise as aliases

* Use standard c++0x when compiling unless a higher standard is required with -std

* Check automake version during configuration to determine whether header files generated by yacc/bison should use extension .h (automake < 1.12) or .hh (automake >= 1.12)

* Omit infinitely ambiguous check in hfst-lookup when time cutoff is defined

* Improvements in Xerox markup rules

* A bugfix in compile-replace in hfst-xfst

* Improvements in pmatch tools, hfst-optimized-lookup, hfst-reweight, hfst-pair-test and hfst-substitute

* A bugfix in priority union


Noteworthy changes in 3.9.0
---------------------------

* Implement a new Python API

* Add option --time-cutoff to hfst-lookup

* Remove option --minimizeFlags from hfst-lexc and minimize flags by default, add option --alignStrings

* Add support for controlling input and output streams in xre, xfst and lexc compilers

* Update foma back-end

* Improve handling of negative weights, check for epsilon cycles with negative weights and issue a warning, if needed

* Improvements and bug fixes to hfst-optimized-lookup, hfst-proc2, hfst-proc and hfst-pmatch

* Reduce memory leaks when using hfst-ol format

* Support flag diacritics in replace rules

* Rewrite markup rules

* Make command line tools perform automatic conversion when processing transducers whose types differ


Noteworthy changes in 3.8.3
---------------------------

* Bugfixes and improvements to many tools, including hfst-xfst, hfst-proc(2),
  hfst-lexc, hfst-pmatch(2fst), hfst-reweight, hfst-pair-test, hfst-compose-intersect

* Better support for command line tools on windows


Noteworthy changes in 3.8.2
---------------------------

* Runtime speed improvements in pmatch

* Speedup in conversion to optimized lookup format

* Merge and compile-replace operations supported in hfst-xfst

* Added option --print-symbol-pair-statistis(=N) to hfst-summarize


Noteworthy changes in 3.8.1
---------------------------

* (the release of version 3.8.0 was delayed, its changes are also listed here)

* changes to flag diacritic handling

  * now hfst-lexc has options --withFlags, --minimizeFlags and --renameFlags to control
    hyperminimization

  * hfst-xfst has corresponding variables --lexc-with-flags, --lexc-minimize-flags and
    --lexc-rename-flags

  * hfst-xfst has variable xerox-composition (default ON) and hfst-lexc option
    --xerox-composition (default ON) to control if flags are matched with unknowns and
    identities in composition (as Xerox does)
 
  * hfst-regexp2fst also has option --xerox-composition (default OFF)

  * command twosided flag-diacritics (tfd) added to hfst-xfst

* added	a (temporary) tool called hfst-proc2 for simple tokenization, to become part of
  something else or be renamed in the future

* fixes to pmatch and optimized-lookup functionalities

* improvements to speed issues in optimized-lookup

* fixes to twolc functionalities

* fixed some issues found by scan-build

* improvements to xre parsing

* added option --Werror to hfst-lexc that treats warnings as errors


Noteworthy changes in 3.7.1
---------------------------

* same mappings with different weights are now handled right in
  parallel replace rules.

* improvements to optimized lookup format


Noteworthy changes in 3.7.0
---------------------------

* better support for weighted parallel replace rules

* allowing empty contexts in replace rules

* bugfixes and improvements to xfst and pmatch tools

* bugfixes to handling of optimized lookup transducers

* support for weighted containment operator

* tentatively added option and variable 'encode-weights' to regexp
  and xfst parsers to control determinization of weighted transducers,
  the default value being false (encoding weights prevents non-ending
  determinization in some cases)


Noteworthy changes in 3.6.1
---------------------------

* improvements to xfst, lexc, pmatch and lookup tools


Noteworthy changes in 3.6.0
---------------------------

* hfst-lexc uses native hfst functions

* improvements to pmatch tool

* limited support for optimized lookup transducers in hfst-xfst

* better support for Mac and Windows

* replace rule longest match bug fixed


Noteworthy changes in 3.5.1
---------------------------

* improvements and bugfixes to lexc, pmatch and xfst tools

* added an option --enable-all-tools in configure


Noteworthy changes in 3.5.0
---------------------------

* a new tool hfst-xfst for compiling xfst scripts and using xfst commands
  in interactive mode (NOTE: hfst-xfst was earlier a wrapper for foma, so this
  change breaks backwards compatibility)

* wrapper for foma command line tool is renamed to hfst-foma

* changes to the api

  * made HfstTransducer::harmonize() a public member

  * added a boolean argument to function 'set_final_weights' which defines
    whether existing weights are summed with the new weight or overwritten

  * updated cross product and apply boundary mark in replace rules

* improvements to pmatch tool

  * --verbose output gives neater and more fine-grained information

  * some fixes to ?-expansion

  * more checking and better error diagnostics in case of broken tags

  * time individual compilations

  * fixes to leftmost greediness and overlong input

* changes to other tools

  * added support for weights in prolog format, also added an option
    --prolog to hfst-fst2txt

  * added option --eliminate-flags to hfst-compare

  * added option --harmonize-flags to hfst-regex2fst

  * lexc parser handles epsilon '0' correctly

  * better support for quoted literals and marker '.#.' in xre parser

  * added warning messages about hfst-special symbols of form
    '@_.*_@' to xre parser that are printed in verbose mode


Noteworthy changes in 3.4.6
---------------------------

* Improvements to pmatch functionalities

* Some fixes to twolc, proc and lexc tools

* New operators added to the regexp parser

* Reading in prolog format supported in hfst-txt2fst


Noteworthy changes in 3.4.5
---------------------------

* Several improvements to pmatch tools

* Function calls supported in xre parser

* A bug in replace rules with term complement in context fixed

* Some fixes to the lexc parser

* Now option combination --obey-flags --random works in hfst-fst2strings


Noteworthy changes in 3.4.4
---------------------------

* foma and sfst backends are enabled by default in configure

* Updated to foma version 0.9.17

* New functions added to HfstTransitionGraph, e.g. longest_string_size and
  top_sort

* pmatch tools updated

* Bugs fixed in xre parser and hfst-twolc

* A boolean argument added to binary transducer functions that controls
  whether symbol harmonization is carried out


Noteworthy changes in 3.4.3
---------------------------

* Better support for compilation on Cygwin.

* Tool hfst-prune-alphabet added.

* A function 'hfst_get_exception()' added to the swig interface that
  can be used to handle exceptions on Python 3.

* Bugfixes in hfst-info, hfst-twolc, hfst-regexp2fst and tagger tools.

* Flag diacritic harmonization problem fixed, now identity and
  unknown symbols are not expanded by flag diacritics.


Noteworthy changes in 3.4.2
---------------------------

* Added regexp substitution and left replace epenthesis to regexp parser.

* A bug in including zlib in foma fixed.

* Now ncurses library is used instead if termcap is not found when
  building hfst-xfst.


Noteworthy changes in 3.4.1
---------------------------

* Updates to regex parser and optimized lookup transducer

* SWIG bindings now work with both Python version 2 and 3. As FILE* conversions
  are no longer supported in Python 3, more wrapper functions are added
  that use an HfstFile argument instead.

* Some of the warnings in back-end libraries fixed or suppressed

* A bug in hfst-xfst linking fixed

* Obsolete command line tools removed


Noteworthy changes in 3.4.0
---------------------------

* Experimental version of the SWIG-generated Python interface is
  included in the distribution. See swig/README for more info.

* All back-ends (SFST, OpenFst and foma) are bundled with HFST.
  There is no more need to install them separately.


Noteworthy changes in 3.3.15
----------------------------

* Small bugs fixed in function insert_freely, flag diacritic handling
  as well as lexc and pmatch tools

* GNU and bash dependencies removed from scripts to make them more portable

* The epsilon symbol argument in HfstTransducer(FILE*, ...) is made obligatory,
  also a new obligatory argument added that keeps track of the line number
  in the AT&T file


Noteworthy changes in 3.3.14
----------------------------

* Bug fixes in tools pmatch2fst, strings2fst, substitute and guessify

* Bug fixes in replace rules

* More functionalities added to the Python interface


Noteworthy changes in 3.3.13
----------------------------

* Better support for Windows compilation

* Some bugs in replace rules and hfst-regexp2fst fixed

* Bug fixes and updates in command line tools including hfst-tagger, hfst-info, optimized-lookup, hfst-regexp2fst and hfst-guessify

* PCKIMMO output mode for hfst-fst2txt

* Now option --norm precedes --log in hfst-strings2fst


Noteworthy changes in 3.3.12
----------------------------

* Support for default symbol @_DEFAULT_SYMBOL_@

* A tagger tool hfst-tagger

* Improvements to hfst-lexc

* Removed warning messages and XFAIL tests that may confuse users

* Updated Doxygen documentation.


Noteworthy changes in 3.3.11
----------------------------

* Changes to hfst-proc text formatting

* Containment and term negation added to regexp parser

* Composing intersection supports identity symbols and
  inverting the composition

* Introduction of semifunctional pmatch2fst parser

* Function shuffle added under HfstTransducer

* Added the option --print-separator in hfst-fst2strings
  to achieve better control of pipelined command line tools

Noteworthy changes in 3.3.10
----------------------------

* All binary tools handle the case where the first input
  contains several transducers and the second input exactly
  one transducer

* hfst-summarize prints at the end how many transducers it has
  read in total, making it easier to work with transducer archives

* hfst-fst2strings bug fixed, now it prints weights with
  options --random -w

Noteworthy changes in 3.3.9
---------------------------

* Bugs fixed and new features added to hfst-proc

* Xfst rules tentatively supported in hfst-regexp2fst

* hfst-fst2strings does not produce duplicate paths any more
  when using foma as backend

* hfst-lexc implementation format defaults to openfst-tropical
  instead of foma

Noteworthy changes in 3.3.8
---------------------------

* Fixes 3.3.7

Noteworthy changes in 3.3.7
---------------------------

* Compatible with OpenFst version 1.3.1

* Identity symbols supported in hfst-regexp2fst

Noteworthy changes in 3.3.6
---------------------------

* Include directives of foma and SFST header files changed so
  that standard include path is used instead of source path

* Compilation warnings and some memory leaks fixed

Noteworthy changes in 3.3.5
---------------------------

* hfst-fst2txt.cc also writes to dot/graphviz format

* Epenthesis added for Xerox rules parser

* hfst-compose-intersect gives warnings on missing symbols

Noteworthy changes in 3.3.4
---------------------------

* Substitution functions optimized and new substitution functions added that
  perform multiple substitutions at the same time.

* The tool hfst-substitute now implements the option --in-order.

* Updated to OpenFst version 1.2.10.

* Conversions between transducer formats are more efficient.

Noteworthy changes in 3.3.3
---------------------------

* HfstTransitionGraph and optimized lookup transducer code optimized

* Foma transducer name is not copied to the net but is left empty

* Small fixes to twolc

Noteworthy changes in 3.3.2
---------------------------

* Forward compatibility with OpenFst 1.2.8 is achieved.

* PKG_ macros removed from end user builds since they do not work nicely on
  all platforms.

Noteworthy changes in 3.3.1
---------------------------

* Handling of flag diacritics improved.

* More examples in fsmbook-examples included in tests.

* Extra files created during tests as well as generated autotools files
  are now ignored by svn.

Noteworthy changes in 3.3.0
---------------------------

* HFST updated to work with the newest versions of backend libraries

* a new replace down function by Karttunen added

* HfstTransitionGraph and conversions between formats made less error-prone

* protected/public changes in API

* SFST and foma libraries are disabled from default build

Noteworthy changes in 3.2.0
---------------------------

* Numerous improvements to hfst-proc, including better uppercasing via glib,
  better compound handling, new analysis mode for raw analysis without case
  changes or special symbols etc.

* old slow lexc (not built by default)

* numerous scripting fixes for mac os x compatibility with foma

* constness changes in API

Noteworthy changes in 3.1.1
---------------------------

* Numerous bugfixes, in particular regarding a broken assumption in
  compose-intersect

Noteworthy changes in 3.1.0
---------------------------

* api for lookup and lookdown changed, previously memory didn't get initialized
  anywhere, causing a serious bug

Noteworthy changes in 3.0.3
---------------------------

* numerous internal improvements, eg. distcheck is now functional

* many bugfixes, especially wrt. INDENTITY_PAIR & OTHER SYMBOL, composition,
  final weights in ol-converted transducers

Noteworthy changes in 3.0.2
---------------------------

* some fixes to OSX compatibility

* no more license conflict problems wrt foma

* better memory use in compose-intersect

* new implementation of internal transducer

Noteworthy changes in 3.0.1
---------------------------

* this is a bugfix release

* conversion to hfst-optimized-lookup format was fundamentally broken in the
  original release; this should provide a fix and considerable speedup

* compose-intersect memory use is much improved

Noteworthy changes in 3.0
-------------------------

* all new API in object oriented form

* brand new foma backend for unweighted transducer handling

* the FST libraries used for automata handling are now dynamically linked to
  HFST

    * this requires end users to install needed backends themselves

* hfst-lexc and hfst-xfst based on foma's compiler

  * xfst is now also fully supported

  * the obsolete command line clients for HFST-based compilation of lexc and
    xfst scripts are hidden in hfst-lexc2fst and hfst-xfst2fst

* preliminary support for unknown character classes

* optimized-lookup backend supported in library

  * dropped special tools for optimised handling since optimised lookup is
    included in library: hfst-optimised-lookup -> hfst-lookup;
    hfst-lookup-optimize -> hfst-fst2fst

* hfst-proc tool to emulate lt-proc, cg-proc

* Slightly improved string and text formats to support weights uniformly and
  parsing tabs and spaces as automata arcs: see `wiki page for text and string
  formats
  <https://kitwiki.csc.fi/twiki/bin/view/KitWiki/HfstStringAndTextFormats>`

* better error handling using exceptions

* The argument handling order of binary tools changed: stdin is first if not
  specified

* The automata are now packed in HFST automaton container format (akin to AVI
  for videos); this supports arbitrary metadata and underlying FST formats

* the symbol handling is more implicit; no more symbol table arguments for tools
  or hfst-symbols command

* converted to new autotools: silent rules and color tests

* Hfst's internal automata format for fallback on some unsupported operations
  and for conversions

Noteworthy changes in 2.4.1
---------------------------

* Fixed inclusion path in pkg-config file

* Fixed extraneous epsilon path in hfst-lexc transducers

Noteworthy changes in release 2.4
---------------------------------

* Multiple compilation issued fixed w.r.t string.h inclusion inside hfst source
  tree without installed headers

* Added preliminary pkg-config support

* Optimizations for flag diacritics in optimized format; NB. the optimized
  format in 2.4 is not compatible with optimized format of previous releases

* More input and output formatting options for hfst-lookup

* New tool hfst-omor-evaluate for testing morphological transducers
  (an overblown glorified hfst-diff-test)

* Preliminary tool for killing evil flag diacritics

* Several minor bug fixes in composing intersection and flag diacritics

Noteworthy changes in release 2.3
---------------------------------

* Major fixes in flag diacritic handling for lookup and lookup-optimize

* New tool hfst-substitute for safe relabeling

* Bug fixes in hfst-compose-intersect w.r.t. any symbol and #

* Remove gettext support because of numerous portability issues

Noteworthy changes in release 2.2
---------------------------------

* Bug fixes in intersecting composition,  is_subset, negation,

* Handling of flag diacritics included in lookup

* Remove readline because of numerous portability issues

* Remove alphabet and metadata from hfst-lexc

* hfst-lookup support for custom formatting of readings

* fixed hfst-twolc escaping in set constructions

Noteworthy changes in release 2.1
---------------------------------

* hfst-twolc and hfst-compose-intersect understand # like xerox originals