UP | HOME

Emacs (DOOM Emacs)でCommon Lisp環境構築

概要

[2025-10-12 Sun] 作成, [2025-10-13 Mon] 公開.

Common Lisp については WEB 上には新旧様々な情報があり、また自分の PC の環境に合う情報が見当たらなかったので備忘録を兼ねて公開する。

環境

  • Windows 11 Pro 24H2
  • WSL2 Ubuntu
lsb_release -a
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.5 LTS
Release:	22.04
Codename:	jammy
(princ (version))
"GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0)
 of 2024-09-21"
(doom/version)
"GNU Emacs     v31.0.50         nil
Doom core     v3.0.0-pre       HEAD -> master ef9e8d892 2025-10-06 07:13:25 -0400
Doom modules  v25.10.0-pre     HEAD -> master ef9e8d892 2025-10-06 07:13:25 -0400
"

roswell のインストール

Common Lisp の処理系が選べるからといって、最初から SBCLCCL をインストールしても構わないだろうが、現時点では roswell という Common Lisp のあれこれを一挙に管理するツールがあるのでこれを使う。

https://roswell.github.io/Installation.html に記載の通りインストールするのだが、残念ながら Ubuntu のパッケージマネージャには roswell がない。記載通りソースからビルドすることになる。
Ubuntu という初心者向けのディストリビューションこそ幅広いパッケージを揃えたほうが、パッケージがないためビルドする羽目になるという状態を避けられるから、初心者に優しいと思うのだが……。
もちろん読者の環境で roswell がパッケージ化されているなら、それを利用するべきである。しばらく読み飛ばしてもらって構わない。

まずはビルドに必要なソフトをインストールする。

sudo apt install automake libcurl4 libcurl4-openssl-dev zlib1g
# zlib1gは不要かも

続いて最新の roswell を git clone する。 ghq を使えば楽である。

git clone -b release https://github.com/roswell/roswell .../path/to/roswell # <- リポジトリのコピー先
# あるいは ghq get https://github.com/roswell/roswell
cd .../path/to/roswell
sh bootstrap
./configure
make
sudo make install
which ros # インストールが成功すればどこかのpathが出力される

コマンドの幾つかは実行するといろいろと出力されるが、 ./configure に failed のような文字がなければ最後のコマンドで表示があるはずだ。

ここからパッケージでインストールした場合と合流する。

ros setup

上記のコマンドで自動セットアップが完了するはず。


もし下記の Emacs でエラーが出た際はここに戻って、足りないシステム(いわゆる「パッケージ」)をインストールする。

ql:*quicklisp-home*
;; #P"~/.roswell/lisp/quicklisp/" のように出力があるはず。

;; なければquicklispがREPL起動時に自動で読み込まれていない。各自調べてほしい。
;; 出力があるなら以下を実行。

(ql:quickload :agnostic-lizard)
;; 自分はEmacsで ~agonistic-lizard~ についてエラーがでたのでインストールする。
(exit)

Emacs の設定

先述の通り、DOOM Emacs を使用しているので init.elconfig.el を少し変更すれば動くはず。

(doom!
 ;; ...
 :lang
 ;; ...
 common-lisp ;; ここをアンコメント
 ;;
)
;; ...
(after! org
  ;; org-mode でcommon lispコードを評価できるようにする
  (org-babel-do-load-languages
   'org-babel-load-languages
   '(
     ;; ...
     (lisp . t) ;; 追記。common-lispではなくlisp。
     ;; ...
     ))
  )

;; ...

(after! sly
  (setq inferior-lisp-program "ros -Q run")
  (add-to-list '+lisp-quicklisp-paths "~/.roswell/lisp/quicklisp")
  )

DOOM での設定の詳細は https://github.com/doomemacs/doomemacs/tree/master/modules/lang/common-lisp に記載があるので最新情報はこちらを参照。

ターミナルで bin/doom sync の後、 Emacs で M-x sly とすれば REPL が起動するはず。代わりにエラーが出た場合、上記の roswell の設定を見直す。

再度 Emacs で M-x sly をすると REPL が出たので解決。

(format t "hello common lisp!")
hello common lisp!

roswell のアップデート

この記事は実際にインストールした時に書いたので、まだアップデートは試していない。

Created: 2025-10-13 Mon 13:20