Preparing 5.6.55
[chr.git] / ChangeLog
blobaea7a810c7a857f62e0d806376445c8fc31d8157
1 [Apr 18 2008]
3  * MODIFIED: Renamed hash_term/2 to term_hash/2.  Added hash_term/2 to
4    library(backcomp), so most code should not notice this.
5    
6 [Feb 27 2008]
8  * ENHANCED: CHR performance of find_chr_constraint when called with nonvar argument
10 [Feb 14 2008]
12  * ENHANCED: CHR performance (minor issues)
14 [Feb 13 2008]
16  * FIX: CHR new C file for Windows
18  * FIX: CHR: single chr_support.c C file
20 [Feb 12 2008]
22  * ENHANCED: CHR: moved performance critical predicates to C
24 [Feb 11 2008]
26  * ENHANCED: CHR user-provided background knowledge (Jon Sneyers)
28 [Feb 10 2008]
30  * ENHANCED: CHR compiler performance
32  * ENHANCED: CHR compiler performance
34 [Jan 29 2008]
36  * EHANCED: CHR performance: compacted indexing code
38 [Jan 28 2008]
40  * ADDED: CHR: chr_constants/1 built-in type for enumerated constants
42 [Jan 27 2008]
44  * ENHANCED: CHR: performance improvements (success continuation, Prolog code optimization)
46  * COMPAT: Removed min_list/2 from library(hprolog) as this is now in library lists.
48 Jan 24, 2008
50   * TS: Exploit success continuation information.
52 Jan 23, 2008
54   * TS: Bug fix in continuation optimization.
55   * TS: Fixed singleton variable.
56   * TS: Suppress debug message.
58 Jan 22, 2008
60   * TS: Rewrite Prolog code: common prefix elimination in
61         successive clauses of the same predicate. 
62   * TS: Tries stores enabled by default again.
63   * TS: Success and failure continuation optimization for
64         propagation occurrences.
66 Jan 14, 2008
68   * TS: Fix performance bug in locking of guard variables.
69   * TS: Fix performance bug in spurious hash_term call.
71 Jan 10, 2008
73   * TS: Type check constraint declarations.
74   * TS: Trie stores hidden behind `experimental' option.
75   * TS: New option `verbose' prints constraint indices.
76   * TS: Don't compute term_hash for int and natural types.
78 Jan 9, 2008
80   * TS: Avoid trivial warning for declare_stored_constraints.
81   * TS: Bug fix: missing full store was causing compiler to loop.
83 Jan 9, 2008
85   * TS: Bug fix: atomic_constants store was causing compiler
86         to loop.
87   * TS: Clean-up and avoid adding additional global_ground store
88         if atomic_constants store covers all cases.
89   * TS: Clean-up and bug fix.
91 Jan 7, 2008
93   * TS: Performance improvement: use new store
94         implementation for multi-argument lookups
95         on manifest ground terms. Should be faster than 
96         hashtable.
98 Jan 4, 2008
100   * TS: Performance improvement: use new store
101         implementation for single-argument lookups
102         on manifest atomics. Should be faster than
103         hashtable. Will be generalized to arbitrary
104         manifest ground lookups and non-manifest
105         atomically typed lookups .
106         
107 Jan 3, 2008
109   * TS: Modified error messages of declare_stored_constraints
110         option, to distinguish between stored, temporarily stored
111         and never stored.
112   * TS: write/1, writeln/1 and format/2 are now treated as non-binding
113         builtins.
114   * TS: Properly inline inthash constraint lookup.
116 Dec 31, 2007
118   * TS: Additional assertion # default(Goal) for the
119         declare_stored_constraints, which specifies that
120         an unconditional simplification rule for the constraint
121         must be added to the end of the program. The Goal
122         parameter specifies the goal of that rule, e.g.
123         true or fail or throw(...). Experimental.
125 Dec 29, 2007
127   * TS: Experimental option declare_stored_constraints for
128         telling the compiler to warn for stored constraints
129         that are not asserted to be stored. Use the
130                 :- chr_constraint f(...) # stored.
131         notation for asserting that a constraint is expected to
132         be stored.
134 Dec 27, 2007
136   * TS: Inline constraint lookup.
138   * TS: Precompile term hashing.
140 Sep 26, 2007
142   * TS: Code cleaning was hampered by line numbers.
143         Reported by Mike Elston.
145 May 2, 2007
147   * PVW: Bug fix in observation analysis.
148   * PVW: Consistency checks of experimental history pragma.
150 Apr 5, 2007
152   * TS: Lessened worst bottlenecks in CHR compiler,
153         in the guard simplification phase.
155 Mar 26, 2007
157   * TS: Experimental dynattr option, for dynamic size attribute terms.
159 Mar 16, 2007
161   * TS: Extended observation analysis (abstract interpretation)
162         to deal with disjunctions. With Paolo Tacchella.
164 Mar 14, 2007
166   * TS: Renamed hprolog:substitute/4 to substitute_eq/4, because of
167         name conflict with library(edit).
169 Mar 12, 2007
171   * TS: Use line numbers in error and warning messages.
173 Mar 8, 2007
175   * TS: Added maintenance of line numbers through CHR compilation
176         as an option: chr_option(line_numbers,on).
178 Mar 5, 2007
180   * TS: Bug fix: setarg/3 instantiation error reported by Mike Elston.
181         Caused by missing suspension argument in debug off, optimize off
182         mode.
184 Feb 22, 2007
186  * LDK: O(1) removal from hashtables, with experimental
187         chr_option(ht_removal,on).
189 Jan 25, 2007
191  * PVW: Bugfixes for optional use of CHR constraints in rule guards.
193 Jan 18, 2007
195   * PVW: Optional use of CHR constraints in rule guards.
197 Nov 20, 2006
199   * TS: Bug fix in compiler_errors.pl.
201 Oct 25, 2006
203   * TS: Bug fix in occurrence subsumption by Jon Sneyers.
205 Oct 18, 2006
207   * TS: New preprocessor feature.
209   * TS: Parametrization of experimental chr_identifier type.
211 Oct 16, 2006
213   * TS: More inlining.
215   * TS: Stronger static type checking.
217   * TS: Omitted buggy FD analysis from bootstrapping process.
219 Oct 12, 2006
221   * TS: More inlining.
223   * TS: Experimental chr_identifier type.
225 Oct 10, 2006
227   * TS: Allow for empty type definitions aka phantom types. These are 
228         useful for some type-level tricks. A warning is issued so the 
229         user can check whether a phantom type is intended. No other
230         phantom type-specific checks are in place yet.
232   * TS: Fixed static type checking of built-in types.
234 Oct 9, 2006
236   * TS: The dense_int type can now appear on the rhs of type alias
237         definitions.
239 Oct 3, 2006
241   * TS: Fixed bug concerning matchings between ground and possibly
242         non-ground arguments.   
244 Oct 2, 2006
246   * TS: Fixed a bug in code generation, overeager removal of a clause.
248 Sep 28, 2006
250   * TS: Refactored some code.
252 Sep 22, 2006
254   * TS: Add exception handler to initialize chr_leash in new threads.
255   
256 Sep 18. 2006
258   * TS: Bug fix for programs in debugging mode.
260 Aug 30, 2006
262   * JW: Fixed make clean
263   * JW: Enlarged stacks to make build succeed
265 Aug 24, 2006
267   * JW: Add target ln-install
269 Aug 21, 2006
271   * TS: Fixed wrong arities in not inlined predicates. Mike Elston.
273 Aug 18, 2006
275   * TS: Code clean-up, more inlining, only generate used imports.
277 Aug 17, 2006
279   * TS: Inlining and more specialization of auxiliary predicates.
281 Aug 10, 2006
283   * TS: Fixed bug for constraints without rules in debug mode.
285   * TS: Compiler clean-up
287   * TS: Experimental var_assoc_store.
290 Aug 9, 2006
292   * TS: Various minor code generation improvements, including smaller
293         suspension terms.
295 Aug 8, 2006
297   * TS: Absolutely no lock checking when check_guard_bindings is disabled.
299 Aug 4, 2006
301   * TS: Minor optimizations for (-) arguments.
303   * TS: Important optimization for awakening fewer suspended constraints
305 Aug 3, 2006
307   * TS: Fixed typo in static type checker.
309   * TS: Documented static and dynamic type checking.
311 Aug 2, 2006
313   * TS: Fixed bug (type alias related) in static type checker. Mike Elston.
315   * TS: Added static type checking on variable matching in rule heads.
317   * TS: Added static type checking on CHR constraints in rule bodies.
319 Aug 1, 2006
321   * TS: New (limited) compile time type checking of rule heads.
323 Jul 28, 2006
325   * TS: New experimental robustness feature in debug mode:
326         runtime type checking of CHR constraints.
328 Jul 5, 2006
330   * TS: Minor bug fixes.
332 Jun 22, 2006
334   * TS: Improved performance of ai_observation_analysis,
335         mainly via additional tabling and passive declarations.
337 Jun 8, 2006
339   * TS: Disabled some code only intended for SICStus.
341   * TS: Fixed bug in removal of constraints. Spotted by Leslie De Koninck.
343 Jun 7, 2006
345   * TS: Next fix to tracer. Cconstraints in propagation
346         rules are shown in textual order.
348 Jun 2, 2006
350   * TS: Next few fixes to tracer. Constraints in simpagation rules
351         are now shown on the right side of the backslash.
353 Jun 1, 2006
355   * TS: Synchronization with SICStus version of K.U.Leuven CHR.
357   * TS: First few fixes to tracer. Cconstraints in simplification
358         rules are shown in textual order. Constraint insertions
359         are always shown.
361 May 17, 2006
363   * TS: Termination bug fixed in guard_entailment.
365   * TS:  Runtime library predicate run_suspensions is now specialized
366         per constraint, avoiding requirement of fixed suspension layout.
368   * TS: Further update to suspension term layout. Only constraints for
369         which the propagation history is used get a history field.
371 May 9, 2006
373   * TS: Ignore propagation rules with trivial body 'true'.
375 Apr 24, 2006
377   * TS: Guard entailment now first simplifies the formula it processes,
378         in order to reduce the number of disjunctions, to obtain a smaller
379         search tree.
381 Apr 22, 2006
383   * TS: Bug fix by Jon Sneyers:  type aliases now support built-in types.
384         Spotted by Mike Elston.
386   * TS: Small refactorings based on Ciao port experience.
388   * TS: Removed -singleton stylecheck option now that portray_clause
389         prints singleton variables as _.
391 Apr 19, 2006
393  * JW: Make library(chr) load its private stuff silent.
395 Apr 14, 2006
397  * TS: Bug fix: too many guards were locked.
399 Apr 11, 2006
401   * TS: Most runtime library predicates are now specialized
402         per constraint, avoiding generic =.. and lists code.
404         Mayor update to suspension term layout. Layout may now
405         differ from one constraint to the other. Some unused suspension
406         fields (continuation goal and generation number) are omitted.
407         Further analysis can remove more fields.
409         Default store constraints now each have
410         their own global variable: a list of all the suspensions.
411         Removal from this list is now O(1) thanks to setarg/1 and
412         back pointers in the suspension terms. This can cause time
413         time complexity improvements in solvers that always have 
414         variable indexing on their constraints.
416         Ground, non-indexed constraints are now removed from
417         their global list store in O(1), as for the default store.
419         Minor bug fixes in a number of places.
421 Mar 16, 2006
423   * TS: Fixed subtle bug in ai_observation analysis,
424         that caused goal sequences to only generate
425         the optimistic default answer pattern, leading
426         to invalid 'not observed' conclusions.
427   * TS: Variable indexing/suspension analysis now ignores functor/3
428         in guards. Could be extended to other built-ins
429         that cause an error when arguments are not
430         properly instantiated.
432 Mar 11, 2006
433   
434   * TS: Renamed global variable id to chr_id in chr_runtime.pl.
436 Mar 9, 2006
437   * JS: Synchronization with experimental version:
438         - minor optimizations, e.g. efficient lookups with statically known
439           instantiated data 
440         - new alternative syntax for passive declarations
441         - new dense_int built-in type + underlying store
442         - new type alias definitions, like in Mercury
444 Mar 4, 2006
445   * BD: small changes in chr_compiler_options.pl and chr_translate.chr
446         affecting only the SICStus port
448 Mar 3, 2006
449   * BD: lots of changes related to porting to SICStus
450   * TS: Now exception/3 hook is only used in SWI-Prolog
452 Mar 2, 2006
454   * TS: Use exception/3 hook to catch undefined 
455         global variables of chr_runtime.pl and CHR modules,
456         for multi-threaded programs and saved states.
458 Feb 9, 2006
460   * JW: Fix "make check" path issues.
461   * TS: Removed all is_chr_file tests when loading file.
463 Feb 8, 2006
465   * BD: chr_swi.pl: option(optimize --> :- chr_option(optimize
466   * TS: Removed obsolete experimental optimization option.
467   * TS: Correctly report variable pragmas!
468   * TS: No constraints declared is no longer a special case.
470 Jan 19, 2006
472   * BD: chr_swi.pl - use_module(hprolog added for SICStus port
473   * TS: Removed operator declaration for '::'. No longer used.
475 Dec 23, 2005
477   * TS: Removed chr_constraints declaration again, in favor
478         of only the chr_constraint declaration and modified
479         documentation accordingly.
480   * TS: Modified documentation based on recommendations of Bart Demoen.
481   * TS: Added chr_info/3 predicate to chr_compiler_errors, as suggested by
482         Jon Sneyers. Now print banner on calling compiler.
484 Dec 13, 2005
486   * TS: warnings are now written to user_error stream.
488 Dec 12, 2005
490   * TS: option and constraints declarations are now deprecated. They
491         are replaced by chr_option and chr_constraint(s).
492   * TR: Made an interface for warnings and errors. Errors now implemented
493         with exceptions.
494   * TR: Revised documentation.
496 Dec 2, 2005
497   * BD: chr_translate.chr, chr_translate_bootstrap2.chr
498            mutables "abstracted"
499   * BD: chr_translate_bootstrap1.chr
500            atomic_concat - some duplicate code of it is in more than one file :-(
501            create_get_mutable definitions if-deffed
502            verbosity_on/0 for porting
503         hprolog.pl
504            definitions of init_store/2, get_store/2, update_store/2
505            and of make_init_store_goal/make_get_store_goal/make_update_store_goal
506            removed prolog_flag/3 (seemed  nowhere used)
507         chr_translate_bootstrap2.chr
508            make_init_store_goal/make_get_store_goal/make_update_store_goal introduced
509            verbosity_on/0 for porting
510         chr_translate_bootstrap.pl
511            atom_concat -> atomic_concat
512            verbosity_on/0 for porting
513            conditional import van library(terms)
514         chr_translate.chr
515            make_init_store_goal etc. introduced
516         create_get_mutable_ref wherever needed (chr_translate*)
519 Nov 30, 2005
520   * BD: chr_runtime.pl:
521            chr_init for SICStus
522            included contents of chr_debug.pl
523            removed show_store/1
524            create_mutable changed into 'chr create_mutable'
525            got rid of explicit inlining and did it by goal expansion
526            inlining also of 'chr default_store'
527   * BD: chr_swi.pl:
528            removed :- use_module(chr(chr_debug))
529            module header: version for SICStus
530   * BD: chr_debug.pl: emptied
531   * BD: chr_translate.chr:
532            system specific declarations factored out in insert_declarations
533            changed two atom_concat/3 into atomic_concat/3 (because arg 2 was sometimes an int)
534   * BD: chr_compiler_utility.pl:
535            put atomic_concat/3 there 
536            adapted atom_concat_list/2 to use it
537   * BD: chr_swi_bootstrap.pl:
538            introduced chr_swi_bootstrap/2 for ease of porting
539            exported also chr_compile/3
540            porting code for get_time stuff/read_term/absolute_file_name
541   * BD: builtins.pl, a_star.pl, clean_code.pl:
542            some ifdefs
545 Nov 29, 2005
546   * BD: hprolog.pl: removed strip_attributes/2 and restore_attributes/2
548 Nov 29, 2005
549   * BD: chr_swi.pl: Removed code that took Handler for Module (in chr_expand(end_of_file)
550                     Added :- chr_option(_,_) with same meaning as option(_,_)
551                     is_chr_file: .chr is no longer a recognised suffix
552                     added use_module(library(lists))
553                     changed calls to source_location/2 into prolog_load_context/2
554   * BD: chr_translate.chr: chr_translate/2: added end_of_file to translated program
555                            adapted SICStus compatibility message
556                            made :- chr_option(_,_) available
557                            changed precedence of + - ? to 980 (these ops are
558                                      probably not local enough to the module)
560 Nov 21, 2005
562   * TS: Further synchronization with hProlog.
564 Nov 18, 2005
566   * TS: Removed dead code in guard_entailment.chr
567   * TS: Fixed performance bug: now lookup is indexed
568         on maximal number of arguments.
569   * TS: Removed some redundant intermediate predicates
570         in chr_runtime.pl.
571   * TS: It is now possible to disable the printing
572         of the CHR constraint store per module,
573         through the option toplevel_show_store on/off
574   * TS: Synchronized with hProlog
575   * TS: bug fix in functional dependency analysis
577 Nov 17, 2005
579   * TS: Removed two dead predicates in chr_translate.chr
580         and hooked up the late_storage_analysis
581         that was being bypassed.
582   * TS: Renamed global_term_ref_1 to default_store.
583   * TS: Removed redundant predicate values_ht.
584   * TS: Compiler no longer generates dead code for never stored constraints,
585         i.e. attach/detach predicates.
586         This reduces the generated .pl by about 700 lines.
588 Nov 10, 2005
590   * TS: Two more bug fixes for constraints without
591         active occurrences that trigger.
593 Nov 4, 2005
595   * TS: Small optimization of code for constraints
596         without any active occurrence.
597   * TS: Fixed bug caused by previous bug fix:
598         added only_ground_indexed_arguments/1 test
599         to separate out that meaning from may_trigger/1.
601 Nov 3, 2005
603   * TS: Removed strip_attributes code.
604   * TS: Fixed bug that causes new constraints to be added on triggering.
606 Oct 25, 2005
608   * TS: Two minor bug fixes.
610 Oct 19, 2005
612   * TS: Fixed bug due to overly aggressive inlining of get_mutable_value.
614 Oct 18, 2005
616   * JS: Compiled code is broken, if debug is off and optimize too.
617         Debug off now entails optimize on.
619   * TS: Some fixes of the documentation. Thanks to Bart Demoen
620         and Thom Fruehwirth. 
622 Sep 2, 2005
624   * TS: Synchronized with hProlog.
626 Aug 31, 2005
628   * TS: Added missing operator declarations for prefix (?).
630 Aug 9, 2005
632   * JW: import lists into chr_compiler_utility.pl
634   * JW: make message hook for query(yes) detect CHR global variables.
636   * JW: Exported pairlist_delete_eq/3 from pairlist and use this in
637     chr_hashtable_store.pl
639 Aug 4, 2005
641   * TS: Renamed pairlist:delete/3 to pairlist:pairlist_delete/3.
642         Mike Elston.
643 Aug 1, 2005
645   * TS: Extended more efficient ground matching code to
646         removed simpagation occurrence code.
648 Jul 28, 2005
650   * TS: New input verification: duplicate constraint declaration
651         now reported as an error. Requested by Mike Elston.
652   * TS: More efficient matching code for ground constraints
653         when matching an argument of a partner constraint with
654         a ground term
655   * JS: Bug fix in guard simplification.
657 Jul 3, 2005
659   * TS: Factored out option functionality into separate module.
660   * TS: Factored out utility code into separate module.
662 Jun 29, 2005
664   * TS: Changed chr_show_store/1 to use print/1 instead of write/1.
666 Jun 28, 2005
668   * TS: Removed spurious and conflicting operator definitions
669         for +, - and ? as mode declarations.
671 Jun 27, 2005
673   * TS: Added find_chr_constraint/1 functionality.
675 Jun 8, 2005
677   * TS: Improved compiler scalability: use nb_setval/2 to
678         remember compiled code through backtracking over
679         compilation process instead of assert/1.
680   * TS: Removed spurious comma from file.
682 Jun 1, 2005
684   * TS: Added option to disable toplevel constraint store printing.
685   * TS: Slightly improved hash table constraint store implementation.
687 Apr 16, 2005
689   * JW: Added patch from Jon Sneyers.
691 Mar 11, 2005
693   * TS: Improved head reordering heuristic.
694   * TS: Added support primitive for alternate built-in solver dependency.
696 Mar 4, 2005
698   * TS: Fixed bug that causes wrong output in chr_show_store.
700 Feb 25, 2005
702   * TS: Fixed several bugs in generation of debugable code.
704 Feb 19, 2005
706   * JW: Cleanup integration in SWI-Prolog environment:
707         - Extended SWI-Prolog library ordsets.  Renamed ord_delete/3 to
708           ord_del_element/3 and ord_difference/3 to ord_subtract/3 for
709           better compatibility.
710         - Renamed module find to chr_find to avoid name conflict and declared
711           preds as meta-predicate.
712         - Re-inserted and exported strip_attributes/2 and
713           restore_attributes/2 in hprolog.pl. Deleted hprolog: from
714           chr_translate.chr.
715         - Added dummy option declarations to bootstrap compiler.
716         - Fixed path problems in makefile (-p chr=.) and install new
717           components.
718         - Fixed typo 'chr show_store' --> chr_show_store.
720 Feb 17, 2005
722   * JS: Added guard entailment optimizations and
723         new syntax for type and mode declarations.
725 Dec 15, 2004
727   * TS: Use prolog:message/3 hook to automatically print
728         contents of CHR constraint stores with query bindings
729         on toplevel.
731 Dec  3, 2004
733   * TS: Bugfix in code generation. Reported by Lyosha Ilyukhin.
735 Jul 28, 2004
737   * TS: Updated hashtable stores. They now start small and expand.
739 Jul 19, 2004
741   * JW: Removed chr_pp: module prefixes
742   * JW: Updated Windows makefile.mak (more similar organisation, added check)
744 Jul 17, 2004
746   * TS: Added chr_hashtable_store library.
747   * TS: Added find library.
748   * TS: Added builtins library.
749   * TS: Added clean_code library.
750   * TS: Added binomial_heap library.
751   * TS: Added a_star library.
752   * TS: Added new intermediate bootstrapping step
753   * TS: Synchronized CHR compiler with most recent development version
755   Summary of changes:
757    "The new version of the compiler contains several new optimizations, both
758     fully automatic, such as the antimonotny-based delay avoidance (see
759     http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW385.abs.html for
760     the technical report), and enabled by mode declarations (see CHR
761     documentation), such as hashtable-based constraint indexes."
763 Apr 9, 2004
765   * JW: Added chr_messages.pl.  Make all debug messages use the print_message/2
766     interface to enable future embedding.
768 Apr 7, 2004
770   * JW: Added chr:debug_interact/3 hook.  Defined in chr_swi.pl to void
771     showing constraints first as goal and then as CHR call.
772   * JW: Added chr:debug_event/2 hook.  Defined in chr_swi.pl to make the
773     CHR debugger honour a skip command from the Prolog tracer.
775 Apr 6, 2004
777   * JW: Added b (break) to the CHR debugger.
778   * TS: added chr_expandable/2 clause for pragma/2
780 Apr 5, 2004
782   * JW: fixed reference to format_rule/2.
783   * JW: Use select/3 rather than delete/3 in diff/2 in Tests/zebra.pl
784   * TS: CHR translation now leaves CHR store empty
786 Apr 4, 2004
788   * JW: added :- use_module(library(chr)) to all examples.
789   * JW: mapped -O --> option(optimize, full).
790   * JW: introduced file-search-path `chr' for clarity and to enable running
791     make check from the local environment instead of the public installation.
792   * JW: mapped prolog flag generate_debug_info --> option(debug, on)
793   * JW: Replaced the chr -> pl step with term_expansion/2.
794   * JW: Moved insert_declarations/2 to chr_swi.pl
796 Apr 2, 2004
798   * JW: fixed Undefined procedure: chr_runtime:run_suspensions_loop_d/1
799   * TS: Added <space> for creep and shortened debug line prefix to CHR:
801 Mar 29, 2004
803   * JW: Use \+ \+ in chr_compile/3 to undo changes to the constraint
804     pool.  Regression test suite using "make check" works again.
806 Mar 25, 2004
808   * TS: Added skip and ancestor debug commands
810 Mar 24, 2004
812   * TS: Added bootstrapping process for CHR compiler using CHR.
813   * TS: CHR compiler now uses CHR.
814   * TS: Fixed bug in compilation of multi-headed simpagation rules.
815   * TS: Cleaned up compiler.
816   * TS: Added analysis + optimization for never attached constraints.
817   * TS: Exploit uniqueness (functional dependency) results to detect
818     set semantics type simpagation rules where one rule can be passive
819   * TS: Compiler generates 'chr debug_event'/1 calls
820   * TS: Rudimentary support for debugging.
821     option(debug,on) causes a trace of CHR events to be printed
823 Mar 15, 2004
825   * JW: Fix operator handling.
827 Mar 3, 2004
829   * JW: Integrated new version from Tom Schrijvers.