То, что вы ищете, называется системы .Common Lisp's defpackage
не имеет к этому никакого отношения, и да, речь идет о пространствах имен.Взгляните на HyperSpec или руководство идиота (см. Комментарий Xach'а ниже), чтобы узнать больше об этом.но обычно используется средство определения системы;в основном ASDF в настоящее время.Минимальный пример:
(defsystem my-system
:name "my-system"
:version "0.0.1"
:author "myself"
:license "LLGPL"
:description "it's a system."
:serial t
:components ((:file "packages")
(:file "stuff")
(:file "more_stuff")))
Где packages.lisp будет содержать определение пакета, вещи и more_stuff - это файлы lisp или fasl, которые нужно загрузить.Это системное определение (обычно называемое filename.asd) должно быть символической ссылкой (или расположено в) каталоге, содержащемся в asdf:*central-registry*
, чтобы ASDF мог найти вашу систему.Затем вы можете загрузить систему следующим образом:
(asdf:oos 'asdf:load-op 'my-system)
Альтернатива этому была добавлена в более поздних версиях ASDF:
(asdf:load-system 'my-system)
Или, при использовании слизи, нажав ,l my-system RET
.