Repository navigation
Conversation
zayenz
commented
Oct 4, 2026
Member
Author
There was a problem hiding this comment.
RandomOptionnow stores validated state asRndand returns a copy, avoiding serialization and parsing in the accessor.- Documented selector hook buffer sizes, pointer advancement, capture timing, and restore/split behavior.
- Completed
overrideannotations in the two affected selector classes. This removes the missing-override warnings.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Provisional design for Gecode 7 or another release permitting breaking changes. Not ready to merge or suitable for Gecode 6.x: APIs, binary compatibility, seeded sequences, and randomized choice archives change.
Add extensible random generators with complete-state replay and reproducible indexed splitting. SplitMix is the default; xorshift64* is an alternative. Generators are stored by value, and randomized choices record the selector states needed for recomputation. Cloning does not split streams; model and custom-brancher transitions remain explicit.
Local Apple Clang 21 ARM64 measurements put SplitMix near the old cloning time, with about 16% overhead in the controlled recomputation workload. Xorshift64* was slower. Engine selection and performance tradeoffs remain under review. Recorded-state replay does not guarantee parallel solution order.
Contracts and migration guidance are in Doxygen and the changelog; the custom-engine example and benchmark tool provide usage instructions.