Skip to content

Prepare the 6.6.0 release - #279

Open
zayenz wants to merge 3 commits into
mainfrom
feature/6.6.0
Open

zayenz wants to merge 3 commits into
mainfrom
feature/6.6.0

Conversation

@zayenz

@zayenz zayenz commented Nov 14, 2026 •

Copy link
Copy Markdown
Member

Prepare Gecode 6.6.0, a bug-fix release from the current tip of main, planned for 16 November 2026.

  • Set the build version to 6.6.0 and the library ABI to 53. The exported Search::Seq::RBS changes its constructor and layout, and the float rounding control changes for MSVC.
  • Turn the 7.0.0 development section of the changelog into 6.6.0 with the release summary. 7.0.0 is reopened after the release.
  • Fix strict option parsing for SizeOptions and InstanceOptions. BaseOptions::parse(argc,argv) is not virtual, so parse_strict() ran only the base parse and rejected the size or instance argument. Both classes now have their own strict overloads: the only argument that may remain is the size (a number) or the instance (not starting with a hyphen). The changelog entry for strict parsing says so. New tests cover both classes.

Validated locally with Release libraries, experimental search, Gist and the test libraries: check passes 539/539.

The exported Search::Seq::RBS engine changes its constructor and layout, and the float rounding control changes for MSVC, so libraries built from this tree are not binary compatible with 6.5.0.
The development section opened for 7.0.0 holds only fixes and the opt-in strict option parsing, which go out as 6.6.0 on 16 November. Gecode 7.0.0 remains the next major release.
BaseOptions::parse(argc,argv) is not virtual, so the strict overload ran only the base parse for SizeOptions and InstanceOptions. Their size or instance argument was then reported as unrecognised, for example "prog 7" with SizeOptions::parse_strict().

Give SizeOptions and InstanceOptions their own strict overloads, which hide the base ones as their parse() already does. The only argument that may remain is the size, which must be a number, or the instance, which must not start with a hyphen so that a misspelled option is not taken as an instance. Making parse() virtual instead would recurse in subclasses whose parse() calls parse_strict(), such as EFPA's options.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant