Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Simulator framework #27

Merged
merged 8 commits into from
Nov 13, 2021
Merged

Add Simulator framework #27

merged 8 commits into from
Nov 13, 2021

Conversation

LinqLover
Copy link
Owner

@LinqLover LinqLover commented Nov 13, 2021

Simulator implements the Chain of Responsibility pattern to make multiple customizations to the simulation engine combinable. Additionally, SimulationMessageSendRecorder (8f12aff) and Sandbox (fddeb9a) are ported to this new framework (for Sandbox, the new version is called Sandbox2). Tests exist as well, of course.

Closes #15.

Simulator implements the Chain of Responsibility pattern to make multiple customizations to the simulation engine combinable.
@LinqLover LinqLover added the enhancement New feature or request label Nov 13, 2021
… (SCI coverage ...) and fix capability pragma in #context:doDup:
- This means that SMSR can now be combined with different simulators!
- Increased robustness of recording by choosing more specific hooks (#return:from: and #send:to:with:lookupIn:) instead of #push:
- Improved documentation and convenience (try out the new shortcut BlockClosure >> #browseSimulationMessageSendRecord!)
Sandbox v1 remains unchanged and is still fully functional as it is slightly faster. Sandbox2, on the other hand, can be combined with other simulators. Maybe the classical sandbox will be deprecated at some point in the future ...
Note that some contexts still are not customized before the step is left which is an imperfect state because certain simulators might expect to always work with custom contexts.
@LinqLover LinqLover merged commit b75bfc2 into master Nov 13, 2021
@LinqLover LinqLover deleted the simulator branch November 13, 2021 23:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Design: Make different simulation specializations combinable
1 participant