Является ли Rhino единственным интерпретатором с поддержкой песочницы и сериализуемых продолжений? - PullRequest
8 голосов
/ 07 марта 2011

Мне нужны (а) песочница и (б) сериализуемые продолжения. Я предоставляю пользователям сценарии серверной игры , и это крайне асинхронно, поэтому шаблон обратного вызова делает код нечитаемым и очень недоступным для начинающих программистов. Стиль передачи продолжения является альтернативой, но имеет те же недостатки. Асинхронность в том смысле, что для выполнения запроса пользователю могут потребоваться месяцы.

См. http://weaverengine.com/platforms для моего полного списка

Сериализуемые продолжения кажутся очень элегантным решением, но немногие интерпретаторы поддерживают их.

Пока что, похоже, мой единственный вариант - Rhino. Я надеялся, что NodeJS или PyPy сработает, но доказательства пока указывают на обратное.

Кажется, Lua поддерживает сопрограммы , но я не могу найти никакой информации о том, поддерживает ли он сериализуемые продолжения. Луа хорошо занимается песочницей.

NodeJS имеет Jefe , чтобы предложить действительно хорошую песочницу, но пока ничего относительно продолжения сериализации .

PyPy также еще не усовершенствовал свою поддержку песочницы и сериализуемого продолжения до такой степени, чтобы их можно было использовать вместе, как я понял из списка рассылки pypy-dev.

JavaFlow намекает на то, что если все классы реализуют Serializeable, то продолжения Java могут быть сериализованы. Но если я не смогу запустить интерпретатор для хорошего динамического языка поверх JavaFlow, мне это не интересно.

Является ли Java и Rhino моим единственным вариантом?

Есть ли ветка NodeJS с поддержкой продолжения? Любой достаточно хороший, динамичный язык, который соответствует этим критериям?

Ответы [ 3 ]

2 голосов
/ 08 марта 2011

Я удивлен, что вы не упомянули Scheme, поскольку именно на этом языке были продолжения, где они были первопроходцами. SISC , например, интерпретатор Scheme, работающий на JVM, который поддерживает сериализуемые продолжения. Они используются, например, в SISCweb framework.

Для песочницы вы можете использовать встроенные функции безопасности jvm.

0 голосов
/ 29 декабря 2013

В итоге я использовал Lua 5.1.4 и Плутон . Пока что это хороший выбор.

0 голосов
/ 15 марта 2011

Должна быть возможность сериализации продолжений в Gambit-C .

...