Juliaは高い頻度で更新が行われており、User GroupやIssuesでも「Updateしたら速くなった」的な話もされていることがあります。
ここでは、"Nightly builds"じゃダメだ!もっと新しいものをくれ!って人のために
Juliaをsourceからbuildしてdmgを作成する方法を紹介します。
方法
作業ディレクトリは各々の環境に合わせて変更して頂ければ幸いです。
各種必要なもののダウンロード/インストール
gccのインストール
brew install gcc
Platypus command line toolsのインストール
ダウンロードはこちらから
cd ~/Downloads
unzip platypus.zip
./Platypus-4.8/Platypus.app/Contents/Resources/InstallCommandLineTool.sh
rm -rf Platypus-4.8 platypus.zip
リポジトリをclone
cd ~
git clone https://github.com/JuliaLang/julia.git
Winstonのインストール
julia
julia> Pkg.add("Winston")
cp -r ~/.julia/v0.3/Cairo ~/.julia/v0.3/Tk ~/julia/contrib/mac/app
make
cd ~/julia/contrib/mac/app/
sudo make
SuiteSparseのダウンロードが失敗する場合
非常にダウンロード速度が遅く、404 Not Found
になる場合があります。
curl: (22) The requested URL returned error: 404 Not Found
make[5]: *** [SuiteSparse-4.4.1.tar.gz] Error 22
make[4]: *** [julia-release] Error 2
make[3]: *** [release] Error 2
make[2]: *** [install] Error 2
make[1]: *** [dist] Error 2
make: *** [dmg] Error 2
リポジトリをcloneして回避します。
cd ~
git clone https://github.com/jluttine/suitesparse.git
tar czvf SuiteSparse-4.4.1.tar.gz ~/suitesparse
sudo rm ~/julia/deps/SuiteSparse-4.4.1.tar.gz
mv SuiteSparse-4.4.1.tar.gz ~/julia/deps
このままだとCheck Sumを通過しないので書き換えます。
cd ~/julia/deps
mv checksums/SuiteSparse-4.4.1.tar.gz/sha512 checksums/SuiteSparse-4.4.1.tar.gz/sha512_OLD
shasum -a 512 SuiteSparse-4.4.1.tar.gz | cut -f 1 -d ' ' > checksums/SuiteSparse-4.4.1.tar.gz/sha512
成功すると~/julia/contrib/mac/app/
にJulia-0.4.0-dev-310986771a.dmg
のようなdmgが作成されます。
で、肝心の速さは?
Julia-0.3.4-Current_Release
% time ./julia -e 'println("hello")'
hello
./julia -e 'println("hello")' 0.50s user 0.11s system 130% cpu 0.468 total
Julia-0.4.0-dev-b4fc1867d0-Nightly_builds
% time ./julia -e 'println("hello")'
hello
./julia -e 'println("hello")' 0.18s user 0.10s system 59% cpu 0.480 total
Julia-0.4.0-dev-310986771a
% time ./julia -e 'println("hello")'
hello
./julia -e 'println("hello")' 4.26s user 0.14s system 103% cpu 4.252 total
まぁこんなこともあるよねってことで。