Release Notes

Patches for release 4.0

Patch 1
lib(cumulative) was broken.
Patch 2 (Windows only)
Windows registry entry fixed. Superseded by Patch 4.
Patch 3 (Solaris & Tcl/Tk)
If you have downloaded protcl_sparc_sunos5 before 4 Aug 98 and you have problems running lib(tk), please get protcl_sparc_sunos5_p1. Later downloads should be ok.
Patch 4 (Windows only)
If you have downloaded the Windows-version before 6 Aug 98, please re-get the file eclipse_i386_nt.tgz The previous version was seriously broken due to a C-compiler bug.
Patch 5
Fixes the handling of postponed demon goals (which caused nonterminating delay-resume sequences) and a bug with isd/2 in lib(fd).
Patch 6
Fix for strange behaviour of toplevel history with macro-expanded goals. Changed do-loops such that for/3 always counts up, added for/4. Changed the Hi debugger command to print using macros and proper mode.
Patch 7
Fixed lib(clpq) and lib(clpr) which didn't work due to feature change in module system, improvements to the debugger Hi-command, another fix related to evaluation constraints in lib(fd).

Version 4.0 released 19.7.1998

New constraint handling rules implementation lib(ech)
A first version of a new implementation of constraint handling rules is included in this release. It integrates more closely with the core system, provides new features like more than two rule heads, and is designed to allow important compilation optimizations.
Upgraded lib(eplex)
This interface to external Simplex/MIP solvers now works with CPLEX V5 and XPRESS-MP V10 on Solaris and with XPRESS-MP on Windows. The facilities for automatic solver triggering have been extended. Constraints can now be dynamically added to the solver.
New library lib(fd_global)
This library implements a number of constraints over lists of integers, like ordering, minimum and maximun, occurrences of particular values and sum of list elements.
New libraries lib(cumulative) and lib(edge_finder)
These contain constraints for disjunctive and cumulative scheduling.
Windows version
The Windows-version has become significantly faster and sample code for embedding into C/C++ and VisualBasic is provided.
Logical loops/iterators
The functionality of the library lib(forall) has been reviewed and is now integrated into the core language. The do-loop construct eliminates the need for most auxiliary tail-recursive predicates, while preserving the declarative nature of the language. It is possible to iterate over lists, structure arguments, integer ranges or general data structures. See the User Manual chapter on ECLiPSe-specific language features.
Structure declarations
The functionality of the library lib(structures) has also been integrated into the core language. Structure declarations can now be local or global. See the User Manual chapter on ECLiPSe-specific language features.
Array notation
Another extension to the syntax allows the use of array subscript notation like Matrix[I,J]. This is particularly useful in arithmetic expressions and for-loops. It is implemented by a straightforward mapping to standard data structures. See the User Manual chapter on ECLiPSe-specific language features.
The debugger has a new command "Hi" to enter a term inspection mode which allows navigation through large data structures. See the User Manual chapter on debugging for details.
Module system
Using the module system, especially with tool-predicates has been made easier by the introduction of :/2 to specify the definition module of a predicate (replacing call_explicit/2) and @/2 to specify the context module. The latter makes it unnecessary to ever use tool-body predicates directly.
Goal expansion
Expansion of goal macros and inline compilation of certain built-ins is now the default. This was previously achieved by specifying the pragma(expand) or nodbgcomp. The default can be changed by setting the new global flag goal_expansion.
Garbage collection
The marking phase of the garbage collector has been improved to use significantly less memory.
The Megalog subsystem is no longer included in this release.
A number of new operators have been introduced, some useless ones removed and the precedence of @ changed. This could cause incompatibilities in rare cases.
Documentation updated
The manuals have been reorganised. The Extension Manual does no longer exist, its content has been split between the User Manual and the new Library Manual.

Previous release notes

© Copyright IC-Parc 1997