Skip to content

Add SimulationMethodFinder #61

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

Merged
merged 4 commits into from
Sep 20, 2022
Merged

Add SimulationMethodFinder #61

merged 4 commits into from
Sep 20, 2022

Conversation

LinqLover
Copy link
Owner

SimulationMethodFinder:

I am a variation of Squeak's traditional MethodFinder that finds all methods for a given set of inputs to match a given output. However, instead of a hardcoded allow-list of selectors, I consider arbitrary messages in the image by evaluating them safely in a SimulationStudio Sandbox. Additionally, I provide a number of advanced configuration options such as reordering arguments (permutationMode), limiting the class hierarchy for search (outerSuperclass), using a predicate or block instead of a constant value for matching message send results (searchMode), and searching in multiple steps (isCompositeSearch) for constructing complex expressions. I also provide some progress variables to support concurrent progress indication.

SimulationMethodFinderTool:

I provide the user interface for a SimulationMethodFinder. I'm a very rough complement of Squeak's traditional SelectorBrowser, but offer more configuration options, run searches asynchronously, and display results incrementally together with some progress indication.

Simulation Method Finder (#toCamelCase) Simulation Method Finder (#pairsDo)
Simulation Method Finder (recursive)

> I am a variation of Squeak's traditional MethodFinder that finds all methods for a given set of inputs to match a given output. However, instead of a hardcoded allow-list of selectors, I consider arbitrary messages in the image by evaluating them safely in a SimulationStudio Sandbox. Additionally, I provide a number of advanced configuration options such as reodering arguments (permutationMode), limiting the class hierarchy for search (outerSuperclass), using a predicate or block instead of a constant value for matching message send results (searchMode), and searching in multiple steps (isCompositeSearch) for constructing complex expressions. I also provide some progress variables to support concurrent progress indication.

SimulationMethodFinderTool:

> I provide the user interface for a SimulationMethodFinder. I'm a very rough complement of Squeak's traditional SelectorBrowser, but provide more configuration options, run searches asynchronously, and display results incrementally together with some progress indication.
@LinqLover LinqLover added the enhancement New feature or request label Sep 20, 2022
@LinqLover LinqLover merged commit 7b7eb01 into master Sep 20, 2022
@LinqLover LinqLover deleted the feat/method-finder branch September 20, 2022 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
1 participant