I am currently working on an interpreter for a functional toy language. When the evaluation of an argument is suspended (using a continuation), the execution is resumed to the next argument, and so on. (A toy prototype will be available before Autumn) In my case, it is not realistic to create a DelimitedRunnable for each function application because most of the time it the continuation is not needed.
I note the following. It might be a good idea to have two methods to make delimited continuations: - One when the capturing of the delimited continuation is most likely, using something like DelimitedRunnable; - One when the capturing of the delimited continuation is exceptional, with something like diff-ing two continuations. 2009/7/31 Lukas Stadler <[email protected]> > For performance reasons there is one restriction: The delimited > continuation should not be cut within a stackframe. This might not seem > like a problem but remember that inline can collapse multiple java > stackframes into a single native one. > Isn't it possible to deoptimize the inlined stackframes? I've often heard about Deoptimization, especially in work about Tail Call Optimization by Arnold Schwaighofer. I understand that deoptimization can be expensive, but in the second case - when capturing is exceptional - I think it's worth it. - Emmanuel Castro
_______________________________________________ mlvm-dev mailing list [email protected] http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
