Я разработал некоторые функции Common Lisp в нескольких исходных файлах Lisp, которые я хотел бы легко сделать доступными для других функций, которые я пишу, или сделать доступными на github, если я думаю, что они будут полезны для кого-то еще. На данный момент я просто помещаю их в какую-то заранее определенную папку и использую (require "/path/to/my/modules/module.lisp")
.
Я хочу понять, каков правильный (канонический) способ определения библиотеки модулей Lisp. И вторая часть вопроса - как их использовать (определил ли я их или получил ли я их от кого-то другого).
Я много читал о defpackage
, defsystem
и asdf
. Но все, что я прочитал, похоже, сосредоточено на каком-то конкретном уголке вселенной этой задачи. Мне сложно увидеть общую картину создания, развертывания и использования настраиваемых модулей. Итак, если у меня есть среда Lisp (CLISP или SBCL) и один или несколько файлов .lisp
, из которых я хотел бы создать пакет или библиотеку, есть ли где-нибудь документ, объясняющий, какие шаги необходимы для этого? Вероятно, это то, что я уже читал, но не отслеживал из-за непонимания контекста. То, что я читал об ASDF, похоже, функционально является тем, что мне нужно, но я не понимаю, является ли ASDF моим единственным вариантом или это просто стандарт де-факто и то, что использует большинство других людей, или что-то еще. Я немного поигрался с ним в SBCL и не был уверен, что использую его правильно, и не видел информации о том, как настроить его в CLISP. Итак, я хочу понять, каков ванильный подход к этой задаче.
Я знаю, что это большой и небрежный набор подвопросов. Опять же, если есть хорошие ссылки, я могу их прочитать. У меня просто возникают проблемы с получением общей картины того, как это должно работать, и есть ли какой-нибудь «лучший» подход, или в Lisp это что-то вроде «Дикого Запада», выбирающего библиотеку. -Менеджер-тебе нравится подход. Я использовал Google и читал все, что казалось актуальным, но мой мозг крутится от всего этого.
Спасибо.