Rhino是唯一支持沙盒和可序列化延续的解释器吗?

Lil*_*ver 8 javascript continuations sandbox rhino node.js

我需要(a)沙盒,以及(b)可序列化的延续.我正在向用户公开服务器端游戏脚本,并且它非常异步,因此回调模式使代码不可读并且对于新手程序员来说非常不易接近.延续传递风格是另一种选择,但具有相同的缺点.异步是指对用户的查询可能需要数月才能完成.

有关完整列表,请参见http://weaverengine.com/platforms

Serializedable continuation看起来是一个非常优雅的解决方案,但很少有解释器支持它们.

到目前为止,似乎我唯一的选择是Rhino.我希望NodeJS或PyPy可以工作,但迄今为止的证据恰恰相反.

Lua似乎支持协同程序,但我找不到任何关于它是否支持可序列化延续的信息.Lua做得很好.

NodeJSJefe提供了非常好的沙盒,但到目前为止没有关于延续序列化的内容.

PyPy还没有改进他们的沙盒和可序列化的延续支持,以便可以在pypy-dev邮件列表中使用它们一起使用.

JavaFlow暗示如果所有类都实现了Serializeable,那么可以序列化java continuation.但除非我能在JavaFlow上运行一个很好的动态语言解释器,否则我不感兴趣.

Java和Rhino是我唯一的选择吗?

NodeJS的分支是否有持续支持?任何符合这些标准的合理的动态语言?

Jör*_*ann 2

我很惊讶你没有提到Scheme,因为这是延续开创的语言。例如,SISC是一个运行在 JVM 上的方案解释器,支持可序列化的延续。例如,这些在SISCweb框架中使用。

对于沙箱,您可以使用 jvm 的内置安全功能。