我需要(a)沙箱和(b)可序列化的延续。 I'm exposing server-side game scripting to users,并且它是非常异步的,因此回调模式使新手程序员无法读取代码,也无法接近代码。连续传递样式是一种替代方法,但具有相同的缺点。从某种意义上讲,对用户的查询可能需要几个月的时间才能完成。
有关我的完整列表,请参见http://weaverengine.com/platforms。
可序列化的延续似乎是一个非常优雅的解决方案,但是很少有解释器支持它们。
到目前为止,似乎我唯一的选择是Rhino。我原本希望 NodeJS 或PyPy可以工作,但是到目前为止的证据却相反。
Lua seems to support coroutines,但是我找不到关于它是否支持可序列化延续的任何信息。 Lua做得很好。
NodeJS具有Jefe可以提供非常不错的沙箱,但是nothing so far regarding continuation serialization。
根据我在pypy-dev邮件列表上的了解,PyPy还没有完善其沙盒和可序列化的延续支持,使其可以一起使用。
JavaFlow暗示,如果所有类都实现Serializeable,则Java延续可以被序列化。但是除非我可以在JavaFlow之上为一种好的动态语言运行解释器,否则我不会感兴趣。
Java和Rhino是我唯一的选择吗?
NodeJS的分支是否具有继续支持?是否有符合这些条件的相当不错的动态语言?
最佳答案
我很惊讶您没有提到Scheme,因为这是延续的先锋语言。例如,SISC是在JVM上运行的Scheme解释器,它支持可序列化的延续。这些例如在SISCweb框架中使用。
对于沙箱,您可以使用jvm的内置安全功能。
关于javascript - Rhino是唯一支持沙箱和可序列化延续的解释器吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5221175/