* Fix paths to runtex
[chr.git] / Changelog
blob5922c6b77bd6596ef3902bf78fa0e09baee5c0a9
1 Aug 24, 2006
3   * JW: Add target ln-install
5 Aug 21, 2006
7   * TS: Fixed wrong arities in not inlined predicates. Mike Elston.
9 Aug 18, 2006
11   * TS: Code clean-up, more inlining, only generate used imports.
13 Aug 17, 2006
15   * TS: Inlining and more specialization of auxiliary predicates.
17 Aug 10, 2006
19   * TS: Fixed bug for constraints without rules in debug mode.
21   * TS: Compiler clean-up
23   * TS: Experimental var_assoc_store.
26 Aug 9, 2006
28   * TS: Various minor code generation improvements, including smaller
29         suspension terms.
31 Aug 8, 2006
33   * TS: Absolutely no lock checking when check_guard_bindings is disabled.
35 Aug 4, 2006
37   * TS: Minor optimizations for (-) arguments.
39   * TS: Important optimization for awakening fewer suspended constraints
41 Aug 3, 2006
43   * TS: Fixed typo in static type checker.
45   * TS: Documented static and dynamic type checking.
47 Aug 2, 2006
49   * TS: Fixed bug (type alias related) in static type checker. Mike Elston.
51   * TS: Added static type checking on variable matching in rule heads.
53   * TS: Added static type checking on CHR constraints in rule bodies.
55 Aug 1, 2006
57   * TS: New (limited) compile time type checking of rule heads.
59 Jul 28, 2006
61   * TS: New experimental robustness feature in debug mode:
62         runtime type checking of CHR constraints.
64 Jul 5, 2006
66   * TS: Minor bug fixes.
68 Jun 22, 2006
70   * TS: Improved performance of ai_observation_analysis,
71         mainly via additional tabling and passive declarations.
73 Jun 8, 2006
75   * TS: Disabled some code only intended for SICStus.
77   * TS: Fixed bug in removal of constraints. Spotted by Leslie De Koninck.
79 Jun 7, 2006
81   * TS: Next fix to tracer. Cconstraints in propagation
82         rules are shown in textual order.
84 Jun 2, 2006
86   * TS: Next few fixes to tracer. Constraints in simpagation rules
87         are now shown on the right side of the backslash.
89 Jun 1, 2006
91   * TS: Synchronization with SICStus version of K.U.Leuven CHR.
93   * TS: First few fixes to tracer. Cconstraints in simplification
94         rules are shown in textual order. Constraint insertions
95         are always shown.
97 May 17, 2006
99   * TS: Termination bug fixed in guard_entailment.
101   * TS:  Runtime library predicate run_suspensions is now specialized
102         per constraint, avoiding requirement of fixed suspension layout.
104   * TS: Further update to suspension term layout. Only constraints for
105         which the propagation history is used get a history field.
107 May 9, 2006
109   * TS: Ignore propagation rules with trivial body 'true'.
111 Apr 24, 2006
113   * TS: Guard entailment now first simplifies the formula it processes,
114         in order to reduce the number of disjunctions, to obtain a smaller
115         search tree.
117 Apr 22, 2006
119   * TS: Bug fix by Jon Sneyers:  type aliases now support built-in types.
120         Spotted by Mike Elston.
122   * TS: Small refactorings based on Ciao port experience.
124   * TS: Removed -singleton stylecheck option now that portray_clause
125         prints singleton variables as _.
127 Apr 19, 2006
129  * JW: Make library(chr) load its private stuff silent.
131 Apr 14, 2006
133  * TS: Bug fix: too many guards were locked.
135 Apr 11, 2006
137   * TS: Most runtime library predicates are now specialized
138         per constraint, avoiding generic =.. and lists code.
140         Mayor update to suspension term layout. Layout may now
141         differ from one constraint to the other. Some unused suspension
142         fields (continuation goal and generation number) are omitted.
143         Further analysis can remove more fields.
145         Default store constraints now each have
146         their own global variable: a list of all the suspensions.
147         Removal from this list is now O(1) thanks to setarg/1 and
148         back pointers in the suspension terms. This can cause time
149         time complexity improvements in solvers that always have 
150         variable indexing on their constraints.
152         Ground, non-indexed constraints are now removed from
153         their global list store in O(1), as for the default store.
155         Minor bug fixes in a number of places.
157 Mar 16, 2006
159   * TS: Fixed subtle bug in ai_observation analysis,
160         that caused goal sequences to only generate
161         the optimistic default answer pattern, leading
162         to invalid 'not observed' conclusions.
163   * TS: Variable indexing/suspension analysis now ignores functor/3
164         in guards. Could be extended to other built-ins
165         that cause an error when arguments are not
166         properly instantiated.
168 Mar 11, 2006
169   
170   * TS: Renamed global variable id to chr_id in chr_runtime.pl.
172 Mar 9, 2006
173   * JS: Synchronization with experimental version:
174         - minor optimizations, e.g. efficient lookups with statically known
175           instantiated data 
176         - new alternative syntax for passive declarations
177         - new dense_int built-in type + underlying store
178         - new type alias definitions, like in Mercury
180 Mar 4, 2006
181   * BD: small changes in chr_compiler_options.pl and chr_translate.chr
182         affecting only the SICStus port
184 Mar 3, 2006
185   * BD: lots of changes related to porting to SICStus
186   * TS: Now exception/3 hook is only used in SWI-Prolog
188 Mar 2, 2006
190   * TS: Use exception/3 hook to catch undefined 
191         global variables of chr_runtime.pl and CHR modules,
192         for multi-threaded programs and saved states.
194 Feb 9, 2006
196   * JW: Fix "make check" path issues.
197   * TS: Removed all is_chr_file tests when loading file.
199 Feb 8, 2006
201   * BD: chr_swi.pl: option(optimize --> :- chr_option(optimize
202   * TS: Removed obsolete experimental optimization option.
203   * TS: Correctly report variable pragmas!
204   * TS: No constraints declared is no longer a special case.
206 Jan 19, 2006
208   * BD: chr_swi.pl - use_module(hprolog added for SICStus port
209   * TS: Removed operator declaration for '::'. No longer used.
211 Dec 23, 2005
213   * TS: Removed chr_constraints declaration again, in favor
214         of only the chr_constraint declaration and modified
215         documentation accordingly.
216   * TS: Modified documentation based on recommendations of Bart Demoen.
217   * TS: Added chr_info/3 predicate to chr_compiler_errors, as suggested by
218         Jon Sneyers. Now print banner on calling compiler.
220 Dec 13, 2005
222   * TS: warnings are now written to user_error stream.
224 Dec 12, 2005
226   * TS: option and constraints declarations are now deprecated. They
227         are replaced by chr_option and chr_constraint(s).
228   * TR: Made an interface for warnings and errors. Errors now implemented
229         with exceptions.
230   * TR: Revised documentation.
232 Dec 2, 2005
233   * BD: chr_translate.chr, chr_translate_bootstrap2.chr
234            mutables "abstracted"
235   * BD: chr_translate_bootstrap1.chr
236            atomic_concat - some duplicate code of it is in more than one file :-(
237            create_get_mutable definitions if-deffed
238            verbosity_on/0 for porting
239         hprolog.pl
240            definitions of init_store/2, get_store/2, update_store/2
241            and of make_init_store_goal/make_get_store_goal/make_update_store_goal
242            removed prolog_flag/3 (seemed  nowhere used)
243         chr_translate_bootstrap2.chr
244            make_init_store_goal/make_get_store_goal/make_update_store_goal introduced
245            verbosity_on/0 for porting
246         chr_translate_bootstrap.pl
247            atom_concat -> atomic_concat
248            verbosity_on/0 for porting
249            conditional import van library(terms)
250         chr_translate.chr
251            make_init_store_goal etc. introduced
252         create_get_mutable_ref wherever needed (chr_translate*)
255 Nov 30, 2005
256   * BD: chr_runtime.pl:
257            chr_init for SICStus
258            included contents of chr_debug.pl
259            removed show_store/1
260            create_mutable changed into 'chr create_mutable'
261            got rid of explicit inlining and did it by goal expansion
262            inlining also of 'chr default_store'
263   * BD: chr_swi.pl:
264            removed :- use_module(chr(chr_debug))
265            module header: version for SICStus
266   * BD: chr_debug.pl: emptied
267   * BD: chr_translate.chr:
268            system specific declarations factored out in insert_declarations
269            changed two atom_concat/3 into atomic_concat/3 (because arg 2 was sometimes an int)
270   * BD: chr_compiler_utility.pl:
271            put atomic_concat/3 there 
272            adapted atom_concat_list/2 to use it
273   * BD: chr_swi_bootstrap.pl:
274            introduced chr_swi_bootstrap/2 for ease of porting
275            exported also chr_compile/3
276            porting code for get_time stuff/read_term/absolute_file_name
277   * BD: builtins.pl, a_star.pl, clean_code.pl:
278            some ifdefs
281 Nov 29, 2005
282   * BD: hprolog.pl: removed strip_attributes/2 and restore_attributes/2
284 Nov 29, 2005
285   * BD: chr_swi.pl: Removed code that took Handler for Module (in chr_expand(end_of_file)
286                     Added :- chr_option(_,_) with same meaning as option(_,_)
287                     is_chr_file: .chr is no longer a recognised suffix
288                     added use_module(library(lists))
289                     changed calls to source_location/2 into prolog_load_context/2
290   * BD: chr_translate.chr: chr_translate/2: added end_of_file to translated program
291                            adapted SICStus compatibility message
292                            made :- chr_option(_,_) available
293                            changed precedence of + - ? to 980 (these ops are
294                                      probably not local enough to the module)
296 Nov 21, 2005
298   * TS: Further synchronization with hProlog.
300 Nov 18, 2005
302   * TS: Removed dead code in guard_entailment.chr
303   * TS: Fixed performance bug: now lookup is indexed
304         on maximal number of arguments.
305   * TS: Removed some redundant intermediate predicates
306         in chr_runtime.pl.
307   * TS: It is now possible to disable the printing
308         of the CHR constraint store per module,
309         through the option toplevel_show_store on/off
310   * TS: Synchronized with hProlog
311   * TS: bug fix in functional dependency analysis
313 Nov 17, 2005
315   * TS: Removed two dead predicates in chr_translate.chr
316         and hooked up the late_storage_analysis
317         that was being bypassed.
318   * TS: Renamed global_term_ref_1 to default_store.
319   * TS: Removed redundant predicate values_ht.
320   * TS: Compiler no longer generates dead code for never stored constraints,
321         i.e. attach/detach predicates.
322         This reduces the generated .pl by about 700 lines.
324 Nov 10, 2005
326   * TS: Two more bug fixes for constraints without
327         active occurrences that trigger.
329 Nov 4, 2005
331   * TS: Small optimization of code for constraints
332         without any active occurrence.
333   * TS: Fixed bug caused by previous bug fix:
334         added only_ground_indexed_arguments/1 test
335         to separate out that meaning from may_trigger/1.
337 Nov 3, 2005
339   * TS: Removed strip_attributes code.
340   * TS: Fixed bug that causes new constraints to be added on triggering.
342 Oct 25, 2005
344   * TS: Two minor bug fixes.
346 Oct 19, 2005
348   * TS: Fixed bug due to overly aggressive inlining of get_mutable_value.
350 Oct 18, 2005
352   * JS: Compiled code is broken, if debug is off and optimize too.
353         Debug off now entails optimize on.
355   * TS: Some fixes of the documentation. Thanks to Bart Demoen
356         and Thom Fruehwirth. 
358 Sep 2, 2005
360   * TS: Synchronized with hProlog.
362 Aug 31, 2005
364   * TS: Added missing operator declarations for prefix (?).
366 Aug 9, 2005
368   * JW: import lists into chr_compiler_utility.pl
370   * JW: make message hook for query(yes) detect CHR global variables.
372   * JW: Exported pairlist_delete_eq/3 from pairlist and use this in
373     chr_hashtable_store.pl
375 Aug 4, 2005
377   * TS: Renamed pairlist:delete/3 to pairlist:pairlist_delete/3.
378         Mike Elston.
379 Aug 1, 2005
381   * TS: Extended more efficient ground matching code to
382         removed simpagation occurrence code.
384 Jul 28, 2005
386   * TS: New input verification: duplicate constraint declaration
387         now reported as an error. Requested by Mike Elston.
388   * TS: More efficient matching code for ground constraints
389         when matching an argument of a partner constraint with
390         a ground term
391   * JS: Bug fix in guard simplification.
393 Jul 3, 2005
395   * TS: Factored out option functionality into separate module.
396   * TS: Factored out utility code into separate module.
398 Jun 29, 2005
400   * TS: Changed chr_show_store/1 to use print/1 instead of write/1.
402 Jun 28, 2005
404   * TS: Removed spurious and conflicting operator definitions
405         for +, - and ? as mode declarations.
407 Jun 27, 2005
409   * TS: Added find_chr_constraint/1 functionality.
411 Jun 8, 2005
413   * TS: Improved compiler scalability: use nb_setval/2 to
414         remember compiled code through backtracking over
415         compilation process instead of assert/1.
416   * TS: Removed spurious comma from file.
418 Jun 1, 2005
420   * TS: Added option to disable toplevel constraint store printing.
421   * TS: Slightly improved hash table constraint store implementation.
423 Apr 16, 2005
425   * JW: Added patch from Jon Sneyers.
427 Mar 11, 2005
429   * TS: Improved head reordering heuristic.
430   * TS: Added support primitive for alternate built-in solver dependency.
432 Mar 4, 2005
434   * TS: Fixed bug that causes wrong output in chr_show_store.
436 Feb 25, 2005
438   * TS: Fixed several bugs in generation of debugable code.
440 Feb 19, 2005
442   * JW: Cleanup integration in SWI-Prolog environment:
443         - Extended SWI-Prolog library ordsets.  Renamed ord_delete/3 to
444           ord_del_element/3 and ord_difference/3 to ord_subtract/3 for
445           better compatibility.
446         - Renamed module find to chr_find to avoid name conflict and declared
447           preds as meta-predicate.
448         - Re-inserted and exported strip_attributes/2 and
449           restore_attributes/2 in hprolog.pl. Deleted hprolog: from
450           chr_translate.chr.
451         - Added dummy option declarations to bootstrap compiler.
452         - Fixed path problems in makefile (-p chr=.) and install new
453           components.
454         - Fixed typo 'chr show_store' --> chr_show_store.
456 Feb 17, 2005
458   * JS: Added guard entailment optimizations and
459         new syntax for type and mode declarations.
461 Dec 15, 2004
463   * TS: Use prolog:message/3 hook to automatically print
464         contents of CHR constraint stores with query bindings
465         on toplevel.
467 Dec  3, 2004
469   * TS: Bugfix in code generation. Reported by Lyosha Ilyukhin.
471 Jul 28, 2004
473   * TS: Updated hashtable stores. They now start small and expand.
475 Jul 19, 2004
477   * JW: Removed chr_pp: module prefixes
478   * JW: Updated Windows makefile.mak (more similar organisation, added check)
480 Jul 17, 2004
482   * TS: Added chr_hashtable_store library.
483   * TS: Added find library.
484   * TS: Added builtins library.
485   * TS: Added clean_code library.
486   * TS: Added binomial_heap library.
487   * TS: Added a_star library.
488   * TS: Added new intermediate bootstrapping step
489   * TS: Synchronized CHR compiler with most recent development version
491   Summary of changes:
493    "The new version of the compiler contains several new optimizations, both
494     fully automatic, such as the antimonotny-based delay avoidance (see
495     http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW385.abs.html for
496     the technical report), and enabled by mode declarations (see CHR
497     documentation), such as hashtable-based constraint indexes."
499 Apr 9, 2004
501   * JW: Added chr_messages.pl.  Make all debug messages use the print_message/2
502     interface to enable future embedding.
504 Apr 7, 2004
506   * JW: Added chr:debug_interact/3 hook.  Defined in chr_swi.pl to void
507     showing constraints first as goal and then as CHR call.
508   * JW: Added chr:debug_event/2 hook.  Defined in chr_swi.pl to make the
509     CHR debugger honour a skip command from the Prolog tracer.
511 Apr 6, 2004
513   * JW: Added b (break) to the CHR debugger.
514   * TS: added chr_expandable/2 clause for pragma/2
516 Apr 5, 2004
518   * JW: fixed reference to format_rule/2.
519   * JW: Use select/3 rather than delete/3 in diff/2 in Tests/zebra.pl
520   * TS: CHR translation now leaves CHR store empty
522 Apr 4, 2004
524   * JW: added :- use_module(library(chr)) to all examples.
525   * JW: mapped -O --> option(optimize, full).
526   * JW: introduced file-search-path `chr' for clarity and to enable running
527     make check from the local environment instead of the public installation.
528   * JW: mapped prolog flag generate_debug_info --> option(debug, on)
529   * JW: Replaced the chr -> pl step with term_expansion/2.
530   * JW: Moved insert_declarations/2 to chr_swi.pl
532 Apr 2, 2004
534   * JW: fixed Undefined procedure: chr_runtime:run_suspensions_loop_d/1
535   * TS: Added <space> for creep and shortened debug line prefix to CHR:
537 Mar 29, 2004
539   * JW: Use \+ \+ in chr_compile/3 to undo changes to the constraint
540     pool.  Regression test suite using "make check" works again.
542 Mar 25, 2004
544   * TS: Added skip and ancestor debug commands
546 Mar 24, 2004
548   * TS: Added bootstrapping process for CHR compiler using CHR.
549   * TS: CHR compiler now uses CHR.
550   * TS: Fixed bug in compilation of multi-headed simpagation rules.
551   * TS: Cleaned up compiler.
552   * TS: Added analysis + optimization for never attached constraints.
553   * TS: Exploit uniqueness (functional dependency) results to detect
554     set semantics type simpagation rules where one rule can be passive
555   * TS: Compiler generates 'chr debug_event'/1 calls
556   * TS: Rudimentary support for debugging.
557     option(debug,on) causes a trace of CHR events to be printed
559 Mar 15, 2004
561   * JW: Fix operator handling.
563 Mar 3, 2004
565   * JW: Integrated new version from Tom Schrijvers.