GoO Engine新坑开坑记 1

如题

简介

项目地址: GitHub

一个简单的Lua/Python脚本执行引擎.

期望的特性

  • 能够通过manager轻松管理包依赖;
  • 提供一个简便的执行脚本的方法, 并使用一个队列来处理脚本与对应的数据;
  • 能够方便的与宿主进行数据交互与线程管理, 保证线程安全, 也提供随时启动/终止线程的方法;
  • 通过解释器提供的traceback信息尝试修复一些常见小错误并重新尝试执行脚本, 以此来提供容错功能;
  • 如果有可能的话希望提供一句话编程语言的能力, 方便在比赛中快速的进行数据处理, 同时又不像lambda语言那样晦涩难懂;

灵感来源

名称灵感来源于World Of Goo信息高速公路章节的容错系统, 以及MuseDash中的Rabot 233. 被容错设计彻底惊到了. 虽然容错是一个很基本的设计, 但是之前写软件的时候从来没有考虑到过为用户容错.

同时, 放弃ICTFE 1.0其中的一个原因是1.0版本使用Python编写, 性能很低. 第二个原因是Python的多进程管理很残废, 无法保存进程对象, 也就没有办法对正在执行的进程进行操作. 线程管理很完善, 但是Python的线程受到GIL限制, 只能利用单核, 后台一旦进入密集计算状态, UI就能卡出屎来.

第三个原因就是编写本引擎的原因. 数据流处理器模块我当时写了快两个星期才正式完工, 测试了许多次没有发现bug. 但代码的复杂导致我根本不想去维护, 逻辑和UI穿插在一起挤的一团糟.

于是希望能够实现本引擎, 并提供易于使用的接口与安全的多线程计算保证, 作为ISAE数据流处理器的后端引擎使用. 这样维护成本和调试bug的难度应该都会下降. 同时单独实现本引擎, 也可以为以后的项目提供一个稳定的脚本嵌入方案.

评论

:D 一言句子获取中...