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