Difference between revisions of "JVM Continuations"

From JVMLangSummit
Jump to navigationJump to search
(Key Issues for Discussion)
 
(One intermediate revision by one other user not shown)
Line 4: Line 4:
 
; Project:  
 
; Project:  
 
; Blog:  
 
; Blog:  
; Slides: [[Image:file.pdf]]
+
; Slides: [[Image:JVMLanguageSummit_Stadler_Continuations.pdf]]
  
 
=== Abstract ===
 
=== Abstract ===
Line 30: Line 30:
 
[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] 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.
+
[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)''
 
''(please expand cooperatively)''

Latest revision as of 10:50, 18 September 2009

JVM Continuations

Lukas Stadler, JKU

Project
Blog
Slides
File:JVMLanguageSummit Stadler Continuations.pdf

Abstract

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.

Background

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)

Future

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)