Changelog
Changes in Version 1.2.0 (2006-06-20)
This release makes quite some drastic changes to how propagators and branchings are deleted: instead of using destructors they use a dispose that allows to pass a home space during deletion (we will use this infrastructure measure to speed up cloning considerably a little later). Moreover the directory structure has changed on popular request so that all include files are to be found in a gecode subdirectory. Apart from that, some small fixes and extensions due to requests.
- Kernel
- Additions
- Spaces can be queried for number of propagators and branchings. (minor)
- Other changes
- The branch member function for branchings now also takes a home space as argument. (minor)
- Cancelling subscriptions on views and variable implementations now require also a home space (this has become possible due to not using destructors but ordinary "dispose" member functions). (major)
- Actors (propagators and branchings) do not any longer use destructors but a "dispose" member function that takes a home space as argument and must return the size of the actor. Important: this requires that dispose member functions from super-classes and class members are called explicitly! (major)
- Performance improvements
- More aggresive inlining for cancelling subscriptions. (minor)
- Additions
- Search engines
- Additions
- Search engines can now be checked whether they have been stopped. (minor)
- Bug fixes
- Fixed linkage of BAB destructor under Cygwin. (minor, bugzilla entry)
- Additions
- Finite domain integers
- Bug fixes
- Fixed memory leak in global cardinality constraint. (minor)
- Fixed bug in equality tests that could lead to reified (dis)equality propagators not achieving domain consistency. (minor, thanks to Martin Mann)
- Documentation fixes
- Fixed bug in description of PC_INT_DOM. (minor, thanks to Martin Mann)
- Bug fixes
- Finite integer sets
- Bug fixes
- Fixed memory leak in finite set distinct propagator. (minor, thanks to Luis Otero)
- Bug fixes
- Example scripts
- Other changes
- Sudoku example generalized to arbitrarily sized Sudokus. (minor)
- Other changes
- Systematic tests
- Additions
- Added --enable-leak-debug configure option. This option causes the test suite to call mtrace() under Linux, which can be used to test for memory leaks. (minor)
- Additions
- General
- Other changes
- Moved library source code into gecode subdirectory. Facilitates cleaner installation. Programs compiling against Gecode now need to include e.g. "gecode/int.hh". (major, thanks to Martin Mann)
- Other changes
Changes in Version 1.1.0 (2006-04-10)
This minor release adds some new constraints (see below), adds support for stopping search engines based on definable criterias, and some other small fixes. Most notably, the test infrastructure has been extended to also check whether propagators correctly claim that they have computed a fixpoint (now all invariants a propagator must obey in Gecode are covered by the test infrastructure). This has lead to many small fixes.
- Kernel
- Other changes
- The status member function now also allows the first argument to be optional. (minor)
- Other changes
- Search engines
- Additions
- Added functionality to interrupt search engines (introduced a Search::Stop class). (major, thanks to Rafael Meneses)
- Other changes
- Removed search engines optimizing for copying only (after all, one should always use some recomputation). (major)
- Additions
- Finite domain integers
- Additions
- Added new constraint channel for variable/value channeling between two variable arrays. (major)
- Other changes
- Support for shared views has been removed in sortedness propagator and in the propagator for global cardinality with fixed cardinalities. (minor)
- Staged propagation for domain-consistent absolute value propagator (minor)
- EqBnd and EqDom now take two template parameters for their views types. This allows using different views, e.g. to express x0=-x1 using a MinusView. (minor)
- All distinct propagators raise an exception if a variable occurs multiply in its arguments. (minor)
- Bug fixes
- Fixed bug in fixpoint detection of sortedness and global cardinality propagator. (minor)
- Fixed bug in fixpoint detection of nary maximum/minimum propagator. (minor)
- Fixed bug in fixpoint detection of bounds-consistent element for variables propagator. (minor)
- Fixed bug in fixpoint detection of bounds-consistent squaring propagator (mult with the same variable twice). (minor)
- Fixed bug in fixpoint detection of bounds-consistent abs propagator. (minor)
- Fixed wrong assertion in gcc-bnd propagator. (minor, thanks to Stefano Gualandi)
- Fixed indexing bug in SupportSet (part of the domain consistent linear equation propagator). (major, thanks to Jean-Christophe Godart)
- Performance improvements
- Rewrite n-ary linear, min/max, and Boolean propagators to binary/ternary variants during cloning if possible (saves memory). (minor)
- Additions
- Finite integer sets
- Other changes
- Renamed the set propagators minElement to min, maxElement to max, and channelVarVal to channel. (major)
- Bug fixes
- A non-debug version of Gecode could not be linked to a program compiled with assertions switched on, as BndSet::isConsistent was missing from the library. (minor, bugzilla entry, thanks to Javier Mena)
- Fixed bugs in fixpoint detection of several set propagators (match, convexity, sequence, n-ary (disjoint) union). (minor)
- Fixed off-by-one bug in SetVarImp::lubMinN and SetVarImp::lubMaxN. (minor, thanks to Patrick Pekczynski)
- Other changes
- Minimal modelling support
- Additions
- Added functions returning variables for arithmetic (min, max, abs, mult, plus, minus). (minor)
- Bug fixes
- (In-)Equations were still not correct with respect to the sign. (minor, thanks to Olof Sivertsson)
- Slice-operation now returns elements in right order. (minor, bugzilla entry, thanks to Olof Sivertsson)
- Possible array-out-of bounds access fixed for MiniModel::Matrix. (minor, bugzilla entry, thanks to Olof Sivertsson)
- Additions
- Example scripts
- Additions
- Added all-interval series using distinct. (minor)
- Performance improvements
- Added redundant constraint to social golfers example. (minor)
- Additions
- General
- Bug fixes
- Added a configure switch --enable-doc-dot. If enabled, this checks for presence of the dot tool (used for generating graphs in the documentation) (minor, bugzilla entry, thanks to Kari Pahula)
- Bug fixes
Changes in Version 1.0.1 (2006-03-01)
Maintenance release including some additions of domain-consistent propagators and a fix for a serious bug in reified linear inequalities.
- Search engines
- Other changes
- Changed default copying recomputation distance to 8. (minor)
- Other changes
- Finite domain integers
- Additions
- Added domain-consistent linear equalities. (major)
- Added domain-consistent version of the absolute value propagator. (major)
- Other changes
- Cost computation for sortedness has been changed from static to dynamic (taking into account the variable reduction the propagator can perform). (minor)
- Global cardinality changed to non-staged version. Further inference for cardinality variables added. Parts of the graph structure for the domain-consistent propagator have been revised so as to avoid unnecessary propagation in case of fixed cardinalities and to allow better staging for the propagator. Revision of propagation for fixed cardinalities has also been applied to bounds-consistent propagator. (major)
- Bug fixes
- Fixed fixpoint detection for ternary min and max. (minor, bugzilla entry)
- Fixed subsumtion detection for regular with multiple variable occurences. (minor)
- Fixed a very serious bug in the reified linear inequality propagator. (major, bugzilla entry, thanks to Dominik Brill)
- The strongly connected components represented by the permutation variables in the extended version of Sortedness has been fixed restoring bounds consistency on the permutation variables. (major, bugzilla entry)
- Additions
- Minimal modelling support
- Additions
- The post functions for linear expressions and relations also take an integer consistency level as optional argument. (minor)
- Bug fixes
- (In-)Equations with an int on the left hand side (like 9==x) were translated with a wrong sign (as -9==x). (minor, thanks to Olof Sivertsson)
- Additions
- Example scripts
- Other changes
- Examples now use per default the recomputation settings as defined in the search module. (minor)
- Other changes
- General
- Other changes
- The soname for libraries on Linux is now set properly, as well as the version information on Darwin (Mac OS). (minor, bugzilla entry)
- The build system has been updated to support building both static and shared libraries at the same time on Unix-like systems. (minor, bugzilla entry)
- Bug fixes
- The preprocessor macro NDEBUG for disabling assertions is no longer put into config.icc. Without this fix, user programs could not use assert if Gecode was compiled with NDEBUG. (minor, bugzilla entry)
- Removed some compiler warnings for the Microsoft compiler with -W3. (minor, thanks to Filip Konvicka)
- Performance improvements
- Switch assertions off in optimized builds with Microsoft's C++ compiler. (major)
- Other changes