Elixir 如何使用:emu_args向erlang vm发送标志?
我想向erlang vm发送参数,但是“-escript main parallel_tree_walk_escript”后面会出现“emu_args:+A32”,并且似乎会成为elixir程序的参数,而不会影响erlang vm 如果没有“emu_args:+A32”,则由“mix escript.build”创建的文件包含第三行Elixir 如何使用:emu_args向erlang vm发送标志?,elixir,elixir-mix,escript,Elixir,Elixir Mix,Escript,我想向erlang vm发送参数,但是“-escript main parallel_tree_walk_escript”后面会出现“emu_args:+A32”,并且似乎会成为elixir程序的参数,而不会影响erlang vm 如果没有“emu_args:+A32”,则由“mix escript.build”创建的文件包含第三行 %%! -escript main parallel_tree_walk_escript 如果我用emacs(可以很好地处理非ascii内容)将该行更改为 但是,
%%! -escript main parallel_tree_walk_escript
如果我用emacs(可以很好地处理非ascii内容)将该行更改为
但是,如果我在mix.esx中使用'emu_args:“+A32”,则该行变为
%%! -escript main parallel_tree_walk_escript +A32
…和“+A32”似乎不会转到erlang vm,而是显示为args数组的第一个命令行元素
# permits emacs edit of parallel_tree_walk result
def escript do
[
main_module: ParallelTreeWalk,
]
end
但这显然把论点放在了错误的位置:
def escript do
[
main_module: ParallelTreeWalk,
emu_args: "+A32"
]
end
我希望
%%! +A32 -escript main parallel_tree_walk_escript
但结果是
%%! -escript main parallel_tree_walk_escript +A32
这不起作用。如果我生成一个escript,并手动添加
-emu_args
标志,就像移动+A32
标志一样,无论+A32
在escript名称之前还是之后,我都会得到相同的输出:
# %%! -emu_args -escript main test_escript +A32
# %%! +A32 -emu_args -escript main test_escript
两者都会产生(为了简洁起见,截断了一些路径):
执行:…beam.smp./test-B-A32--root…erlang/21.3-progname erl--home/Users/adam--boot no_dot_erlang-noshell-escript main test_escript-run escript start-extra./test
也许您可以尝试添加emu_args
参数来查看发生了什么。可能是+A32
标志正在到达虚拟机
这是我第一次研究描述,所以我很好奇beam的参数最终是-A32
,而不是+A32
,但这似乎是直接执行模拟器和通过脚本执行模拟器之间的区别。调用…beam.smp--help
确实列出了-A
版本以及最后一个注释,其中说明:
请注意,如果仿真器是用erlexec启动的(通常是
从erl脚本中),这些标志应使用+指定
如果我生成一个escript,并手动添加
-emu_args
标志,就像移动+A32
标志一样,无论+A32
是在escript名称之前还是之后,我都会得到相同的输出:
# %%! -emu_args -escript main test_escript +A32
# %%! +A32 -emu_args -escript main test_escript
两者都会产生(为了简洁起见,截断了一些路径):
执行:…beam.smp./test-B-A32--root…erlang/21.3-progname erl--home/Users/adam--boot no_dot_erlang-noshell-escript main test_escript-run escript start-extra./test
也许您可以尝试添加emu_args
参数来查看发生了什么。可能是+A32
标志正在到达虚拟机
这是我第一次研究描述,所以我很好奇beam的参数最终是-A32
,而不是+A32
,但这似乎是直接执行模拟器和通过脚本执行模拟器之间的区别。调用…beam.smp--help
确实列出了-A
版本以及最后一个注释,其中说明:
请注意,如果仿真器是用erlexec启动的(通常是
从erl脚本中),这些标志应使用+指定
好吧,现在我不知道该怎么想:第三行末尾的“+A32”我认为是失败的(“不起作用”)正按照今天的预期工作,因为main(args\\[])的参数列表是“/parallel_tree_walk.”调用和“:erlang.system_info(:thread\u pool\u size)”应该是什么样的返回32个完全符合预期。我不知道发生了什么事。也许我在我的各种尝试中被删除了一个打字错误。谢谢你的时间。好吧,现在我不知道该怎么想:我认为失败的第三行末尾的“+A32”(“不起作用”)正按照今天的预期工作,因为main的参数列表(args\\\[])就是它们应该与“/parallel_tree_walk.”调用和“:erlang.system_info(:thread_pool_size)”返回的是32,与预期的完全一致。我不知道发生了什么。可能是我在各种尝试中删除了一个拼写错误。谢谢您的时间。