Long story short, packages are bags of symbols and systems describe relationships between files and other systems.
So, using your structure here is a simple system definition:
(asdf:defsystem #:spam-filter
:serial t
:description "Simple Spam Filter"
:author "PCL"
:depends-on (#:cl-ppcre
#:com.gigamonkeys.pathnames)
:components ((:file "package")
(:file "spam")))
Now, I'll suppose the system com.gigamonkeys.pathnames
is in
~/src/lisp/com/gigamonkeys/pathnames/
and the spam filter in
~/src/lisp/spam-filter/
.
- M-x
slime
RET - ,cd~/src/lisp/com/gigamonkeys/pathnamesRET
(push (truename ".") asdf:*central-registry*)
- ,cd~/src/lisp/spam-filterRET
(push (truename ".") asdf:*central-registry*)
(ql:quickload :spam-filter)
Because Quicklisp relies on ASDF to load systems, you've to add the systems directories in ASDF search-path.
You could also put your systems in Quicklisp's search path by adding
them in ~/quicklisp/local-projects/
. You can either store your code
there or use symbolic links.
PS: You can find
here
a slime-shortcut that allows me to write ,addRET
instead of (push (truename ".") asdf:*central-registry*)
.
And just below another slime-shortcut to quickload a system.
(,qlsome-system-name
RET)