Haxelib Run 无法启动新线程?



尝试在我的测试 Haxelib 上使用haxelib run命令时出现异常:

haxelib run haxelib-test

D:\HaxeToolkit\haxe\std/neko/vm/Thread.hx:54:字符 20-71:无法从宏中创建线程

没有线程,一切正常。

哈克塞代码:

import neko.vm.Thread;
class Main {
static function main() {
trace("starting");
var commandsThread = Thread.create(read);
trace("ending");
}
static function read() {
trace("new thread");
}
}

我的haxelib.json如下所示:

{
"name": "haxelib-test",
"license": "MIT",
"tags": [],
"description": "",
"version": "0.0.1",
"classPath": "src/",
"main": "Main"
}

从您链接的Haxelib文档中:

具有run.n辅助程序或haxelib.json中定义的主类的库可以使用haxelib run执行。

由于您提供了一个main类,Haxelib 正在尝试使用--interp参数在 Haxe 的内置宏解释器中运行您的代码。

Haxe 3的宏解释器不支持线程,因此出现了错误。您可以通过编译run.n文件并将其与库打包来解决此问题,以便脚本在 Neko VM 中执行:

haxe -main Main -neko run.n

Haxe 4在preview.5版本中为其名为"Eval"的新宏解释器引入了线程支持。从该版本开始,您可以使用eval.vm.Thread.但是,请注意,这将使您的Haxelib的run命令不适用于运行较旧Haxe版本的人。因此,如果您要获得最大的兼容性,请暂时坚持使用Neko。

相关内容

  • 没有找到相关文章