JVM Continuations

From JVMLangSummit
Jump to navigationJump to search

JVM Continuations

Lukas Stadler, JKU

File:JVMLanguageSummit Stadler Continuations.pdf


Continuations for the Hotspot JVM — Lukas Stadler

Continuation support is part of the MLVM effort. They are a powerful concept that allows implementation of many advanced language features like coroutines, green threads, etc. This presentation covers the basic concepts of the lazy continuation mechanism and the details of the actual implementation in the JVM.


This project is part of a long-term collaboration between the HotSpot compiler group at Sun Microsystems and the Institute of System Software at the Johannes Kepler University Linz.

For a list of publications that were results of this collaboration (topics include SSA form, linear scan register allocation, ABCE, object inlining, escape analysis, compiler graph visualization tools) see:

JKU HotSpot Publications

Current Status

{http://www.christianwimmer.at/Publications/Stadler09a/ PPPJ Paper] (non-scoped, non-serializable continuations)


Key Issues for Discussion

[Gafter] These aren't continuations in the traditional programming language sense, because they reset the values of local variables when a continuation is resumed.

[Gafter] I don't see a good way of supporting continuations in Java without requiring rewrites of a substantial portion of existing code (for example, code that was written assuming that finally blocks will be executed once). However, I believe these techniques would be very useful for implementing bounded coroutines.

(please expand cooperatively)