我正在编写一个运行时编译模块。代码如下:
val settings = new Settings
settings.usejavacp.value = true
val interpreter = new IMain(settings)
interpreter.interpret(""" val result = the scala code here """)
interpreter.valueOfTerm("result")//return the result var
但我有一些问题。
如何让多个线程调用IMain返回不同的结果?是否为线程分配了一个IMain实例?这将浪费计算机资源(不间断编译)
如何重新定义已编译的类?
解释器生成的变量(如“结果”)将始终保留?如何删除临时变量?是否可以直接调用更好的api,或者如何改进我的代码?