質問: common lispで以下のようなソースをコンパイルした時にできる実行ファイルのサイズがかなり大きいのですが、小さくすることは可能でしょうか。 ``` (defun main() (format t "Hello World!~%")) (sb-ext:save-lisp-and-die "hello-sbcl" :toplevel #'main :executable t) ``` 以下はコンパイルのコマンドとコンパイルで作成された実行ファイルのサイズです。 ``` $sbcl --noinform --no-sysinit --no-userinit --load exec-sbcl.lisp $ls -l 157 2 25 07:39 exec-sbcl.lisp ; ソース 44924976 2 25 07:39 hello-sbcl ; 実行体 ``` "save-lisp-and-die"に"compression t"のオプションを追加しても10MBほどの大きさとなっています。 調べてみても「標準ライブラリが大きいため実行ファイルのサイズも大きくなってしまう」というようなことはわかったのですが、どう対処すればいいかはわかりませんでした。 なお、clozure clで試しても実行ファイルのサイズはあまり変わりませんでした。 common lispで実行ファイルのサイズを小さくすることは可能なのでしょうか。
回答: 英語ですが参考になるやり取りがありました。 * 商用の処理系(LispWorks, Allegro CL)を使用する * SBCL の場合はコンパイルイメージを圧縮、実行時に伸長することでイメージサイズを小さくできる * コメントにあるように ECL で C言語にコンパイル、Cコンパイラで実行形式を作成する