我注意到julia版本0.4。*有一个--compile
选项。
奇怪的是,我找不到任何关于它的文档。
我正在尝试(在Ubuntu中),将julia脚本编译为可执行的LLVM字节码文件。但直到这里,我失败了:
julia --compile=yes --output-bc test.bc test.jl
Segmentation fault (core dumped)
我也可以收到此错误消息:
julia --compile=yes --output-bc test.bc test.jl
ERROR: could not open file boot.jl
如果我将boot.jl
文件放在同一个文件夹中,则不会再出现此错误。
如何将julia脚本编译为可执行/混淆的字节码?
修改:仅供参考,我的test.jl
文件仅包含print(123)
答案 0 :(得分:12)
这是一个例子,来自OS X上的julia源代码,/ tmp / test.jl为:
function foo()
print(123)
end
precompile(foo, ())
julia/base/userimg.jl
为include("/tmp/test.jl")
在julia/base
目录中执行以下操作:
julia --compile=yes --output-bc test.bc -J ../usr/lib/julia/inference.ji sysimg.jl
然后运行llvm-dis test.bc -o test.ll
。在(巨大的)图像的某处,我们有测试函数的相关字节码:
define internal %jl_value_t* @julia_foo_22542() {
top:
%0 = alloca [4 x %jl_value_t*], align 8, !dbg !51528
...
也就是说,截至目前(2015年12月),Julia无法用于提前编译独立的可执行文件。但是,以下内容可能会引起关注:
--output-bc
,但具有更好的用户界面,并且该选项很容易添加)