对于多人编程游戏,我正在为 Scala 开发一个后台编译服务器,该服务器支持编译玩家提交的多个独立源代码树。Global
通过实例化编译器对象,我成功地运行了快速的顺序编译,而无需重新加载编译器
val compilerGlobal = new Global(settings, reporter)
然后通过运行单个编译作业
val run = new compilerGlobal.Run
run.compile(sourceFilePathList)
我现在理想地希望并行化服务器(即同时运行多个编译),但仍然不需要每次都从头开始重新加载编译器(主要是为了避免重新解析库)。这可能吗,即上面显示的第二部分(安全:-) 可重入,还是保持全局状态?如果没有,还有什么我可以尝试的吗?我目前专注于支持 Scala 2.9.1。