'(you lisp me)

Lispって何だ

CommonLispのモダンな開発環境を整える

qiita.com

CommonLispでの開発はこれまでEmacs+slimeが主流でした。
Vimとslimeを組み合わせて使うslimv.vimというのもありましたが、いずれにせよ古いエディターですので初心者には敷居が高いというのが現実です。

最近はSublimeTextやAtomなどの新進気鋭なエディターが人気で、Vimなどから移ってくる人も少なくありません。
そろそろ、その波がCommonLispに来ても良い頃合いだと思います。

今回はエディターとしてAtomを使い、処理系の管理にRoswellを使うという環境を構築するための手順を記します。
Roswellについては深町さんの記事が分かりやすいかと思います。

blog.8arrow.org

それでは手順です。
Windowsでの場合を書いていきますが、他の環境でも同様に行えると思います。
各インストール場所は各々の環境に合わせて置き換えてください。

まずRoswellをダウンロードして、C:\roswellに展開します。
ここにパスを通せばコマンドラインから利用出来るようになります。
Windows10だと スタートを右クリック→システム→システムの詳細設定→環境変数 から行えます。
PATHC:\roswellを追加してください。

msys2などを利用している場合は~/.bash_profileあたりにPATH="/c/roswell:${PATH}"などしてパスを通せば利用可能です。

次にAtomをインストールします。

atom.io

上のページからインストーラーをダウンロードし、それに従ってインストールを行ってください。

インストールが完了したらAtomでCommonLispを書くためのパッケージを導入します。
パッケージインストールタブを開いて、

をインストールしてください。

終わったらatom-slimeのセットアップ手順に従い、slimeをダウンロードします。

github.com

上のページのClone or downloadという緑色のボタンからzipをダウンロードして、C:\slimeに展開します。
そしてatom-slimeの設定画面でSlime Pathを先ほど展開したC:\slimeに設定してください。

次にLisp ProcessのところでRoswellの処理系を使うようにします。
もともと使えなかったようなのですが、Roswellの方にissueを書いたらatom-slimeの方にプルリクを送ってもらえました。
2016/10/04現在はマージされていませんが、ここに書いてある通りに書き加えれば利用出来るようになります。
lib/swank-starter.coffeeの17行目あたりを以下のように書き換えてください。

args = [] # 17行目
args.push 'run' if command.match(/ros/) # ここが追加した行
args.push '--load' unless command.match(/clisp/)  # CLISP does not have a --load option

Windowsの場合、AtomのパッケージはC:\Users\your-name\.atom\packagesにあるのでそこから直接ファイルを編集します。
パッケージの修正が終わったらLisp Processrosと入力してください。
以上でAtomの設定は完了となります。

さらにパッケージの読み込みなどはASDFのみで行い、外部からのインストールはRoswellで行うようにしましょう。
ASDFsource-registry.confにRoswellでインストールされるパッケージの場所を書きます。
C:\Users\your-name\AppData\Local\config\common-lisp\source-registry.confを以下の内容で作成してください。

(:source-registry
  (:tree "/Users/your-name/.roswell/lisp/quicklisp/dists/quicklisp/software/")
  :INHERIT-CONFIGURATION)

以上でAtomとRoswellを組み合わせたモダンな開発環境の完成です!
新しくパッケージをインストールしたい場合はコマンドラインから、ros install package-nameで行うようにしましょう。

atom-slimeの使い方についてはまた別の記事で書く予定です。