I recently took a look at joeq (http://joeq.sourceforge.net/) which is a
Java virtual machine written in Java. Included is a "reflective" Java
interpreter that can run on top of an existing Java virtual machine
(e.g. Sun JRE). It can interpret class files, but can also delegate some
(or all) method calls to the underlying VM as well. It looks like it
would be quite easy to support Java language continuations with this
interpreter. There are some drawbacks however:
1) In order to be included in a continuation a method call must be
interpreted by joeq - not by the underlying VM (= severe performance
penalty. Probably at least 15 to 20 times slower than hotspot compiled
code). Although the joeq interpeter is very high quality, I did some
informal tests and it appears to actually be slower than interpreted
Rhino (not sure exactly why, perhaps because Rhino bytecodes are higher
level), but was significantly faster than BeanShell (which is a Java
source code interpreter).
2) It has an LGPL license.
Chris
- Re: Java continuations with joeq Christopher Oliver
- Re: Java continuations with joeq Bertrand Delacretaz
- RE: Java continuations with joeq Reinhard Poetz
- Re: Java continuations with joeq Steven Noels
- Re: Java continuations with joeq Antonio Gallardo
- Re: Java continuations with joeq Gianugo Rabellino
- RE: Java continuations with joeq Reinhard Poetz
- RE: Java continuations with joeq Reinhard Poetz
- Re: Java continuations with joeq Steven Noels
- Re: Java continuations with joeq Brian McCallister
- Re: Java continuations with ... Stefano Mazzocchi