haiju's 開発メモ

開発に必要な情報を自分用にメモ

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のテンプ

 レートファイルでも問題なさそうではあるけども・・・(´・ω・`)

[参考サイト]

github.co

github.com

github.com

voluntas.hatenablog.com

stackoverflow.com