我正在使用Hunchentoot(在SBCL和Linux上)开发Web应用程序,通常我只是从Emacs(SLIME)运行它,但是对于部署我想要更容易自动化的东西.所以我想弄清楚ASDF,因为这似乎是每个人现在都在使用的东西.
myapp.asd:
(in-package #:asdf) (defsystem :myapp :name "my app" :depends-on ("hunchentoot") :components ((:file "package") (:file "server" :depends-on ("package"))))
package.lisp:
(defpackage myapp (:use :cl))
server.lisp:
(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包,尽管有很多时间阅读它们.)