Я думаю, что немного сложно сказать, что вы действительно просите.
Вы можете скомпилировать и загрузить весь файл Lisp в Slime, используя C-c C-k
в буфереи затем используйте его из REPL-слизи, чтобы вам даже не нужно было запускать LOAD
в REPL.
Затем существуют решения для линий shebang, известные из модулей, которые будут работать в ОС.Оболочка X, если вы хотите запускать свои программы на Лиспе как сценарии из командной строки, но они отличаются от реализации к реализации.
Возможность загрузки исполняемых файлов, которые затем можно запускать из командной строки, загружаетсясоответствующий код в ваше изображение Lisp, затем сохраните это изображение с загруженным кодом.Эти образы можно сделать исполняемыми, выполняя данную функцию при запуске (подумайте main
).Эта возможность также отличается для реализаций, поэтому, не упоминая о выбранной вами реализации, вам придется искать ее в документации.
Теперь, так как вы спрашиваете конкретно о «создании более крупных проектов», мой совет будетпознакомиться с системой определения средств.Система LISP - это своего рода «проект», несколько файлов с кодом, определениями пакетов и определением системы.Я приведу небольшой пример для ASDF , который (насколько я могу судить) является самым популярным в мире открытого исходного кода.
(defsystem my-system
:name "my-system"
:version "0.0.1"
:author "hedgehogrider"
:license "BSD"
:description "bla bla bla"
:serial t
:components ((:file "packages")
(:file "code")))
Теперь вы бы поставилиэто в файле asd
, скажем my-system.asd
, поместите определения вашего пакета в packages.lisp
, ваши функции в code.lisp
, а затем, если вы правильно настроите ASDF, вы сможете скомпилировать и загрузить свою систему вREPL слизи, нажав ,l my-system
.В качестве альтернативы, вы можете ввести (asdf:oos 'load-op 'my-system)
(или, для более поздних версий ASDF: (asdf:load-system 'my-system)
) в REPL.
Для того, чтобы это работало, вам придется установить ASDF для вашей реализации на Лиспе,если он не поставляется вместе с ним, и каталог, содержащий ваши asdf
-файлы, должен быть помещен в asdf:*central-registry*
.Одним из простых решений является символическая ссылка ваших asdf
-файлов на один центральный каталог, но есть и другие возможности.Обратитесь к документации ASDF или другим учебникам , чтобы узнать больше об ASDF.