Common Lispをコマンドライン実行できると便利な場面は割りとあるのでShellyを導入した。
Shellyを使ってCommon LispファイルをExecutableにする
こちらの記事を元に設定してみたところうまくいかない…。
どうもshellyが更新した際に色々変わったようで、初期化ファイルにscript関数の定義を読み込むように
(load “~/.shelly/ShellyFile”)
と記述しても上手くいかない。
余り深追いしていないが、以下の様な状態になっている気がする。
- shellyから呼ばれるLisp処理系は初期化のファイル(SBCLなら~/.sbclrc)は実行されていない?
- 代わりに実行するLispファイルのある場所のshlyfile.lispを読み込んで実行する
きっとグローバルにshlyfile.lispを記述することが可能に違いないと思って
適当にshellyのソースコードを検索して見ると”~/shelly/shlyfile.lisp”を起動時に読み込むようになっているようだ。
なので、上記ShellyFileをshlyfile.lispに名前を変更するだけで上手くいった。
$shly script hello.lisp
Hello, world!
$
これで安心してCommon Lispで色々書くことができるようになった。