3 * TS: Renamed global_term_ref_1 to default_store.
4 * TS: Removed redundant predicate values_ht.
8 * TS: Two more bug fixes for constraints without
9 active occurrences that trigger.
13 * TS: Small optimization of code for constraints
14 without any active occurrence.
15 * TS: Fixed bug caused by previous bug fix:
16 added only_ground_indexed_arguments/1 test
17 to separate out that meaning from may_trigger/1.
21 * TS: Removed strip_attributes code.
22 * TS: Fixed bug that causes new constraints to be added on triggering.
26 * TS: Two minor bug fixes.
30 * TS: Fixed bug due to overly aggressive inlining of get_mutable_value.
34 * JS: Compiled code is broken, if debug is off and optimize too.
35 Debug off now entails optimize on.
37 * TS: Some fixes of the documentation. Thanks to Bart Demoen
42 * TS: Synchronized with hProlog.
46 * TS: Added missing operator declarations for prefix (?).
50 * JW: import lists into chr_compiler_utility.pl
52 * JW: make message hook for query(yes) detect CHR global variables.
54 * JW: Exported pairlist_delete_eq/3 from pairlist and use this in
55 chr_hashtable_store.pl
59 * TS: Renamed pairlist:delete/3 to pairlist:pairlist_delete/3.
63 * TS: Extended more efficient ground matching code to
64 removed simpagation occurrence code.
68 * TS: New input verification: duplicate constraint declaration
69 now reported as an error. Requested by Mike Elston.
70 * TS: More efficient matching code for ground constraints
71 when matching an argument of a partner constraint with
73 * JS: Bug fix in guard simplification.
77 * TS: Factored out option functionality into separate module.
78 * TS: Factored out utility code into separate module.
82 * TS: Changed chr_show_store/1 to use print/1 instead of write/1.
86 * TS: Removed spurious and conflicting operator definitions
87 for +, - and ? as mode declarations.
91 * TS: Added find_chr_constraint/1 functionality.
95 * TS: Improved compiler scalability: use nb_setval/2 to
96 remember compiled code through backtracking over
97 compilation process instead of assert/1.
98 * TS: Removed spurious comma from file.
102 * TS: Added option to disable toplevel constraint store printing.
103 * TS: Slightly improved hash table constraint store implementation.
107 * JW: Added patch from Jon Sneyers.
111 * TS: Improved head reordering heuristic.
112 * TS: Added support primitive for alternate built-in solver dependency.
116 * TS: Fixed bug that causes wrong output in chr_show_store.
120 * TS: Fixed several bugs in generation of debugable code.
124 * JW: Cleanup integration in SWI-Prolog environment:
125 - Extended SWI-Prolog library ordsets. Renamed ord_delete/3 to
126 ord_del_element/3 and ord_difference/3 to ord_subtract/3 for
127 better compatibility.
128 - Renamed module find to chr_find to avoid name conflict and declared
129 preds as meta-predicate.
130 - Re-inserted and exported strip_attributes/2 and
131 restore_attributes/2 in hprolog.pl. Deleted hprolog: from
133 - Added dummy option declarations to bootstrap compiler.
134 - Fixed path problems in makefile (-p chr=.) and install new
136 - Fixed typo 'chr show_store' --> chr_show_store.
140 * JS: Added guard entailment optimizations and
141 new syntax for type and mode declarations.
145 * TS: Use prolog:message/3 hook to automatically print
146 contents of CHR constraint stores with query bindings
151 * TS: Bugfix in code generation. Reported by Lyosha Ilyukhin.
155 * TS: Updated hashtable stores. They now start small and expand.
159 * JW: Removed chr_pp: module prefixes
160 * JW: Updated Windows makefile.mak (more similar organisation, added check)
164 * TS: Added chr_hashtable_store library.
165 * TS: Added find library.
166 * TS: Added builtins library.
167 * TS: Added clean_code library.
168 * TS: Added binomial_heap library.
169 * TS: Added a_star library.
170 * TS: Added new intermediate bootstrapping step
171 * TS: Synchronized CHR compiler with most recent development version
175 "The new version of the compiler contains several new optimizations, both
176 fully automatic, such as the antimonotny-based delay avoidance (see
177 http://www.cs.kuleuven.ac.be/publicaties/rapporten/cw/CW385.abs.html for
178 the technical report), and enabled by mode declarations (see CHR
179 documentation), such as hashtable-based constraint indexes."
183 * JW: Added chr_messages.pl. Make all debug messages use the print_message/2
184 interface to enable future embedding.
188 * JW: Added chr:debug_interact/3 hook. Defined in chr_swi.pl to void
189 showing constraints first as goal and then as CHR call.
190 * JW: Added chr:debug_event/2 hook. Defined in chr_swi.pl to make the
191 CHR debugger honour a skip command from the Prolog tracer.
195 * JW: Added b (break) to the CHR debugger.
196 * TS: added chr_expandable/2 clause for pragma/2
200 * JW: fixed reference to format_rule/2.
201 * JW: Use select/3 rather than delete/3 in diff/2 in Tests/zebra.pl
202 * TS: CHR translation now leaves CHR store empty
206 * JW: added :- use_module(library(chr)) to all examples.
207 * JW: mapped -O --> option(optimize, full).
208 * JW: introduced file-search-path `chr' for clarity and to enable running
209 make check from the local environment instead of the public installation.
210 * JW: mapped prolog flag generate_debug_info --> option(debug, on)
211 * JW: Replaced the chr -> pl step with term_expansion/2.
212 * JW: Moved insert_declarations/2 to chr_swi.pl
216 * JW: fixed Undefined procedure: chr_runtime:run_suspensions_loop_d/1
217 * TS: Added <space> for creep and shortened debug line prefix to CHR:
221 * JW: Use \+ \+ in chr_compile/3 to undo changes to the constraint
222 pool. Regression test suite using "make check" works again.
226 * TS: Added skip and ancestor debug commands
230 * TS: Added bootstrapping process for CHR compiler using CHR.
231 * TS: CHR compiler now uses CHR.
232 * TS: Fixed bug in compilation of multi-headed simpagation rules.
233 * TS: Cleaned up compiler.
234 * TS: Added analysis + optimization for never attached constraints.
235 * TS: Exploit uniqueness (functional dependency) results to detect
236 set semantics type simpagation rules where one rule can be passive
237 * TS: Compiler generates 'chr debug_event'/1 calls
238 * TS: Rudimentary support for debugging.
239 option(debug,on) causes a trace of CHR events to be printed
243 * JW: Fix operator handling.
247 * JW: Integrated new version from Tom Schrijvers.