本書ではプログラムは全てREPLの中で実行させていますが、
実際にプログラムが完成して独自にバッチ等で動かそうと思ったらどうすればいいんだろう?
cなら、cc でコンパイルして出来上がった実行環境を ./a.out 等で実行できるし、
javaなら javac でバイトコンパイルしたものを jre等で実行できる。
この操作をCommon Lispならどうやるのだろう?という事で調べてみた。
*間違ってるかもしれないので注意。
SBCLではスクリプト実行をサポートしているようなので、
1. 実行可能なスクリプトとして
# vi test.cl
--------------------------
#!/usr/local/bin/sbcl --script
(format t "hello world~%")
--------------------------
# chmod +x test.cl
# ./test.cl
→ hello world
2.ソース、またはfaslとして読み込ませる
# vi test.cl
--------------------------
(format t "hello world~%")
--------------------------
# sbcl
* (compile-file "test.cl")
‐ # sbcl --script test.cl
→ hello world
- # sbcl --script test.fasl
→ hello world
とりあえず、これで作ったプログラムを単独で実行させられそう。
clispとかどうやるんだろう?
1 件のコメント:
処理系依存になるはずです。clozure clなら save-applicationで sbcl も似た名前の関数があったはずです。eclだったら cに変換してから gccとかでコンパイルできるはずです。
コメントを投稿