Peter Seibel の本Practical Common Lispを読んでいるときに、Emacs の SLIME および quicklisp と組み合わせて Common Lisp パッケージ システムを処理する方法を理解するのに苦労しました。彼が提供するプロジェクトの構造は次のとおりです。
spam.lisp
は、他の 2 つのパッケージにcom.gigamonkeys.spam
依存しています。cl-ppcre
com.gigamonkeys.pathnames
pathnames.lisp
パッケージにcom.gigamonkeys.pathnames
spam.asd
、com.gigamonkeys.spam
パッケージの依存関係を説明しますpathnames.asd
、com.gigamonkeys.pathnames
パッケージの依存関係を説明します
最終的なターゲットである spam.lisp をビルドするために私が現在見つけた唯一の方法は、次のとおりです。
pathnames.asd
SLIME を使用してファイルをコンパイルおよびロードします (C-x C-k
)- REPL で
com.gigamonkeys.pathname
入力してパッケージをロードします(asdf:operate 'asdf:load-op 'spam)
- REPL で
cl-ppcre
入力してパッケージをロードします(ql:quickload "cl-ppcre")
spam.asd
SLIME を使用してファイルをコンパイルおよびロードする- REPL で
com.gigamonkeys.spam
入力してパッケージをロードします(asdf:operate 'asdf:load-op 'spam)
これは、単一のファイル ( ) で定義された関数を使用するために必要な非常に多くの作業のように思えますspam.lisp
。何か間違ったことをしているに違いありません。spam.lisp
より少ないコマンドで、再帰的にその依存関係をロードする方法はありますか?