Песочница И без стека Python? - PullRequest
2 голосов
/ 08 ноября 2010

Мне нужен язык сценариев для описания очень сложных рабочих процессов.

  • Эти рабочие процессы должны быть приостановлены всякий раз, когда требуется ввод пользователя, и возобновлено после того, как это дано (может быть месяцы спустя). Похоже, что сериализуемые продолжения из Stackless подойдут.

  • Пользователи также должны иметь возможность редактировать сами рабочие процессы. Я не уверен, как сериализованные продолжения будут обрабатывать изменения кода. Я думаю, что мне может понадобиться сохранить хэш версии Git вместе с продолжением и только «обновить» продолжение в контрольных точках, где состояние не требуется.

  • Я предпочитаю синтаксис Python, так как удобочитаемость является очень высоким приоритетом, и динамические характеристики являются ключевыми. Я открыт для предложений.

  • В конце концов, я, вероятно, напишу визуальный редактор блок-схем, который манипулирует базовым кодом.

Я подробно рассмотрел Stackless и PyPy. Stackless, похоже, не предлагает никаких обещаний песочницы, в то время как PyPy, кажется, предлагает и без стеков, и песочницей, но я не могу найти упоминаний о наличии одновременно .

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

1 Ответ

2 голосов
/ 08 ноября 2010

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

У Lua есть библиотека Pluto, которая МОЖЕТ сохранять постоянные потоки (сопрограммы): http://lua -users.org / wiki / PlutoLibrary

Насколько "безопасен"«Выполнение в песочнице» Lua - это первый выбор.Вы можете иметь несколько состояний lua в одном приложении с нулевыми проблемами, и оно поддерживает сопрограммы на языке.Он также имеет преимущество в том, что он довольно быстр в своей форме виртуальной машины, а luajit во многих случаях конкурентоспособен с Java JIT .

...