【问题标题】:Common Lisp implementation with CFFI and thread support on Mac, Windows, and Linux?在 Mac、Windows 和 Linux 上具有 CFFI 和线程支持的 Common Lisp 实现?
【发布时间】:2011-02-28 07:12:40
【问题描述】:

目标:安装 Hunchentoot 并能够将 Hunchentoot 作为后台线程运行。

这就是我的工作:

  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 的依赖 Bordeaux Threads 安装失败。
  • hunchentoot:start 挂起。网页永远不会加载,也永远不会出现 404。

【问题讨论】:

  • Quicklisp 和 Hunchentoot 都有邮件列表,这是获得支持的第一个地址。

标签: multithreading common-lisp hunchentoot


【解决方案1】:

AFAIK CLISP 和 SBCL 的 win32 实现不支持多线程,而 Hunchentoot 依赖于此功能(依赖于波尔多线程)。 Hunchentoot 与 Clozure Common Lisp 配合得很好。

【讨论】:

    【解决方案2】:

    LispWorks 是 Hunchentoot 的设计平台,可在所有三种操作系统上使用。

    【讨论】:

      【解决方案3】:

      Lispbox 提供 CCL、CFFI、线程、Emacs 和 SLIME 的工作副本。 Quicklisp 和 Hunchentoot 运行良好。还没有安装程序,但该死的东西可以工作:)

      【讨论】:

        【解决方案4】:

        无论操作系统如何,如果这在 SBCL 中返回 nil,则需要启用线程:

        (find :sb-thread *features*)
        

        启用线程:使用预编译的 SBCL,从源代码编译最新版本,但请注意启用线程的安装说明。您将创建一个名为“customize-target-features.lisp”的文件以包含说明中给出的 lambda 表达式。 (提示:从分离的“屏幕”内编译,重定向到日志文件或类似文件,因为终端窗口可能会受到 i/o 限制,实际上会减慢编译速度。)

        为 Linux 预编译的 SBCL 已启用线程,但为 MacOSX、FreeBSD 和 Windows 预编译的未启用线程。这可能会随着未来的版本而改变。

        我已经确认在 MacOSX 10.6.6/x86-64 上使用当前版本的 SBCL(编译为启用线程)和 QuickLisp,您应该获得带有“Hunchentoot 1.1.1 (SBCL 1.0) 的“Hunchentoot 默认页面” .46) 在 localhost:4242" 访问 http://localhost:4242/。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-18
          • 2023-03-23
          • 1970-01-01
          • 2016-06-20
          相关资源
          最近更新 更多