Changelog

Changes in Gecode Versions

Gecode Version Numbers

Gecode version numbers x.y.z change according to the following rules (of thumb):

Changes in Version 3.1.0 (2009-05-20)

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.

Changes in Version 3.0.2 (2009-03-26)

This is a bug fix release fixing two more embarrassing bugs. However, this time we redesigned our tests carefully such that they cover all changes and optimizations done for the transition from 2.2.0 to 3.0.*. Please update asap.

Changes in Version 3.0.1 (2009-03-24)

This is a bug fix release fixing two embarrassing bugs that were not caught by our test infrastructure. Please update asap.

Changes in Version 3.0.0 (2009-03-13)

This release is a major consolidation release: interfaces have been cleaned up (consistent parameter passing, consistent naming, simpler Gist interface, namespaces for operator overloading); some functionality has been extended (propagators can be non-monotonic; branchings support tie-breaking and random variable and value selection); some functionality that did not meet our quality goals has been removed (complete set variables, reflection); usage has been simplified (auto-linking on Windows, more commonly used filename extensions); important aspects have been optimized (memory management, memory usage and efficiency on 64bit machines). These cleanups were in particular necessary to make Gecode easier to document (this release is the first to be accompanied by tutorial documentation explaining how to model with Gecode).

Apart from that, many small fixes and additions. Please see below for the details.

As the interfaces have changed considerably, please consult How to Change to Gecode 3.0.0.

Changes in Version 2.2.0 (2008-08-25)

This release adds many domain consistent propagators for arithmetic constraints and fixes a number of bugs. Some of these bugs fixed are potentially serious, in particular as they occur very seldom. Please change to 2.2.0 as soon as possible (in particular if you are using the 64bit Microsoft Visual C++ compiler). And, of course, the usual small fixes and changes.

Changes in Version 2.1.1 (2008-03-06)

This is a bugfix release.

Changes in Version 2.1.0 (2008-02-29)

This release makes two essential contributions: a partly reimplemented kernel that is faster, is simpler, and uses less memory and lots of small and not so small fixes. This release is the first release where really everything that we can test (rather than everything that we initially believed to matter) has been systematically tested. So, better switch now to 2.1.0!

Apart from that, the value range for variables has been increased (basically, 32 bits minus three values, so that is 32 bits), the reflection API is now fully functional and no longer considered experimental, and we have the usual small additions.

Changes in Version 2.0.1 (2008-02-07)

This is a bug-fix only release. Very unfortunately, it fixes three serious bugs in search (LDS, Restart, and assignment branchings). We highly encourage you to switch to Gecode 2.0.1 as soon as possible.

Changes in Version 2.0.0 (2007-11-14)

As witnessed by the version number change, this is a major release with too many changes, fixes, and additions to mention them all: please consult the changelog.

The highlights are:

The features marked as experimental are all functional, but might be revised in the next releases.

As Gecode 2.0.0 is a major release, you might have to adapt your programs: How to Change to Gecode 2.0.0.

Changes in Version 1.3.1 (2006-10-25)

This is a minor release which fixes a major bug (the first real serious bug). Please update as soon as possible.

Changes in Version 1.3.0 (2006-09-19)

This release adds a compiler for finite set projectors and provides new infrastructure making it easier to add new variable domains. In addition, it contains recent bug fixes and minor improvements.

Changes in Version 1.2.2 (2006-07-25)

This release switches recomputation back on and removes some experimental code that had sneaked into the system...

Changes in Version 1.2.1 (2006-07-19)

In addition to the usual fixes and improvements, the biggest change is that all branchings now must support branching descriptions. This also entails straightforward changes (simplifications) to search-related space operations and to the implementation of search engines.

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 method that allows passing 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.

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 criteria, 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.

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.

Changes in Version 1.0.0 (2005-12-06, initial release)

No changes, of course.

Gecode performance evolution

The following graph shows the run time and memory allocation of the current Gecode version compared to older versions. The blue line represents run time, the red line memory consumption normalized to the memory baseline. The numbers are the geometric mean of the relative performances of several example programs (the same that we use for benchmarking).

Positive numbers mean that the current version of Gecode performs better, negative numbers mean that it performs worse. For instance, -10% means that the current Gecode needs 10% more memory or run time, +100% means that the current version is twice as fast or allocates half the memory.

You can also get a , including all the individual examples.