Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение

Your serialization requirement will be difficult in most languages with native co-routine libraries. You might need to implement co-routines in another way to allow for object graph serialization.

Lua has the Pluto library, which CAN persist threads (co-routines): http://lua-users.org/wiki/PlutoLibrary

As far as "safe" execution in a sandbox, Lua is a first choice. You can have multiple lua states in a single application with zero issues, and it supports co-routines in the language. It also has the benefit of being quite fast in its VM form, and with luajit is competitive with Java JIT in many cases.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top