FregeコンパイラでClojureアプリを動作させる「Fregure」をインストールして実行してみる
先月のもくもく会でインストールしてみたけど、Tutorialにあるように
動かそうとしたものの、うまく行かなかったのでリベンジしてみた。
[手順]
1. 公式のgithub からclone。
-> % git clone https://github.com/yurrriq/fregure.git
2. ~/fregure/src ディレクトリに移動し、コンパイルして実行。
-> % lein do fregec, run
calling: javac -cp /Users/haiju/fregure/test:/Users/haiju/fregure/src/clojure:/Users/haiju/fregure/dev-resources:/Users/haiju/fregure/resources:/Users/haiju/fregure/target/classes:/Users/haiju/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jar:/Users/haiju/.m2/repository/com/theoryinpractise/frege/frege/3.22.367-g2737683/frege-3.22.367-g2737683.jar:/Users/haiju/.m2/repository/org/clojure/tools.nrepl/0.2.12/tools.nrepl-0.2.12.jar:/Users/haiju/.m2/repository/clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.jar:/Users/haiju/fregure/target/classes:/Users/haiju/fregure/src/clojure:/Users/haiju/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jar:/Users/haiju/.m2/repository/com/theoryinpractise/frege/frege/3.22.367-g2737683/frege-3.22.367-g2737683.jar:/Users/haiju/.m2/repository/org/clojure/tools.nrepl/0.2.12/tools.nrepl-0.2.12.jar:/Users/haiju/.m2/repository/clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.jar -d /Users/haiju/fregure/target/classes -sourcepath /Users/haiju/fregure/src/frege -encoding UTF-8 /Users/haiju/fregure/target/classes/Hello.java
Hello from Clojure!
Hello from Frege!
3. スタンドアローンで動作するjarファイルを作成。
-> % lein uberjar
calling: javac -cp /Users/haiju/fregure/test:/Users/haiju/fregure/src/clojure:/Users/haiju/fregure/resources:/Users/haiju/fregure/target/classes:/Users/haiju/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jar:/Users/haiju/.m2/repository/com/theoryinpractise/frege/frege/3.22.367-g2737683/frege-3.22.367-g2737683.jar:/Users/haiju/fregure/target/classes:/Users/haiju/fregure/src/clojure:/Users/haiju/fregure/target/classes:/Users/haiju/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jar:/Users/haiju/.m2/repository/com/theoryinpractise/frege/frege/3.22.367-g2737683/frege-3.22.367-g2737683.jar -d /Users/haiju/fregure/target/classes -sourcepath /Users/haiju/fregure/src/frege -encoding UTF-8 /Users/haiju/fregure/target/classes/Hello.java
Compiling fregure.core
Created /Users/haiju/fregure/target/fregure-0.1.0-SNAPSHOT.jar
Created /Users/haiju/fregure/target/fregure-0.1.0-SNAPSHOT-standalone.jar
4. 上位階層に移動して、3で作成したjarファイルを指定して実行。
-> % cd ../
-> % java -jar target/fregure-0.1.0-SNAPSHOT-standalone.jar
Hello from Clojure!
Hello from Frege!
project.cljを見ると開発当時のClojureとFregeコンパイラのバージョンが指定されて
いるので、次はどっちも最新版を指定して動作するのか確認してみるといいかも。
それにしても、FregeはInterpreterとFrege-replとLeiningenのテンプレートで落ちて
来るのと数種類あって、どれで構築するのが最適なんだろうかと迷うところ。
Haskellを参考にソースコードを書いてコンパイルするだけならLeiningenのテンプ
レートファイルでも問題なさそうではあるけども・・・(´・ω・`)
[参考サイト]