Clojure は JVM の上に構築されているため、GCJを使用して直接マシン コードにコンパイルできると思いますが、それに関する情報は見つかりません。
可能であれば、どうすればそれを必要最小限に「取り除く」ことができるので、起動時間とメモリフットプリントは可能な限り小さくなります。
Clojure を使用して、UNIX の原則に従って小さな端末プログラムを書きたいと思っています。
理論的には、Clojure ソース コードを Java バイトコードに AOT コンパイルしてから、 を使用gcj
してこのバイト コードをネイティブ マシン コードにコンパイルできます。実際には、これがうまくいくとは思いません。gcj
には、ほとんどの最新の Java アプリケーションでの使用を妨げる厳しい制限があります。具体的には、言語機能のサポートは Java 1.2 で停止し (Clojure にはJava 1.6が必要)、Clojure ランタイムに必要な標準クラス ライブラリの実装が不完全です。実際に、Clojure アプリケーションgcj
が、OpenJDK または Oracle JRE の代わりにランタイムを使用して誤って起動されたときに、クラッシュしたり燃えたりするのを見てきました。