Grenchman で lein run する方法。

おいしいClojure入門にjarkでJVMの起動待ち時間をなくせるよ!と書いてあったので使おうと思ったら、jarkでlein runできるのかできないのか英語の掲示板で揉めてて、作者が今度のversionでjark leiningen. ARGSできるようにすると言っててそのversion過ぎてもできてないのか何なのかわかんないし、追う気にもならなかったのだけど、最近Leiningenの作者がインスパイアされて、Grenchmanという、同様のをリリースしていたので試してみた。これ https://github.com/technomancy/grenchman
nREPLを立ち上げておいて、そこへ投げるからオーバーヘッドが削減できるらしい。
Leiningen2.3.4以降で使えるとのこと。使い方間違っていたら教えて下さい。

vagrant@vagrant-ubuntu-precise:/vagrant$ nohup lein repl :headless &
[1] 3240
vagrant@vagrant-ubuntu-precise:/vagrant$ nohup: 入力を無視し、出力を `nohup.out' に追記します

vagrant@vagrant-ubuntu-precise:/vagrant$ tail -1 nohup.out 
nREPL server started on port 58829 on host 127.0.0.1

vagrant@vagrant-ubuntu-precise:/vagrant$ cd project_dir/
vagrant@vagrant-ubuntu-precise:/vagrant/project_dir$ grench repl :connect 58829
user=> 
(ctrl+D)

これでgrench lein runできる。
実行速度比較。

vagrant@vagrant-ubuntu-precise:/vagrant/project_dir$ time grench lein run
Hello, World!

real	0m2.319s
user	0m0.016s
sys	0m0.012s

vagrant@vagrant-ubuntu-precise:/vagrant/project_dir$ time lein run
Hello, World!

real	0m3.785s
user	0m1.724s
sys	0m1.112s

だいぶ速い。

おいしいClojure入門 (Software Design plus)

おいしいClojure入門 (Software Design plus)