-
-
Notifications
You must be signed in to change notification settings - Fork 380
Alternative implementation for stepThrough using HaltingBlock #17975
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
Alternative implementation for stepThrough using HaltingBlock #17975
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is here is nice, I did not look the tests yet because it seems there are parts missing:
- if this is supposed to replace totally the current stepThrough, the stepThrough: method should be rewritten to, else it has to be modified depending on a setting, activating or not these changes
- HaltingBlocks are not used, there is a part where they are installed that is missing
- I wonder if we should use halt or break
- There are missing pragmas: for example in
haltIfStepping
, the halt will actually stop the execution on that method, which will defeat the purpose of helping user get faster in their block ;)
Note: the failing tests are just integration tests, easy to fix. |
Thanks a lot for the review @StevenCostiou , after our pair programming session I did the following:
![]()
To prevent unrelated tests from failing, I could subclass Do you think this solution points in the right direction? |
In Halt, I wonder if we could not just stop completing processes having the pragma, since they are hidden in the debugger? Halt >> completeProcess: aProcess with: aContext
^super completeProcess: aProcess with: aContext If it is really faster it would need further care in the debugger but I think there is no important impact besides potentially showing more suff in the debugger. |
I tried it and the modification makes the FastStepThrough 33% faster than the original StepThrough.
Do you mean we would show irrelevant stack frames to the user in the debugger? If this is the case, is it feasible to hide this information from the final user? |
33% instead of 29%? |
Yes, but 29% was reached after changing this line. And I'm afraid that change may be risky. Should we just keep it? |
Replaced by PR#18095 |
This PR is a clean version of PR#17308
It implements step through using a special kind of blocks named halting blocks.