* Fix some Win32 compatibility issues
[chr.git] / Changelog
blob2ca556797b5b0d6dcbdecd8a4264fe1b1e929626
1 Jan 25, 2006
3  * PVW: Bugfixes for optional use of CHR constraints in rule guards.
5 Jan 18, 2006
7   * PVW: Optional use of CHR constraints in rule guards.
9 Nov 20, 2006
11   * TS: Bug fix in compiler_errors.pl.
13 Oct 25, 2006
15   * TS: Bug fix in occurrence subsumption by Jon Sneyers.
17 Oct 18, 2006
19   * TS: New preprocessor feature.
21   * TS: Parametrization of experimental chr_identifier type.
23 Oct 16, 2006
25   * TS: More inlining.
27   * TS: Stronger static type checking.
29   * TS: Omitted buggy FD analysis from bootstrapping process.
31 Oct 12, 2006
33   * TS: More inlining.
35   * TS: Experimental chr_identifier type.
37 Oct 10, 2006
39   * TS: Allow for empty type definitions aka phantom types. These are 
40         useful for some type-level tricks. A warning is issued so the 
41         user can check whether a phantom type is intended. No other
42         phantom type-specific checks are in place yet.
44   * TS: Fixed static type checking of built-in types.
46 Oct 9, 2006
48   * TS: The dense_int type can now appear on the rhs of type alias
49         definitions.
51 Oct 3, 2006
53   * TS: Fixed bug concerning matchings between ground and possibly
54         non-ground arguments.   
56 Oct 2, 2006
58   * TS: Fixed a bug in code generation, overeager removal of a clause.
60 Sep 28, 2006
62   * TS: Refactored some code.
64 Sep 22, 2006
66   * TS: Add exception handler to initialize chr_leash in new threads.
67   
68 Sep 18. 2006
70   * TS: Bug fix for programs in debugging mode.
72 Aug 30, 2006
74   * JW: Fixed make clean
75   * JW: Enlarged stacks to make build succeed
77 Aug 24, 2006
79   * JW: Add target ln-install
81 Aug 21, 2006
83   * TS: Fixed wrong arities in not inlined predicates. Mike Elston.
85 Aug 18, 2006
87   * TS: Code clean-up, more inlining, only generate used imports.
89 Aug 17, 2006
91   * TS: Inlining and more specialization of auxiliary predicates.
93 Aug 10, 2006
95   * TS: Fixed bug for constraints without rules in debug mode.
97   * TS: Compiler clean-up
99   * TS: Experimental var_assoc_store.
102 Aug 9, 2006
104   * TS: Various minor code generation improvements, including smaller
105         suspension terms.
107 Aug 8, 2006
109   * TS: Absolutely no lock checking when check_guard_bindings is disabled.
111 Aug 4, 2006
113   * TS: Minor optimizations for (-) arguments.
115   * TS: Important optimization for awakening fewer suspended constraints
117 Aug 3, 2006
119   * TS: Fixed typo in static type checker.
121   * TS: Documented static and dynamic type checking.
123 Aug 2, 2006
125   * TS: Fixed bug (type alias related) in static type checker. Mike Elston.
127   * TS: Added static type checking on variable matching in rule heads.
129   * TS: Added static type checking on CHR constraints in rule bodies.
131 Aug 1, 2006
133   * TS: New (limited) compile time type checking of rule heads.
135 Jul 28, 2006
137   * TS: New experimental robustness feature in debug mode:
138         runtime type checking of CHR constraints.
140 Jul 5, 2006
142   * TS: Minor bug fixes.
144 Jun 22, 2006
146   * TS: Improved performance of ai_observation_analysis,
147         mainly via additional tabling and passive declarations.
149 Jun 8, 2006
151   * TS: Disabled some code only intended for SICStus.
153   * TS: Fixed bug in removal of constraints. Spotted by Leslie De Koninck.
155 Jun 7, 2006
157   * TS: Next fix to tracer. Cconstraints in propagation
158         rules are shown in textual order.
160 Jun 2, 2006
162   * TS: Next few fixes to tracer. Constraints in simpagation rules
163         are now shown on the right side of the backslash.
165 Jun 1, 2006
167   * TS: Synchronization with SICStus version of K.U.Leuven CHR.
169   * TS: First few fixes to tracer. Cconstraints in simplification
170         rules are shown in textual order. Constraint insertions
171         are always shown.
173 May 17, 2006
175   * TS: Termination bug fixed in guard_entailment.
177   * TS:  Runtime library predicate run_suspensions is now specialized
178         per constraint, avoiding requirement of fixed suspension layout.
180   * TS: Further update to suspension term layout. Only constraints for
181         which the propagation history is used get a history field.
183 May 9, 2006
185   * TS: Ignore propagation rules with trivial body 'true'.
187 Apr 24, 2006
189   * TS: Guard entailment now first simplifies the formula it processes,
190         in order to reduce the number of disjunctions, to obtain a smaller
191         search tree.
193 Apr 22, 2006
195   * TS: Bug fix by Jon Sneyers:  type aliases now support built-in types.
196         Spotted by Mike Elston.
198   * TS: Small refactorings based on Ciao port experience.
200   * TS: Removed -singleton stylecheck option now that portray_clause
201         prints singleton variables as _.
203 Apr 19, 2006
205  * JW: Make library(chr) load its private stuff silent.
207 Apr 14, 2006
209  * TS: Bug fix: too many guards were locked.
211 Apr 11, 2006
213   * TS: Most runtime library predicates are now specialized
214         per constraint, avoiding generic =.. and lists code.
216         Mayor update to suspension term layout. Layout may now
217         differ from one constraint to the other. Some unused suspension
218         fields (continuation goal and generation number) are omitted.
219         Further analysis can remove more fields.
221         Default store constraints now each have
222         their own global variable: a list of all the suspensions.
223         Removal from this list is now O(1) thanks to setarg/1 and
224         back pointers in the suspension terms. This can cause time
225         time complexity improvements in solvers that always have 
226         variable indexing on their constraints.
228         Ground, non-indexed constraints are now removed from
229         their global list store in O(1), as for the default store.
231         Minor bug fixes in a number of places.
233 Mar 16, 2006
235   * TS: Fixed subtle bug in ai_observation analysis,
236         that caused goal sequences to only generate
237         the optimistic default answer pattern, leading
238         to invalid 'not observed' conclusions.
239   * TS: Variable indexing/suspension analysis now ignores functor/3
240         in guards. Could be extended to other built-ins
241         that cause an error when arguments are not
242         properly instantiated.
244 Mar 11, 2006
245   
246   * TS: Renamed global variable id to chr_id in chr_runtime.pl.
248 Mar 9, 2006
249   * JS: Synchronization with experimental version:
250         - minor optimizations, e.g. efficient lookups with statically known
251           instantiated data 
252         - new alternative syntax for passive declarations
253         - new dense_int built-in type + underlying store
254         - new type alias definitions, like in Mercury
256 Mar 4, 2006
257   * BD: small changes in chr_compiler_options.pl and chr_translate.chr
258         affecting only the SICStus port
260 Mar 3, 2006
261   * BD: lots of changes related to porting to SICStus
262   * TS: Now exception/3 hook is only used in SWI-Prolog
264 Mar 2, 2006
266   * TS: Use exception/3 hook to catch undefined 
267         global variables of chr_runtime.pl and CHR modules,
268         for multi-threaded programs and saved states.
270 Feb 9, 2006
272   * JW: Fix "make check" path issues.
273   * TS: Removed all is_chr_file tests when loading file.
275 Feb 8, 2006
277   * BD: chr_swi.pl: option(optimize --> :- chr_option(optimize
278   * TS: Removed obsolete experimental optimization option.
279   * TS: Correctly report variable pragmas!
280   * TS: No constraints declared is no longer a special case.
282 Jan 19, 2006
284   * BD: chr_swi.pl - use_module(hprolog added for SICStus port
285   * TS: Removed operator declaration for '::'. No longer used.
287 Dec 23, 2005
289   * TS: Removed chr_constraints declaration again, in favor
290         of only the chr_constraint declaration and modified
291         documentation accordingly.
292   * TS: Modified documentation based on recommendations of Bart Demoen.
293   * TS: Added chr_info/3 predicate to chr_compiler_errors, as suggested by
294         Jon Sneyers. Now print banner on calling compiler.
296 Dec 13, 2005
298   * TS: warnings are now written to user_error stream.
300 Dec 12, 2005
302   * TS: option and constraints declarations are now deprecated. They
303         are replaced by chr_option and chr_constraint(s).
304   * TR: Made an interface for warnings and errors. Errors now implemented
305         with exceptions.
306   * TR: Revised documentation.
308 Dec 2, 2005
309   * BD: chr_translate.chr, chr_translate_bootstrap2.chr
310            mutables "abstracted"
311   * BD: chr_translate_bootstrap1.chr
312            atomic_concat - some duplicate code of it is in more than one file :-(
313            create_get_mutable definitions if-deffed
314            verbosity_on/0 for porting
315         hprolog.pl
316            definitions of init_store/2, get_store/2, update_store/2
317            and of make_init_store_goal/make_get_store_goal/make_update_store_goal
318            removed prolog_flag/3 (seemed  nowhere used)
319         chr_translate_bootstrap2.chr
320            make_init_store_goal/make_get_store_goal/make_update_store_goal introduced
321            verbosity_on/0 for porting
322         chr_translate_bootstrap.pl
323            atom_concat -> atomic_concat
324            verbosity_on/0 for porting
325            conditional import van library(terms)
326         chr_translate.chr
327            make_init_store_goal etc. introduced
328         create_get_mutable_ref wherever needed (chr_translate*)
331 Nov 30, 2005
332   * BD: chr_runtime.pl:
333            chr_init for SICStus
334            included contents of chr_debug.pl
335            removed show_store/1
336            create_mutable changed into 'chr create_mutable'
337            got rid of explicit inlining and did it by goal expansion
338            inlining also of 'chr default_store'
339   * BD: chr_swi.pl:
340            removed :- use_module(chr(chr_debug))
341            module header: version for SICStus
342   * BD: chr_debug.pl: emptied
343   * BD: chr_translate.chr:
344            system specific declarations factored out in insert_declarations
345            changed two atom_concat/3 into atomic_concat/3 (because arg 2 was sometimes an int)
346   * BD: chr_compiler_utility.pl:
347            put atomic_concat/3 there 
348            adapted atom_concat_list/2 to use it
349   * BD: chr_swi_bootstrap.pl:
350            introduced chr_swi_bootstrap/2 for ease of porting
351            exported also chr_compile/3
352            porting code for get_time stuff/read_term/absolute_file_name
353   * BD: builtins.pl, a_star.pl, clean_code.pl:
354            some ifdefs
357 Nov 29, 2005
358   * BD: hprolog.pl: removed strip_attributes/2 and restore_attributes/2
360 Nov 29, 2005
361   * BD: chr_swi.pl: Removed code that took Handler for Module (in chr_expand(end_of_file)
362                     Added :- chr_option(_,_) with same meaning as option(_,_)
363                     is_chr_file: .chr is no longer a recognised suffix
364                     added use_module(library(lists))
365                     changed calls to source_location/2 into prolog_load_context/2
366   * BD: chr_translate.chr: chr_translate/2: added end_of_file to translated program
367                            adapted SICStus compatibility message
368                            made :- chr_option(_,_) available
369                            changed precedence of + - ? to 980 (these ops are
370                                      probably not local enough to the module)
372 Nov 21, 2005
374   * TS: Further synchronization with hProlog.
376 Nov 18, 2005
378   * TS: Removed dead code in guard_entailment.chr
379   * TS: Fixed performance bug: now lookup is indexed
380         on maximal number of arguments.
381   * TS: Removed some redundant intermediate predicates
382         in chr_runtime.pl.
383   * TS: It is now possible to disable the printing
384         of the CHR constraint store per module,
385         through the option toplevel_show_store on/off
386   * TS: Synchronized with hProlog
387   * TS: bug fix in functional dependency analysis
389 Nov 17, 2005
391   * TS: Removed two dead predicates in chr_translate.chr
392         and hooked up the late_storage_analysis
393         that was being bypassed.
394   * TS: Renamed global_term_ref_1 to default_store.
395   * TS: Removed redundant predicate values_ht.
396   * TS: Compiler no longer generates dead code for never stored constraints,
397         i.e. attach/detach predicates.
398         This reduces the generated .pl by about 700 lines.
400 Nov 10, 2005
402   * TS: Two more bug fixes for constraints without
403         active occurrences that trigger.
405 Nov 4, 2005
407   * TS: Small optimization of code for constraints
408         without any active occurrence.
409   * TS: Fixed bug caused by previous bug fix:
410         added only_ground_indexed_arguments/1 test
411         to separate out that meaning from may_trigger/1.
413 Nov 3, 2005
415   * TS: Removed strip_attributes code.
416   * TS: Fixed bug that causes new constraints to be added on triggering.
418 Oct 25, 2005
420   * TS: Two minor bug fixes.
422 Oct 19, 2005
424   * TS: Fixed bug due to overly aggressive inlining of get_mutable_value.
426 Oct 18, 2005
428   * JS: Compiled code is broken, if debug is off and optimize too.
429         Debug off now entails optimize on.
431   * TS: Some fixes of the documentation. Thanks to Bart Demoen
432         and Thom Fruehwirth. 
434 Sep 2, 2005
436   * TS: Synchronized with hProlog.
438 Aug 31, 2005
440   * TS: Added missing operator declarations for prefix (?).
442 Aug 9, 2005
444   * JW: import lists into chr_compiler_utility.pl
446   * JW: make message hook for query(yes) detect CHR global variables.
448   * JW: Exported pairlist_delete_eq/3 from pairlist and use this in
449     chr_hashtable_store.pl
451 Aug 4, 2005
453   * TS: Renamed pairlist:delete/3 to pairlist:pairlist_delete/3.
454         Mike Elston.
455 Aug 1, 2005
457   * TS: Extended more efficient ground matching code to
458         removed simpagation occurrence code.
460 Jul 28, 2005
462   * TS: New input verification: duplicate constraint declaration
463         now reported as an error. Requested by Mike Elston.
464   * TS: More efficient matching code for ground constraints
465         when matching an argument of a partner constraint with
466         a ground term
467   * JS: Bug fix in guard simplification.
469 Jul 3, 2005
471   * TS: Factored out option functionality into separate module.
472   * TS: Factored out utility code into separate module.
474 Jun 29, 2005
476   * TS: Changed chr_show_store/1 to use print/1 instead of write/1.
478 Jun 28, 2005
480   * TS: Removed spurious and conflicting operator definitions
481         for +, - and ? as mode declarations.
483 Jun 27, 2005
485   * TS: Added find_chr_constraint/1 functionality.
487 Jun 8, 2005
489   * TS: Improved compiler scalability: use nb_setval/2 to
490         remember compiled code through backtracking over
491         compilation process instead of assert/1.
492   * TS: Removed spurious comma from file.
494 Jun 1, 2005
496   * TS: Added option to disable toplevel constraint store printing.
497   * TS: Slightly improved hash table constraint store implementation.
499 Apr 16, 2005
501   * JW: Added patch from Jon Sneyers.
503 Mar 11, 2005
505   * TS: Improved head reordering heuristic.
506   * TS: Added support primitive for alternate built-in solver dependency.
508 Mar 4, 2005
510   * TS: Fixed bug that causes wrong output in chr_show_store.
512 Feb 25, 2005
514   * TS: Fixed several bugs in generation of debugable code.
516 Feb 19, 2005
518   * JW: Cleanup integration in SWI-Prolog environment:
519         - Extended SWI-Prolog library ordsets.  Renamed ord_delete/3 to
520           ord_del_element/3 and ord_difference/3 to ord_subtract/3 for
521           better compatibility.
522         - Renamed module find to chr_find to avoid name conflict and declared
523           preds as meta-predicate.
524         - Re-inserted and exported strip_attributes/2 and
525           restore_attributes/2 in hprolog.pl. Deleted hprolog: from
526           chr_translate.chr.
527         - Added dummy option declarations to bootstrap compiler.
528         - Fixed path problems in makefile (-p chr=.) and install new
529           components.
530         - Fixed typo 'chr show_store' --> chr_show_store.
532 Feb 17, 2005
534   * JS: Added guard entailment optimizations and
535         new syntax for type and mode declarations.
537 Dec 15, 2004
539   * TS: Use prolog:message/3 hook to automatically print
540         contents of CHR constraint stores with query bindings
541         on toplevel.
543 Dec  3, 2004
545   * TS: Bugfix in code generation. Reported by Lyosha Ilyukhin.
547 Jul 28, 2004
549   * TS: Updated hashtable stores. They now start small and expand.
551 Jul 19, 2004
553   * JW: Removed chr_pp: module prefixes
554   * JW: Updated Windows makefile.mak (more similar organisation, added check)
556 Jul 17, 2004
558   * TS: Added chr_hashtable_store library.
559   * TS: Added find library.
560   * TS: Added builtins library.
561   * TS: Added clean_code library.
562   * TS: Added binomial_heap library.
563   * TS: Added a_star library.
564   * TS: Added new intermediate bootstrapping step
565   * TS: Synchronized CHR compiler with most recent development version
567   Summary of changes:
569    "The new version of the compiler contains several new optimizations, both
570     fully automatic, such as the antimonotny-based delay avoidance (see
571     http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW385.abs.html for
572     the technical report), and enabled by mode declarations (see CHR
573     documentation), such as hashtable-based constraint indexes."
575 Apr 9, 2004
577   * JW: Added chr_messages.pl.  Make all debug messages use the print_message/2
578     interface to enable future embedding.
580 Apr 7, 2004
582   * JW: Added chr:debug_interact/3 hook.  Defined in chr_swi.pl to void
583     showing constraints first as goal and then as CHR call.
584   * JW: Added chr:debug_event/2 hook.  Defined in chr_swi.pl to make the
585     CHR debugger honour a skip command from the Prolog tracer.
587 Apr 6, 2004
589   * JW: Added b (break) to the CHR debugger.
590   * TS: added chr_expandable/2 clause for pragma/2
592 Apr 5, 2004
594   * JW: fixed reference to format_rule/2.
595   * JW: Use select/3 rather than delete/3 in diff/2 in Tests/zebra.pl
596   * TS: CHR translation now leaves CHR store empty
598 Apr 4, 2004
600   * JW: added :- use_module(library(chr)) to all examples.
601   * JW: mapped -O --> option(optimize, full).
602   * JW: introduced file-search-path `chr' for clarity and to enable running
603     make check from the local environment instead of the public installation.
604   * JW: mapped prolog flag generate_debug_info --> option(debug, on)
605   * JW: Replaced the chr -> pl step with term_expansion/2.
606   * JW: Moved insert_declarations/2 to chr_swi.pl
608 Apr 2, 2004
610   * JW: fixed Undefined procedure: chr_runtime:run_suspensions_loop_d/1
611   * TS: Added <space> for creep and shortened debug line prefix to CHR:
613 Mar 29, 2004
615   * JW: Use \+ \+ in chr_compile/3 to undo changes to the constraint
616     pool.  Regression test suite using "make check" works again.
618 Mar 25, 2004
620   * TS: Added skip and ancestor debug commands
622 Mar 24, 2004
624   * TS: Added bootstrapping process for CHR compiler using CHR.
625   * TS: CHR compiler now uses CHR.
626   * TS: Fixed bug in compilation of multi-headed simpagation rules.
627   * TS: Cleaned up compiler.
628   * TS: Added analysis + optimization for never attached constraints.
629   * TS: Exploit uniqueness (functional dependency) results to detect
630     set semantics type simpagation rules where one rule can be passive
631   * TS: Compiler generates 'chr debug_event'/1 calls
632   * TS: Rudimentary support for debugging.
633     option(debug,on) causes a trace of CHR events to be printed
635 Mar 15, 2004
637   * JW: Fix operator handling.
639 Mar 3, 2004
641   * JW: Integrated new version from Tom Schrijvers.