Я работаю над веб-приложением, используя Hunchentoot (на SBCL и Linux), и обычно я просто запускаю его из Emacs (SLIME), но для развертывания мне нужно что-то, что легче автоматизировать. Так что я пытаюсь понять ASDF, потому что, кажется, это то, что все используют в наши дни.
myapp.asd:
(in-package #:asdf)
(defsystem :myapp
:name "my app"
:depends-on ("hunchentoot")
:components ((:file "package")
(:file "server" :depends-on ("package"))))
пакет.lisp:
(defpackage myapp
(:use :cl))
сервер.лисп:
(setq hunchentoot:*dispatch-table*
(list (hunchentoot:create-static-file-dispatcher-and-handler "/foo" "foo")))
(hunchentoot:start-server :port 8705)
Если я попытаюсь загрузить его вручную:
$ sbcl
* (require 'asdf)
* (asdf:operate 'asdf:load-op 'myapp)
он загружает и компилирует целую кучу функций, но затем просто останавливается. Hunchentoot не запущен, и приглашение не принимает ввод. Я не знаю, в каком состоянии, по его мнению, он находится: последние напечатанные строки:
STYLE-WARNING: Implicitly creating new generic function STRINGIFY-COOKIE.
STYLE-WARNING: Implicitly creating new generic function DISPATCH-REQUEST.
STYLE-WARNING: Implicitly creating new generic function WRITE-HEADER-LINE.
Есть ли способ заставить это работать? (Признаюсь: я действительно не очень хорошо понимаю пакеты ASDF или Common Lisp, несмотря на многочасовое чтение о них.)