2018年6月15日金曜日

cl-project

 「~/.roswell/」の下をつらつら見ていると、「local-projects」というフォルダがあった。二カ所。

~/.roswell/local-projects/
~/.roswell/lisp/quicklisp/local-projects/

 ああ、ここの下に自分がつくりたいプログラムをいれておけば、いいんだな、と見当をつけてとりあえず、「cl-project」でprojectを作成した。

CL-USER> (cl-project:make-project #p"~/.roswell/local-projects/keiba/"
  :author 名前
  :email メールアドレス
  :license ライセンス
  :depends-on '(:cl-dbi :cl-ppcre))
writing ~/.roswell/local-projects/keiba/keiba.asd
writing ~/.roswell/local-projects/keiba/keiba-test.asd
writing ~/.roswell/local-projects/keiba/README.org
writing ~/.roswell/local-projects/keiba/README.markdown
writing ~/.roswell/local-projects/keiba/.gitignore
writing ~/.roswell/local-projects/keiba/src/keiba.lisp
writing ~/.roswell/local-projects/keiba/t/keiba.lisp
T

 (asdf:load-system :keiba)でsystemをロードすると、cl-dbiもロードされる模様。ふむ。なるほど。

CL-USER> (asdf:load-system :keiba)

; compiling file "/Users/yamada/.roswell/local-projects/keiba/src/keiba.lisp" (written 10 JUN 2018 09:29:31 AM):
; compiling (IN-PACKAGE :CL-USER)
; compiling (DEFPACKAGE KEIBA ...)
; compiling (IN-PACKAGE :KEIBA)

; /Users/yamada/.cache/common-lisp/sbcl-1.3.11-macosx-x64/Users/yamada/.roswell/local-projects/keiba/src/keiba-TMP.fasl written
; compilation finished in 0:00:00.005
T

 (ros::load-system "keiba")でも同じみたいだ。
 わからないのは

CL-USER> asdf:*central-registry*
(#P"/Users/yamada/.roswell/lisp/quicklisp/quicklisp/")

 なのに、#p"~/.roswell/local-projects/keiba/"をasdfが認識していること。qlが下記のようになっているのでRoswellはわからなくもないけど。

CL-USER> ql:*local-project-directories*
(#P"/Users/yamada/.roswell/local-projects/"
 #P"/Users/yamada/.roswell/lisp/quicklisp/local-projects/")

 不思議。