Simplify the execution loop and remove wrong assertions #59
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.
This fixes #58.
By simplifying the execution loop, the assertions in
exec_step
areno longer required.
The assumption that the current program element has to be done at
the beginning of
exec_step
is not always true, because breakpoints can change their state between invocations ofexec_step
. Another possible fix would've been to make the breakpoint'sstep
function returntrue
every time. This could however slow the program down, sinceexec_step
would return for every breakpoint (even deactivated ones).Note: I might have misunderstood how
exec_step
is supposed to work, because I'm not entirely sure why it has to return before a step completes.