You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Step until env + 1 is selected. Step again at this point and you will hit an "index 2 is out of bounds" error in Debugger>>updateTemporaries. This appears to be caused by the inclusion of argOuter and i in the tempsMap at that point, when in fact they are unavailable.
Minor variations of this code exhibit the same problem—the necessary conditions appear to be as follows:
The outer block must have at least two combined args and temps (one arg and one assigned-but-unused temp also causes the problem)
The inner block must be inside an optimized conditional expression (#ifNil: also works)
The inner block must make use of an env temp, though it need not assign to it (the outer loop can assign to it, causing it to be stored in the Context, while the inner loop only reads from it)
The text was updated successfully, but these errors were encountered:
Creating tests for this is difficult without the test starting to get as complex as the scope analysis code in the compiler itself. Nevertheless I've found another problem, and that the compiler fix I've submitted for this causes another regression. The regression appears somewhat less impactful than the original issue (which the compiler fix does address) because it doesn't actually cause the debugger to fail. However context temps may display a nil or incorrect value in some circumstances that I think should occur rarely in practice. I'm working on fixing that too.
blairmcg
added a commit
to blairmcg/Dolphin
that referenced
this issue
Jul 9, 2017
Debug the following:
Step until
env + 1
is selected. Step again at this point and you will hit an "index 2 is out of bounds" error inDebugger>>updateTemporaries
. This appears to be caused by the inclusion ofargOuter
andi
in the tempsMap at that point, when in fact they are unavailable.Minor variations of this code exhibit the same problem—the necessary conditions appear to be as follows:
The text was updated successfully, but these errors were encountered: