At the moment, the only platforms known to support serializeable continuations and sandboxing at the same time are Lua/Pluto and the java Rhino interpreter for Javascript.
PyPy (unforuntely) doesn't seem to be there quite yet, based on my discussions on pypy-dev.
http://www.mail-archive.com/pypy-dev@codespeak.net/msg05398.html
http://www.mail-archive.com/pypy-dev@codespeak.net/msg05419.html
Every result for NodeJS + Continuations indicates it has no support for them. Apparently the underlying V8 engine only has rudimentary, platform-dependent support.
https://groups.google.com/group/nodejs-dev/browse_thread/thread/aadbb0354e7cad31
http://comments.gmane.org/gmane.comp.lang.javascript.nodejs/17757
Rhino
Sandboxing Rhino
http://stackoverflow.com/questions/93911/how-can-you-run-javascript-using-rhino-for-java-in-a-sandbox
http://codeutopia.net/blog/2009/01/02/sandboxing-rhino-in-java/
Rhino Continuations API for Java (1.7 R2)
http://blog.norrisboyd.com/2009/03/rhino-17-r2-released.html
Rhino Continuations
http://wiki.apache.org/cocoon/RhinoWithContinuations
http://helma.org/wiki/Continuations/#RhinoContinuations
Rhino Scopes and Contexts
https://developer.mozilla.org/En/Rhino_documentation/Scopes_and_Contexts
Rhino 1.6r2 included with Java 6
http://en.wikipedia.org/wiki/Rhino_(JavaScript_engine)
Lua
Lua is a multi-paradigm language
- Designed to allow flexible semantics.
- Which implements coroutines nicely
- Supports flexible sandboxing, although not RAM/CPU limiting.
- Has the Pluto Library for serialization of coroutines/threads.
- Can be embedded from other languages. Is another language even required?
- Has the Orbit MVC web framework
- Can be self-parsing
- Metalua should provide a backend for graphical editing of code
NodeJS
http://nodejs.org/
Does not support serializeable continuations, probably do to limited V8 support.
Jefe, sandboxing for NodeJS. Uses a process pool, allows CPU/RAM, and execution time limiting.
https://github.com/fictorial/jefe
JSApp.US - Example of sandboxed NodeJS execution, but uses another sandboxing solution
http://jsapp.us/
And yet another NodeJS sandbox, but only supports timeouts
https://github.com/dominictarr/node-sandbox
NodeJS framework:
http://geddyjs.org/
And a long list of cool javscript modules
Javascript rewriting solutions (CPS instead of callbacks)
These do not offer continuations or serialization directly, only a (sometimes) generic solution for rewriting code to have callbacks (NarrativeJS and StratifiedJS).
StreamlineJS, on the other hand, adds functions which rewrite (at runtime) only the code they are applied to into CPS form.
StreamlineJS
The story of its creation
Also CoffeeScript compatible
A good discussion of callback rewriting:
http://comments.gmane.org/gmane.comp.lang.javascript.nodejs/17757
StratifiedJS
NarrativeJS
Python
Stackless Python Paper
http://www.stackless.com/spcpaper.htm
Python continuations
http://www.ps.uni-saarland.de/~duchier/python/continuations.html
PyPy Sandboxing and Stackless
http://pypy.org/features.html