У меня есть вопрос о Clozure CL.
Пока я пытался быстро загрузить пакет из quicklisp.
Выкидывает ошибку. Погуглил, но ничего полезного не нашел.
Вот сообщение об ошибке:
(ql:quickload :drakma)
To load "drakma":
Load 1 ASDF system:
drakma
; Loading "drakma"
..
Read error between positions 6342 and 6532 in /Users/Mac/quicklisp/dists/quicklisp/software/cl+ssl-20111105-git/streams.lisp.
> Error: Foreign variable "O_NONBLOCK" not found
> While executing: CCL::%LOAD-VAR, in process Listener(6).
Заранее спасибо
Я спросил в списке рассылки:
ответ из списка рассылки:
Если вы переместите или переименуете каталог «darwin-x86-headers» (или иным образом
попробуйте смоделировать незавершенную установку):
[src/ccl-dev] gb@antinomial> mv darwin-x86-headers64 darwin-x86-headers64X
, затем запустите CCL и попытайтесь получить доступ к чему-либо (O_NONBLOCK), определенному в
файлы интерфейса в этом каталоге:
[src/ccl-dev] gb@antinomial> ccl64<br>
Welcome to Clozure Common Lisp Version 1.8-dev-r15225M-trunk (DarwinX8664)!<br>
? #$O_NONBLOCK
вы получаете предупреждение или два об отсутствующих файлах интерфейса
; Warning: Interface file #P"/usr/local/src/ccl-dev/darwin-x86-headers64/libc/constants.cdb" does not exist, and the containing directory does not exist.
; This may mean that that the "ccl:" logical-pathname host has not been properly initialized. ; While executing: CDB-OPEN, in process listener(1).
; Warning: Interface file #P"/usr/local/src/ccl-dev/darwin-x86-headers64/libc/vars.cdb" does not exist, and the containing directory does not exist.
; This may mean that that the "ccl:" logical-pathname host has not been properly initialized.
до получения той же ошибки, о которой вы сообщили.
Если вы используете Quicklisp для загрузки некоторого кода, который пытается найти значение этой константы
в (отсутствующих) файлах базы данных вы не видите этого предупреждения.
С другой стороны, вы видите точечные символы, напечатанные при использовании
Quicklisp. (Иногда их много!)
Я не претендую на то, чтобы быть частью целевой аудитории Quicklisp, но у меня был голос
Я думаю, что проголосовал бы за возможность видеть сообщения о прогрессе и диагностику
(даже если это означало видеть меньше точек и даже - особенно - если диагностика
указать проблемы с установкой, как они, кажется, в этом случае.)
Чтобы прекратить гореть и попытаться ответить на оригинальный вопрос, если интерфейс каталога
перемещается обратно туда, где его ожидает CCL, затем:
? #$O_NONBLOCK
4
все работает как положено. (Если бы они не сделали, было бы невозможно скомпилировать
Сам CCL или для компиляции большого количества другого кода, который использует макросы читателя FFI.)
Это означает, что я предпочитаю, что CCL не установлен правильно на вашем
система. Я не знаю это с абсолютной уверенностью, и у меня нет никакого способа
знать, как он установлен в вашей системе, но я верю, что если он установлен
способ, которым руководство и веб-сайт предлагают подобные проблемы, избегают.