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

Experimental solution for step through interpreting the full flow issue #16351 #17308

Draft
wants to merge 26 commits into
base: Pharo13
Choose a base branch
from

Conversation

carolahp
Copy link
Contributor

Please do not review yet
This is an experimental solution aimed at addressing issue#16351.
In it, an unknown bytecode is used to execute step through.

This is a work in progress, results and further steps will be analized with @tesonep

For performance comparison use the following code snippet

"testClass := EnhancedStepThroughTest."
testClass := StepThroughTest.

tests := testClass suite tests.

suite := TestSuite new addTests: tests.

suite run.

(AndreasSystemProfiler new spyOn: [ 1 to: 100 do: [:i | suite run] ]) totalTime. 

tesonep and others added 26 commits October 12, 2024 19:26
A change in SDL2 (libsdl-org/SDL@61cd57d) caused modifier changes to be sent as a repeat keydown with different key modifiers.

This causes some keybindings to become un-typeable (For example: Cmd+Shift+W, E) because the keyup events cause these new keydown repeats with the new modifiers (for the previous example these are something like Cmd+Shift/Cmd+W/Shift+W).
…out repeat events.

This feels like a hack...
 - fix undo/redo cases that broke text, specially when in collaboration with the syntax highlighter
 - make undo/redo work on a word-by-word basis
 - make undo/redo restore selection and cursur when doing a replacement by paste/completion

Co-authored-by: Fede Lochbaum <[email protected]>
…ugSession. These tests should be parametrized in the future. They are commited like this to ease the performance comparison between DebugSession and EnhancedDebugSession
Remove unnecessary KM repository reset
Fix typo: change "The cyclomatic complexity is heigh" to "The cyclomatic complexity is high"
…s-editor

Major update of the Keymap Descriptions to a Shortcuts Editor
…t raise an exception in the interpreter but put a new context in it with the message send taken from the Smalltalk Special Array
@StevenCostiou
Copy link
Collaborator

Hi, this is super interesting work! but quite complex.
Would it be possible to have a short summary of the idea?

Also a dumb question: as far as I understand (but may be wrong) the only interest of the step through is stepping into blocks? Would it be possible to, instead of stepping, detect that the user attempts to step in to a block (by using step through near a block), then put an unknown bytecode at the start of the block and just proceed, and get back the debugger when hitting that unknown bytecode?

Probably is possible that it never gets into the block and so another "security unknown bytecode" should be put after the block to catch that we just never went into.

Maybe it would not work or would be more complicated that the current attempt. But I would be interested to reflect on all that can be done with the unknown bytecode trick.

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.

10 participants