Gecode version 3.1 released
Gecode version 3.1 is released.
The changes are:
Changes in Version 3.1.0 (2009-05-20)Also, version 1.6 of Gecode/FlatZinc is released to support for MiniZinc version 1.0. See MiniZinc version 1.0 released! for more about MiniZinc version 1.0.
This release introduces parallel search, features improved memory management (can double efficiency on MacOS X), and provides a reusable command line driver upon popular request. And, of course, some this and that.
- Kernel
- Performance improvements
- Cache memory blocks from deleted spaces. This hardly increases peak memory consumption. It improves performance on Windows and Linux only by up to 5%, but on MacOS by 50% in some cases (this improvement is absolutely essential for parallel execution). (major)
- Search engines
- Additions
- Added parallel search engines for DFS, BAB, and Restart (but not LDS). Please make sure to read the section "Parallel search" in "Modeling with Gecode". (major) Details
- Other changes
- The stop function of stop objects now also takes a second argument of type Search::Options. This is in particular useful for decisions that involve the number of threads used for search. (minor)
- Finite domain integers
- Additions
- Added a wait propagator: executes a function when a variable (or variables) become(s) assigned. (minor)
- Other changes
- The INT_VAL_MED value selection now consistently selects the greatest element in the domain not greater than the median. (minor)
- Finite integer sets
- Additions
- Added a wait propagator: executes a function when a variable (or variables) become(s) assigned. (minor)
- Other changes
- The set constraint sequentialUnion has been renamed to sequence. (minor)
- Script commandline driver
- Additions
- Added a new module "driver" as a commandline driver for scripts. This is due to popular request: most people have been using the support functionality for examples anyway. This function is now wrapped into a proper module (and Example is now called Script to be more general). See "Modeling with Gecode" for documentation. (major)
- Other changes
- If Gist is not available, -mode gist is the same as -mode solution. Invocation with -help also prints information about how Gecode has been configured. (minor)
- Support algorithms and datastructures
- Additions
- Added a tiny portable thread package specifically tailored to the needs for parallel search. Unfortunately, other portable thread packages have just too many issues. (minor)
- Support::quicksort and Support::insertion support using the less than operator for the sort order by leaving out the comparator object. (minor)
- Example scripts
- Gist
- Other changes
- Small user interface changes: disable search from hidden nodes, add depth information to status bar, and add statistics for subtrees (available from the node context menu and the Node menu). (minor)
- Easily add multiple inspectors to Gist. Inspectors are not exclusive any longer, you can select any combination of them to respond to clicks or solutions simultaneously. (minor)
- Bug fixes
- Fixed a dead lock that could occur when closing the Gist main window while search is still running. (minor)
- The inspectors are finalized before Gist exits. This fixes a bug where (at least on Mac OS) some memory was not freed in the correct order. (minor)
- Gist now correctly centers the current node after search has finished. (minor)