Обычная реализация Lisp с CFFI и поддержкой потоков на Mac, Windows и Linux? - PullRequest
1 голос
/ 28 февраля 2011

Цель: установить 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.

Ответы [ 4 ]

1 голос
/ 28 февраля 2011

LispWorks - это платформа, на которой был разработан Hunchentoot, и она доступна во всех трех операционных системах.

1 голос
/ 01 марта 2011

Lispbox предлагает рабочую копию CCL, CFFI, потоков, Emacs и SLIME. Quicklisp и Hunchentoot работают хорошо. Установщика пока нет, но чертовски хорошо работает:)

1 голос
/ 28 февраля 2011

AFAIK реализации win32 CLISP и SBCL не поддерживают несколько потоков, тогда как Hunchentoot зависит от этой функции (зависимость от потоков Бордо).Hunchentoot хорошо работает с Clozure Common Lisp.

0 голосов
/ 03 марта 2011

Независимо от ОС, если в SBCL возвращается ноль, вам нужно включить потоки:

(find :sb-thread *features*)

Включить потоки: Используя предварительно скомпилированный SBCL, скомпилируйте последнюю версию из источника, но обратите внимание на инструкции INSTALL по включению потоков. Вы создадите файл с именем «customize-target-features.lisp», который будет содержать лямбда-выражение, приведенное в инструкциях. (Совет: откомпилируйте изнутри «экран» отдельно, перенаправьте в файл журнала или тому подобное, так как окно терминала может стать связанным с вводом / выводом и фактически замедлить компиляцию.)

SBCL, предварительно скомпилированный для Linux, имеет включенные потоки, но предварительно скомпилированный для MacOSX, FreeBSD и Windows без включенных потоков. Это может измениться в будущих выпусках.

Я подтвердил, что используя текущие версии SBCL (скомпилированные для включения потоков) и QuickLisp на MacOSX 10.6.6 / x86-64, вы должны получить «Страницу по умолчанию Hunchentoot» с «Hunchentoot 1.1.1 (SBCL 1.0»). .46) на локальном хосте: 4242 "при посещении http://localhost:4242/.

...