Posted at

Heroku上でCommon Lisp

More than 1 year has passed since last update.

Nextremer Advent Calendar 2017の4日目です。

Herokuでは様々な言語のbuildpackを公式にサポートしているようですが、残念ながらCommon Lispがありません。

なので、Roswellを使ったCommon Lisp用buildpackを作りました。

また、Herokuを使う場合何らかのWebサービスを作ることが多いと思うので、HerokuでClackを動かすサンプルを作りました。


使い方

buildpackにheroku-buildpack-roswellを指定します。

heroku create --buildpack https://github.com/gos-k/heroku-buildpack-roswell


設定ファイル

heroku-buildpack-roswell用の設定ファイルには次のものがあります。



  • .roswell-install-list : このファイルに書かれたものを順に引数として ros install を実行します。


  • .roswell-use : ファイルの内容を引数として ros use を実行します。


  • .roswell-load-system-list : このファイルに書かれたものを順に引数として ros run -s を実行します。

RoswellデフォルトのCommon Lisp処理系を使う場合には、.roswell-use は不要です。

Herokuでのキャッシュの都合上、使用するライブラリを .roswell-load-system-list に記載して下さい。

例えばClackを使う場合、次のようなファイルが必要です。


.roswell-install-list

clack



.roswell-load-system-list

clack


Clackアプリケーションが app.lisp に書かれているとした場合、Profileは次のようにします。


Procfile

web: clackup --port $PORT app.lisp