代码之家  ›  专栏  ›  技术社区  ›  Lilith River

沙盒和无堆叠的巨蟒?

  •  2
  • Lilith River  · 技术社区  · 15 年前

    我需要一种脚本语言来描述非常复杂的工作流。

    • 需要暂停这些工作流 每当需要用户输入时,以及 给予后恢复(可能 几个月后)。似乎从Stackless进行的可序列化延续是一种很好的适合。

    • 用户还需要能够编辑 工作流本身。我不确定序列化的延续如何处理底层代码更改。我认为我可能需要保存git版本散列和延续,并且只在不需要状态的检查点“升级”延续。

    • 我更喜欢python语法,因为 可读性是一个非常高的优先级, 动态特性是关键。不过,我愿意接受建议。

    • 最后,我可能会编写一个可视化的流程图编辑器,它操纵底层代码。

    我已经深入研究了斯塔克勒斯和皮比。Stackless似乎没有提供任何关于沙盒的承诺,而Pypy似乎同时提供Stackless和沙盒,但我找不到任何关于 两者同时发生。

    有什么解决办法吗?如果有一个专家能让我有一个好的解决方案,我有一个PayPal帐户,我愿意使用它。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Yann Ramin    15 年前

    在大多数使用本机共同例程库的语言中,您的序列化要求是困难的。您可能需要以另一种方式实现协同例程,以允许对象图序列化。

    Lua有Pluto库,它可以持久化线程(共同例程): http://lua-users.org/wiki/PlutoLibrary

    就沙盒中的“安全”执行而言, Lua 是第一选择。您可以在一个应用程序中拥有多个无问题的Lua状态,并且它支持语言中的共同例程。它还具有在其虚拟机形式中相当快的优点,并且 luajit competitive with Java JIT 在许多情况下。

    推荐文章