fu7mu4’s diary

はてなダイアリーから移転しました。

asdf2の設定ファイルのメモ

quicklispで 小さいプロジェクトを作成してみようとすると、ASDF2で asdファイルを検索するサーチパスを設定する必要があるらしい。そうなの?

~/quicklisp/local-project/でもいいんじゃないのと思うが、ここにしか置けないのは不自由だし、Zach BeaneがMaking a small Lisp project with quickproject and Quicklispそう書いているので従っておく。

では、ASDF2 の設定ファイルはというと、ASDFマニュアル4.1章 によると、設定ファイルをおくフォルダがこんなに深いところにあって、そこにconfという拡張子のファイルをおくらしい。この方法だと複数ファイルに分割しておける。
~/.config/common-lisp/source-registry.conf.d/

treeで指定すると指定フォルダ以下にある、asdファイル全て(再帰的)が指定になり、
directoryで指定すると、指定フォルダ内のasdファイルだけが指定できる(非再帰的)。

これは、~/lisp/以下全てをサーチパスに追加する設定

(:tree (:home "lisp" ))

こっちは ~/lisp/foo/だけつまり、fooプロジェクトだけサーチパスに追加する設定

(:directory (:home "lisp/foo/" ))

設定ファイルを書いたら、次に検索したときに自動的に反映されるとある。
すぐに設定したいときは、lispインタプリタから下を実行して登録する。

(asdf:INITIALIZE-SOURCE-REGISTRY)

これで、指定フォルダに置いた asdf が quickload で検索できるようになる。

リセットしたい場合は次になる。

(asdf:clear-source-registry)

ちなみに、デフォルトで、~/common-lisp/ が指定されているんだってさ。もうそれでいいんじゃないの?と思った。

詳しくは ASDFマニュアル8章を参照のこと。