[Ironruby-core] Entering try-catch with non-empty stack

Charles Oliver Nutter charles.nutter at sun.com
Mon Oct 1 23:45:25 EDT 2007

Tomas Matousek wrote:
> We are thinking about an AST transformation that would push forward expression evaluations, store results to temp variables and reload them where necessary. But we didn't conclude on this yet. Introducing additional method calls is IMO not necessary.

To me the complexity of this approach is for many nested sets of such 

x = 1
x += begin
   x += begin
     x += begin
       x += begin

This is somewhat contrived, but there are many cases of at least a 
couple nested expressions with exception handling that may happen during 
stack-building. You would need to continue pushing down and storing 
values on the stack at each level, restoring as you climb back out.

FWIW, the above works ok in JRuby right now, but if the begin/rescue is 
replaced with while loops it fails to compile. I will likely have to use 
the same approach for while loops, since they also implicitly handle 
LocalJumpError exceptions.

- Charlie

More information about the Ironruby-core mailing list