8

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

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

可序列化的延续似乎是一个非常优雅的解决方案,但很少有解释器支持它们。

到目前为止,似乎我唯一的选择是犀牛。我希望NodeJS或 PyPy 可以工作,但到目前为止的证据表明相反。

Lua 似乎支持 coroutines,但我找不到任何关于它是否支持可序列化延续的信息。Lua 在沙盒方面做​​得很好。

NodeJSJefe提供了非常好的沙盒,但目前还没有关于 continuation serialization的内容。

根据我在 pypy-dev 邮件列表中的理解,PyPy 还没有完善他们的沙盒和可序列化的延续支持到可以一起使用的程度。

JavaFlow 提示如果所有类都实现 Serializeable,那么 Java 延续可以被序列化。但是除非我可以在 JavaFlow 之上运行一个很好的动态语言的解释器,否则我不感兴趣。

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

是否有具有延续支持的 NodeJS 分支?任何符合这些标准的相当不错的动态语言?

4

3 回答 3

2

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

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

于 2011-03-07T23:25:59.647 回答
0

应该可以在Gambit-C中序列化延续。

于 2011-03-15T10:30:48.770 回答
0

我最终使用了 Lua 5.1.4 和Pluto。目前看来是个不错的选择。

于 2013-12-29T03:23:54.467 回答