2011-02-28 84 views
1

目标:安装Hunchentoot并能够将Hunchentoot作为后台线程运行。在Mac,Windows和Linux上使用CFFI和线程支持的Common Lisp实现?

这是我做的:

  1. 安装Common Lisp的。
  2. 安装Quicklisp。
  3. (ql:quickload "hunchentoot")
  4. (hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4242))

最后的命令应该启动Hunchentoot,然后返回到解释作进一步的Common Lisp形式。

对于CLISP,SBCL,ABCL,ECL和CCL,我得到两个结果之一:

  • Hunchentoot的依赖波尔多线程无法安装。
  • hunchentoot:start挂起。该网页永远不会加载,并且永远不会404s。
+1

两个Quicklisp和Hunchentoot有邮件列表,这将是第一个地址的支持。 – 2011-02-28 08:32:28

回答

1

Lispbox提供CCL,CFFI,线程,Emacs和泥的工作副本。 Quicklisp和Hunchentoot运作良好。没有一个安装程序还没有,但混账东西工程:)

1

AFAIK CLISP和SBCL的win32实现不支持多线程,而Hunchentoot依赖于此功能(依赖于Bordeaux线程)。 Hunchentoot在Clozure Common Lisp中运行良好。

1

LispWorks是在其Hunchentoot设计平台,并适用于所有三种操作系统。

0

无论操作系统,如果这SBCL返回nil,你需要使线程:

(find :sb-thread *features*) 

启用线程:使用预编译SBCL,从源代码编译最新版本,但请注意INSTALL关于启用线程的说明。您将创建一个名为“customize-target-features.lisp”的文件,以包含说明中给出的lambda表达式。 (提示:从'屏幕'内部编译分离,重定向到日志文件或类似的,因为终端窗口可能变成I/O界限并且实际上减慢了编译。)

针对Linux预先编译的SBCL启用了线程,但为MacOSX预编译,FreeBSD和Windows没有启用线程。这可能会随着未来的版本而变化

我已经确认在MacOSX 10.6.6/x86-64上使用当前版本的SBCL(编译为启用线程)和QuickLisp,您应该将“Hunchentoot Default Page”与“Hunchentoot 1.1.1(SBCL 1.0.46)在localhost:4242“时访问http://localhost:4242/