web-dev-qa-db-ja.com

Juliaスクリプトをコンパイルする方法は?

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)のみが含まれています

15
Oli

以下は、OS XでのJuliaソースビルドの例で、/ tmp/test.jlは次のようになります。

_function foo()
    print(123)
end

precompile(foo, ())
_

そして_Julia/base/userimg.jl_ as 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はスタンドアロンの実行可能ファイルの事前コンパイルには使用できません。ただし、次の点に注意してください。

14
Isaiah Norton