Я действительно хочу иметь возможность сделать исполняемый файл, который можно было бы раздавать людям без объяснения, как установить sbcl и (затем) запустить его.
Вам не нужноASDF для создания «автономного» исполняемого файла.Большинство реализаций предоставляют средства для сохранения исполняемого образа, но как это сделать (и нужно ли вообще его предоставлять) не упоминается в стандарте.
Как правило, вы загружаете свой код в работающийimage и затем «сбросьте» это изображение.
Например, в SBCL вы должны использовать sb-ext: save-lisp-and-die ;CCL имеет ccl: save-application .Вам нужно будет заглянуть в документацию вашей реализации, чтобы узнать, как это сделать.
У меня сейчас нет SBCL, но этот минимальный пример должен работать (не проверено):
(defun do-it () (format t "hello world~%"))
(sb-ext:save-lisp-and-die "hello" :toplevel #'do-it :executable t)
Это рабочий пример с использованием CCL:
Welcome to Clozure Common Lisp Version 1.6-dev-r14287M-trunk (LinuxX8632)!
? (defun do-it () (format t "hello world~%"))
DO-IT
? (ccl:save-application "hello" :toplevel-function #'do-it :prepend-kernel t)
[danlei@susi ~/build/ccl]% ./hello
hello world
Эти исполняемые образы могут быть довольно большого размера, если ваша реализация не предоставляет что-то вроде шейкера, но я не думаю, что этодолжно быть проблемой в наше время.
Подробный пример clisp можно найти в другом SO вопросе по этой теме .
Документация ASDF