なんだこれは

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

lisp の プロジェクト生成の quickproject と cl-project のメモ

quicklisp でインストールできる、プロジェクト生成支援に quickproject と cl-project があったので試してみた。

quickprojct は、簡易プロジェクト用、 cl-project はテストもある豪華版みたい。
実際に利用する手順はほぼ同じみたい。

quickproject

;;;; quickprojectのインストール
(ql:quickload :quiclproject)
;;;; プロジェクトのスケルトン生成
(quickproject:make-project "~/lisp/df-mon/" :depends-on '(:cl-ppcre :csv-parser) )
;->"df-mon"

これで生成されるのは、README.txtとdf-mon.asd, df-mon.lisp, package.lisp の3つだけ。
このパスは asdfのパスに自動的に追加されるらしいので、そのままquicklispでロードできるはず。

cl-project

;;;; cl-prooject のインストール
(ql:quickload :cl-project)

;;;; プロジェクトのスケルトン生成 #"~/lisp/" 以下はasdfのパスに含まれている。 
(cl-project:make-project "~/lisp/diff-mon/"  :depends-on '(:cl-ppcre :csv-parser) )
writing /Users/fu7mu4/lisp/diff-mon/.gitignore
writing /Users/fu7mu4/lisp/diff-mon/README.markdown
writing /Users/fu7mu4/lisp/diff-mon/README.org
writing /Users/fu7mu4/lisp/diff-mon/diff-mon-test.asd
writing /Users/fu7mu4/lisp/diff-mon/diff-mon.asd
writing /Users/fu7mu4/lisp/diff-mon/src/diff-mon.lisp
writing /Users/fu7mu4/lisp/diff-mon/t/diff-mon.lisp
;->#P"/Users/fu7mu4/lisp/diff-mon/diff-mon-test.asd"

;;;; プロジェクトのロード
 (ql:quickload :diff-mon)
To load "diff-mon":
  Load 1 ASDF system:
    diff-mon
; Loading "diff-mon"
[package diff-mon]
;->(:DIFF-MON)

cl-project は プロジェクトのフォルダに asd ファイルを生成してくれるが、 このパスを asdf のロードパスに追加したりしない。あらかじめ、lispasdfのロードパスに含まれるフォルダを指定するのがいいのだろう。

また、tというテスト用のフォルダも作成してくれる。
この テストは prove (旧称 cl-test-more) を利用している。