User code execution platforms

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.

Every result for NodeJS + Continuations indicates it has no support for them. Apparently the underlying V8 engine only has rudimentary, platform-dependent support.


Sandboxing Rhino

Rhino Continuations API for Java (1.7 R2)

Rhino Continuations

Rhino Scopes and Contexts

Rhino 1.6r2 included with Java 6


Lua is a multi-paradigm language

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.

JSApp.US - Example of sandboxed NodeJS execution, but uses another sandboxing solution

And yet another NodeJS sandbox, but only supports timeouts

NodeJS framework:

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.


The story of its creation
Also CoffeeScript compatible

A good discussion of callback rewriting:




Stackless Python Paper

Python continuations

PyPy Sandboxing and Stackless