6.267 . renamed deterministic/1 to fsa_deterministic/1 because the first is a built-in in recent SWI versions ... 6.266 . geometry of canvas / toplevel window changed (menu items should now remain visible upon re-sizing) . if weight=0 it is not displayed in visualized automata . ensure error message is printed with -tk (bug in Sicstus?) 6.264 . fsa_fl: accept functions now fail immediately (suggestion by Markus Walther) 6.263 . added operators weighted_domain/2 and weighted_range/2. 6.262 . (minimum_path) back to pre-6.261 - not a bug after all . binaries are now created with -static to the C compiler. So they are really stand-alone and don't depend on a specific version of the C library anymore. In addition it is supposed to solve a problem with sbrk versus malloc that some people encountered problems with (thanks again Ken). 6.261 . introduces a bug in minimum/3 code for weighted transducers . bug repaired pstricks output (Output to LaTeX/PSTricks broken, when floating-point numbers are written out in scientific notation, which is not supported by TeX. (thanks Ken Shan) . added fsa.ico to source distribution 6.259 . contribution from Rob Malouf: 8-bit clean C-code as well some efficiency improvements in generated C-code. . some predicates renamed for compatibility with newer SWI (merge/3, char_type/2) 6.258 . repaired bug in -identical (thanx Jan Daciuk) . repaired bug in sl_transducer Examples/twolevel/samelength.pl (thanks Dale Gerdemann) . added various additions by Dale Gerdemann in the Examples/.. . bug (thx Tamas) in compilation to C (interaction multichar symbols and unknown symbol) . bug (thx Karl-Michael Schneider) in C++ code 2002/01/03 10:17:18 6.257 . more changes in creation of stand-alone binaries . non-zero exit status in case of errors (thanks Markus) . spxref and spdet: removed number of unreachable predicates and a few other minor problems . make procedure for swi: now creates saved state . added warning for conversion of predicate module which yields variable transition labels (thanks Markus) . added documentation for det_random (request by Jan D) . added random/5 which allows one to specify final state likelihood (rather than making each state final) 2001/09/06 06:21:33 6.255 . Sicstus 3.9 (beta) creation of stand-alone binaries. 6.253 . re-did fsa_fl: now treats question marks and identities! Also expand multi-character input symbols automatically. The conversion is available as an undocumented regular expression operator called converse_fl --> ^A is used for symbol not otherwise used in automaton, without associated identity --> ^B is used for symbol not otherwise used in automaton, *with* associated identity --> no t(w)-minimization, only t(w)-determinization . NEW: binary version for Linux/Intel now uses *static* linking. Much easier to install. Eventhough this is called static linking, it still requires a number of dynamic libraries; do `ldd fsa' to find out what libraries you need (standard libraries + tcl/tk 8.3, presumably). This uses experimental Sicstus 3.9 support. 6.252 . added Vaillete's monadic second order logic stuff to the Examples 6.251 . improved FSM output (for AT&T's FSM programme) (thanks Markus) . repaired a bug in fsa_interpreter (thanks Dale) . few other small things, cf cvs log 6.249 . removed -rename obsolete option from doc (thanks Markus) 6.248 . new functionality: -- -prefix_tree : produces weighted trie for all strings read -- -sample : produces stochastic sample of automaton 6.247 . bug in pragma operator repaired. Changed syntax of pragma operator! 6.243 . c++ support 6.240 . todo: help/1 is (in case you have xpce) already defined in swi. . error message in swi 6.237 . late unification of result in fsa_regex, in order to prevent error messages in case of simple non-unification. 6.236 . added few more style-check declarations for SWI (thanks Ralf) 6.231 . removed test set from Examples, too big 6.230 . more cvs 6.222 . cvs 6.221 . Examples/DutchWords/Transducers . added some more tests . manual, *lsjdf* works better, pm in Manual/ 6.220 . have flags for # and | . fsa_frozen in Examples/DutchWords/h5000.d for faster approx test 6.219 . #| -> # in fsa_fl multiple final state output 6.218 . dot2triples: didn't properly deal with multiple start states . yap 4.3.10: term_hash now needs to load library(terms) first . yap 4.3.10: portray_error etc, as in SICStus . yap 4.3.10: nb altered Yap../library/terms.yap! . fsa_fl now treats multiple outputs [o1, o2, .., on] at final states by concatenating them with '|o1#o2#..on' . fsa_dict: changed some internal names; variants for reversed/ non-reversed dictionary construction. 6.217 . more dicontiguous declarations for sicstus, in Examples/ 6.216 . swi 3.4.0 (select/3 !) . m-pairs 6.214 . Tests altered; more useful cpu statistics; keep outputs; moved to Examples/Tests (you need the examples anyway to run the tests). . fsa_t_determinizer: only try simplify output sequences if there is predicates 6.213 . I had problems with saved-states in yap (apparantly related to the use of assert/retract); for the moment there is Makefile.sav if you still would like a saved state to be constructed; otherwise the system loads all .pl files upon startup (slow, but robust). . assert/retract for yap replaced with recordz/erase; also, wrapped recordz goals inside catch() in order to survive cases where term is too large (>16Mb, it happens!!). . added discontiguous definitions in various example files . bug in wt_minimize (didn't do cleanup in delayed output sequences) 6.212 . wt_minimize now works analogous to t_minimize . m_pairs: negation patched . :: now also allows arbitrary transducers, so you can do things like replace(a:b)::3 . range doesn't compute synchronized transducer first anymore . weights/1 gets the weights of a given automaton . no_weights/1 ignores the weights of a given automaton 6.211 . fsa_tk small stuff . options: -identical nb. a canonical form for non-deterministic automata is not possible. if automaton is deterministic, then accessible/1 operator will return canonical form 6.210 . tminimization ... . small bug in composition (resulting in $@(a)/$@(a) pairs even if identity(a,X) would bind X=a. . cleanup: now first does local expand_into_non_overlapping symbols in order to be able to do cases right like {{a,b}x{b,c},{b,c}x{c,a},{c,a}x{a,b}} . cleanup for transducers: now first tries to cleanup identity pairs before domain / range cleanups. Apparantly this works better, e.g. for cases such as {{a,b}:a,`c} . caching for cleanup; caching for determinize_preds 6.209 . tminimization remains a headache... .... I've tried various possibilities. Now there is m_pairs which is a variant of minimize which knows about pairs of symbols. Works quite well (?). . Transducers/tfst.tnd contained []/[] transitions --> now jumps . Examples/gvn now properly takes into account predicate module in translation of # 6.208 . removed `pwd` from Makefiles, they fail under cygwin environment . Test/Makefile: altered >/dev/null in echo ''| (for cygwin too) . Test/Makefile: altered wc stuff, for windows . Manual/ included navigation buttons locally; thanks David Carter . Examples/AprroxIntersection added more comments and slight extensions 6.207 . grail input/output . added hooks in fsa_regex to be able to use all_components_reachable . Examples/ApproxIntersection for David Carter: aligning automata approximately. 6.206 . install separate .pl (.po) files too, to enable usage as a library . Test/Makefile Test/testscript for compatibility with Win32 6.205 . Test/cpu now reports on gc time spent too. 6.204 . swi version now reports CPU time with the garbage collection time *subtracted* from it; just like sicstus and yap do. Also reports memory space as `0' even if in fact memory got smaller (it sometimes does!). 6.203 . more improvements in cleanup... 6.202 . swi/Makefile.save in order to construct single binary (fast startup of fsa; does not seem to work on all platforms, in fact, not on any as far as I've tried). To try: ( cd swi ; rm afsa ; make install -f Makefile.save ) . fsa_interpreter: added fsa_regex_approx_transduces_wt/4; also removed some bugs from documentation there. . greatly improved cleanup, more efficient. Especially for swi. 6.201 . option -raa repaired 6.200 . weighted transducers! So we now have: recognizers weighted recognizers (i.e. string to weight transducers) transducers (i.e. string to string transducers) weighted transducers (i.e. string to weighted string transducers) previously, weighted recognizers had a symbols declaration part of t(Ma,Mb); now they are r(Ma,fsa_frozen): potential upward compatibility problem! . weighted transducers: (i.e. string to weighted strings transducers) . weights are now assumed to be *always* in fsa_frozen predicate module . weights are introduced by a::3 or by a:b:3 New operators / new uses of operators: . a::3 . a:b:3 . {a,b} x {a..z} x {1,2,3} . wt_minimize(E) . wt_determinize(E) . weighted_recognizer(E) . weighted_{letter_|sequence_}transducer(E) . nb a in the context of a:b:3 is coerced first into a:0, and then: . nb a:X in the context of a:b:3 is coerced into a:a:X... . a in the context of a:3 is coerced into a:0 . combination: [a,a:b,a::4] === [a:a:0,a:b:0,a:a::4] . simplified a number of options to do with compilation and application of automata. You should not any longer specify different options for different transducer, weighted transducer, etc. Rather, the appropriate action is taken based on the type of automaton. . Test/Makefile . Test/gold . restructured manual info . deprecated/obsolete: sigma/2 sigma/3 sigma_domain/2 sigma_range/2 class/1 negated_class/1 ------------------------------------------------------------------------------- 6.170 . added help for operator expand_non_overlapping_predicates, extended help for cleanup . `E is the term-complement of E, i.e. ? - E. (xerox uses \E but I have too many problems with \ in the prolog<->tcl interface to make this work). . script in Test/cpur to compare cpu timings more robustly 6.169 . Dale and I realized that the use of predicates implies that the result of minimize and t_minimize is not neccessarily minimal. For recognizers this can easily be solved by wrapping the result inside a cleanup/1 (this is the default now); for transducers you can do it in the current version by defining t-minimization as follows: tminimize(cleanup(letter_transducer(m(t_minimize0(t_determinize( expand_non_overlapping_predicates(A)))))))). the drawback of this `work-around' is that it is quite slow; but results are smaller (minimal!). Had to alter Test/gold as well. . bug in fsa_globals which prohibited write=davinci 6.168 . cleanup now works partly for sequence transducers; it does not create a letter-transducer. 6.167 . more efficient expand_non_overlapping_predicates; now uses fsa_pred_module:determinize_preds (as it should have from the beginning) 6.166 . expand_predicates should set predicate module to fsa_frozen 6.165 . cleanup is now part of m/1 operator. Otherwise `minimization' is not minimal... 6.164 . fsa_minimizer: extra sorting. -------------------------6.163 stable version---------------------------- 6.163 . fsa_regex: w-minimize now uses m( instead of mb( 6.162 . fsa_regex: t-minimize now uses m( instead of mb( 6.161 . yap 4.3.9 . new operator words/1 for Gosse; removed dict/1; perfect_hash now interfaces directly with fsa_dict.pl 6.160 . logical update semantics for yap . sicstus 3.8.4 . yap 4.3.8 6.159 . new operator pragma(List,Expr) which is equivalent to Expr, except that it instructs the compiler to compile each of the subexpressions of Expr, given as the list List, first. This is useful in case a macro uses multiple occurrences of a partial expression. macro(x23(P,Q), ljsdjkf([P,P,Q,Q,P,P,Q,Q])). macro(x23(P,Q), pragma([P,Q], ljsdjkf([P,P,Q,Q,P,P,Q,Q]))). . incorporated pragma in various operator files (sometimes instead of cache(..) . binary for Sparc 6.158 . updated Graph2Phon (thanks Gosse) . transduce from tk first made a letter-transducer (without reason) thanks again Gosse . tl1 tl2 tl3 in Test/ 6.157 . moved fsa.tcl inside fsa_tk.pl: easier setup, no need for maintaining where fsa.tcl is gone etc. Also removed Lefty directory since it's only one file anyway. . renamed aux.pl in some directories. This name is reserved on win32 platform (sigh). . moved complicated perl command in Test/Makefile in separate script (otherwise line too long (?) on win32). . rather than running perl scripts directly from Makefile, I now use `perl script': then it works on win32 too. . bug in is_functional `cyle' --> `cycle'! . added rs9721 to Test/ 6.156 . tcl/tk widget will turn black during computation; furthermore, events will be treated on a regular basis. Finally, messages displayed when the widget is busy, indicating what's going on. . some further additions to gui . Examples/RocheSchabes/gvn : is_functional in Roche and Schabes appears to be wrong. We (Dale G. and I) have corrected the algorithm (or so we believe) and gvn.pl now reflects this corrected version. . rs9720 in Test/ to check this. . enhancements to Examples/twolevel . many enhancements to Examples/OptimalityTheory (this replaces the GerdemannVannoordOT and Karttunen98 directories) 6.154 . sicstus 3.8.3 . display not_in now abbreviates too . added Examples/twolevel which contains macro's for Kimmo style twolevel rules (by Rob Malouf and GvN) . greatly improved Examples/GerdemannVannoordOT which is an alternative to Karttunen's OT finite-state implementation . also cleanup of Examples/Karttunen98 6.153 . Examples/RocheSchabes97/gvn.pl: ambiguous was not working properly. . new operator: expand_non_overlapping_predicates/1: ensures that automaton uses predicates such that all predicates are mutually exclusive. Useful for some operations which don't know about predicates. For this to work, your predicate module must define negation (except if your predicate module has no conjunction for two non-identical predicates). . simplified tkconsole stuff, tkterm.tcl is now found more robustly by the system itself . tell-told pairs have been replaced by fsa_util:to_file in order that user and user_error are never closed (this confuses tkterm). . bug in same_length cross product 6.152 . experimental port of the SICStus version for windows NT . and the SWI version too 6.150 . experimental: compilation to Java. . compilation to C: *output* symbols need not be one letter atoms.. . combined C and JAVA in fsa_fl.pl . more debug info for setting flags . much more compact C output . fsa_interpreter:string_to_list_of_symbols (malouf@let.rug.nl) 6.148 . re-introduced some cleanups again, hopefully without bugs this time 6.147 . src/compiler_to_c: C-functions now return 1 in case of success, and 0 otherwise (don't know why I did it the other way around..) . documentation approximate matching . t_minimize(t_determinize(.. works again . counting transductions works again even if nr_sol_max is reached 6.146 . improved approximate matching; now produces a recipe rather than corresponding strings. . some further tests involving approx matching . improved Test/Makefile . postscript output repaired again (bug introduced in 6.137) . domain doesn't synchronize first anymore (not needed, is faster) 6.145 . added warning in t-determinize . gui: finally can have ' in regex without problems 6.143 . approximate transductions. options -approx -t_approx -w_approx This does approximate recogniztion for the domain of the transducer, and applies the transducer to each of these. This is *much* easier to implement than the direct implementation as in Oflazer. For very complicated transducers this is inefficient because it first needs to compute the determinized domain. . different tk widget: single menubutton with readiobuttons to select between accept/transduce/approximate etc. 6.142 . approximate matching: for a given recognizer, and a given string, returns the best matching string (using edit-distance i.e. the minimum number of insertions and deletions). It does a best-first search, rather than limited-depth backtrack search as in Oflazer's work. The advantage is that we don't need to rely on a given maximum edit distance. . added some tests to Test/ and removed nogc stuff (not necc anymore) 6.141 . gifs to Manual . manual.ps repaired (no more palatino for smaller pdf) . manual.pdf 6.140 . Test/README updated 6.139 . small bugs thanks to Roberto Bagnara bagnara@cs.unipr.it 6.138 . finally got rid of FSBox --> built-in in Tcl/Tk 8.0 . bug in fsa_visualization (if dot was used in gui) 6.137 . gui: SaveAs now uses current geometry information 6.136 . binary/create/Makefile: contribute target added 6.135 . module prefix in fsa_interpreter.pl . some meta_predicate declarations where wrong * thanks Robert Andersson, robert@ling.gu.se (this caused segmentation violations on Solaris) . changed CHANGES ;-) 6.134 . YAP 4.3.2 (charsio) 6.133 . .po files are back in SICStus due to saved-state problems on Solaris (however, it doesn't solve that problem) * Robert Andersson, robert@ling.gu.se * Felipe Zipitria fzipi@fing.edu.uy 6.132 . dif replaced by \== in fsa_t_determinizer (for swi) . also select/3 has different argument order in swi as opposed to yap and sicstus (sigh...) 6.131 . added cleanup in t-determinizer in order to determinize examples such as [{[a:b,class([x,y]):d],[a:c,class([y,z]):d]},a*]. Isn't that cute! 6.130 . bug in cleanup * Dale Gerdemann dg@sfs.nphil.uni-tuebingen.de 6.129 . bug in set_bbbtree 6.127 . SICStus 3.8.2 . YAP 4.3.0 . SWI 3.3.1 (still some segm. violations) 6.125 . RCS . Alpha/Linux main development platform 6.124 . create now uses sicstus Common Makefile definitions 6.123 . binary added for alpha-linux-glibc21 . preprocess script 6.122 . latest patch of YAP 4.2.1 (pl18) 6.121 . bug in fsa_preds: couldn't use non-atomic symbols 6.120 . SICStus 3.8.1 6.114 . double-clicking on files in FSBox Arnaud Adant adant@usa.net 6.109 . postscript version of the manual (using html2ps) 6.108 . binary distributions, based on SICStus, available for HP-UX and Linux. There's also a directory, sic/create_binary, which can be used to create binary distributions on other platforms. Contributions requested! 6.105 . FSA now works with YAP and SWI in addition to Sicstus! Cf. the README files in the corresponding sub-dirs for host-prolog-specific notes. . ISO predicate names atom_codes, number_codes, atom_concat . fsa_pred_module and fsa_semiring with linking clauses in order to prevent Module:Goal calls; is much FASTER! . further simplications in fsa_main; moved option treatment to fsa_options; . further modularization. global var names are all in fsa: . calling fsa as library has been simplified . names of public predicates all fsa_ . this is all intended towards easier porting of at least the library part of FSA (i.e. FSA without graph. user-interface, help, command interpreter, command-line options parsing). Porting to what? Perhaps yap, swi, if-prolog, gnu-prolog. . so many predicate names have changed. Incompatibility warning! . added index to manual, fully automatic! . bug in ins/1 operator (no symbol allowed to be added at the end...) . version in manual . compact i/o format faster . assoc replaced by bbb_tree (similar, but doesn't assume SICStus library) . many simple changes for YAP and SWI compatibility . completely altered make procedure, for three different targets; preprocess script to generate YAP/SWI/SICStus sources on the basis of single input. --------------------- major incompatibilities ----------------------------- 6.051 . removed autoloading (was only useful for OS without saved state, but didn't work and is very error-prone) . removed concat.sl; replaced by format_to_atom. Simplifies installation / porting. . reading strings from String: field in tk widget now will use name/2 instead of atom_chars/2 again in order to be able to read integer symbols. Problem remains, of course: how to convert "6" to a symbol: '6' (atom) or 6 (integer)? 6.050 . more consistent coloring - shaping of nodes in various visualization formats . difference between local_ and global_complement has gone (relick from FSA5 as far as I can remember) . msb in bitsets.pl (used in Examples6/PredModules/bit_preds.pl) 6.049 . bug repaired in fsa_interpreter ($dequeue as the final output was not treated ..) . another small bug in fsa_interpreter (lines read message) . streamlined fsa_sync.pl; added comments as well 6.047 . per_state per_graph improved; introduced per_inverted_graph, per_co_reachable_graph. Read the CL paper. Don't worry about it. 6.046 . reachable_efree improved 6.045 . bug in convert_sym_pred . mh is default, except for fsa_dict, and t_m t_d w_m w_d . bug in subs/1 del/1 in combination with $@ . experimented with properties to prevent redundant accessible coaccessible computations; didn't seem worth it. . tried to improve compose_fa; somewhat faster. 6.044 . bug in fsa_dict (transitions weren't sorted). . fsa_dict: now creates reversed automaton, which is det-rev-det afterwards (prevents sorting). . bug in count_fa from gui 6.043 . more experimenting with ensure_determinize; it would be better to remember how automata were constructed (using some system of properties associated with an automaton). 6.042 . ensure_determinize . debugging: debug-level 2 only shows major algorithmic efforts; use debug-level 3 for full trace of regex compiler. . simplified, faster, and less memory-intensive minimize_hopcroft implementation. Finally appears to work in n log n time. And it does treat predicates on symbols now. . minimize_hopcroft_ullman, -mhu, mhu(..) have all gone. That algorithm is too slow anyway, and the implementation looks quite horrible. Saves time on maintenance. . Also included Grimley-Evans' implementation in the Examples dir. I believe my implementation is cleaner (no database manipulation, no failure-driven loops, no cuts). The FSA6 version is faster than G-E's version as well (this took some work...), about 2.5 times faster. Final results: mb: Brzozozwski mh: Hopcroft (GvN) mge: Hopcroft (Gr-E) mh0: Hopcroft (GvN) without determimistic and (co)accessiblity checks mge0: Hopcroft (Gr-E) ,, ,, ,, msecs, same machine. linear automata: n: size n mb mh mge mh0 mge0 10 0 0 10 10 10 20 0 0 10 0 10 50 0 10 30 10 30 100 10 30 60 20 50 200 10 50 100 30 100 500 50 110 260 90 230 1000 100 230 540 160 470 2000 200 460 1080 340 950 5000 520 1350 2700 950 2390 10000 1140 2870 5640 1980 4780 20000 2340 5900 11430 4120 9820 ------- ------- ------- ------- ------- total 4370 11010 21860 7710 18840 (so mh is only 2.5 times as slow as mb here. That's quite surprising since mb doesn't do much work: it recognizes that the (reversed) automata are deterministic and thus it suffices to ensure (co)accessiblity; the subset construction algorithm is thus skipped.) some deterministic automata from Nederhof; totals only: mb mh mge mh0 mge0 3910 9020 22210 5070 16200 various random deterministic automata, 1000 states, various numbers of symbols, transitions. Mb is __much__ slower for these; out of time. set 1: totals only; mh mge 101180 276470 set 2: totals only, very easy examples; mh mge 1650 1420 set 3: totals only; mh mge 107940 310010 [for some reason the differences are much larger on Linux; dynamic predicates slower on linux or so?] 6.041 . bug in cleanup repaired . bugs in tk-help repaired 6.038 . details, details . help . fsa_regex: more reachable; improved reachable so it doesn't use rename . moved indexing pred's to fsa_data 6.035 . fsa_compiler_to_c: new flag to_c_conversion. If off, no conversion of input (for cases that are already in appropriate format) . write=count only displays count information of automaton . speed-up fsa_minimum_path (for -wm -tm) 6.034 . test procedure . gvn improved to use non-updatable hash (faster) . assoc has gone from fsa_visualization . assoc has gone from minimum_only (should be faster as well) . trees has gone from minimum_path (should be faster as well) 6.033 . further improvements in fsa_arrays. Docs added/updated. New global variable hash_size to determine default size of hashes. Normal arrays do _not_ set size anymore. 6.031 . N+K trees instead of fsa_arrays. Faster because all arithmetic can be bit-fiddling. 6.028 . docs for fsa_regex . removed cleanup/1 from compose (incidentally left after experiment). Faster. . in GerdemannVannoord99 replace_nm and lm_concat_nm faster versions whicht treat markers in the un-sound old-fashioned way . removed redundant minimizations from various examples 6.027 . little more work on minimize_hopcroft. Still can't understand how to get n-log-n like behavior in practice (cf paper by Kiraz and Grimley-Evans, WIA 97). . two new buttons to expand macros (suggested by Martin Jansche). . streamlined fsa_regex a bit more, is faster. Simplified operators definitions: you're not supposed to alter those anyway (i.e. op/3). . new example: spell checking is priority union of a dictionary and levenshtein distance N (for fixed N). See Examples/Spell/ . finally fixed pred-module for weighted transducers (I hope). Outputs are always predicates, are frozen for operations where weights really matter. (coercion problem might arise in other contexts, i.e. there should be flexible coercion between automata with different pred-modules). 6.026 . reverse now also reverses output for sequence transducers! . faster minimize_hopcroft 6.025 . compilation to c now works for t_minimized automata again 6.024 . more information in error message from regex compiler 6.023 . added fsa_data:fa/7 . repaired bug in t_minimizer wrt start states (thanx Martin Jansche). 6.022 . repaired error in convert_pred_module/3 regex operator . added functionality to fsa_arrays (put_mh_assoc/5, get_mh_assoc/4) in order to implement bimachines stuff more efficiently (cf Examples/RocheSchabes97/gvn.pl) 6.021 . added fsa_determinizer:determinize_with_map/4 . added fsa_arrays:hashed_assoc_to_keylist 6.019 . bug in postscript output (if redirected) . display of id(X) vs X:X now consistent. The first is displayed as single label, the second as a pair. No id(P) anymore. 6.018 . implemented {..} operator n-ary way. . similar for [..] this is somewhat faster in case you have long unions/concats t_determinize_preds/3 is now in fsa_t_determinizer module (where you'd expect it). 6.016 . new interface predicate t_determinize_preds to reduce the overhead for t_determinizers during normal determinization 6.013 . -drgraph uses reachable_efree computation (as suggested by CL paper reviewer; is slower for my examples though) . reachable_efree implements efree by going through the reachable states and adding jumps _before_ symbol rather than after (as in efree/2). 6.012 . back to old determinize_preds interface, but with a predicate provided by fsa_determinizer that you can use if you have a definition of negation/3 in your predicate module 6.011 . various changes wrt identity determinize_preds interface simplified considerably (at the cost of less speedy determinizer). 6.008 . w_m and w_d (...) 6.007 . -pm Module: sets pred_module to Module, and loads the module as well . -l File: loads File . -cmd Cmd: executes Prolog goal Cmd 6.006 . cleanup treated [] as ordinary symbol for transducers (repaired) . introductory help for user classes . expand_predicates/2 regular expression operator; compiler to c is different (better) . cleanup for transducers didn't work with $@ 6.004 documentation 6.000 predicates over symbols