[Openmcl-devel] Clozure CL Foreign variable “O_NONBLOCK” not found

Gary Byers gb at clozure.com
Sun Feb 26 07:30:09 UTC 2012


If you move or rename the "darwin-x86-headers" directory (or otherwise
try to simulate an incomplete installation):

[src/ccl-dev] gb at antinomial> mv darwin-x86-headers64 darwin-x86-headers64X

and then run CCL and try to access something (O_NONBLOCK) defined in the
interface files in that directory:

[src/ccl-dev] gb at antinomial> ccl64
Welcome to Clozure Common Lisp Version 1.8-dev-r15225M-trunk  (DarwinX8664)!
? #$O_NONBLOCK

you get a warning or two about the missing interface files

; 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.

before getting the same error that you reported.

If you use Quicklisp to load some code that tries to lookup that constant's value
in (missing) database files, you don't see that warning.

On the other hand, you do see dot characters printed when using
Quicklisp.  (Sometimes lots of them !)

I don't claim to be part of Quicklisp's target audience, but I had a vote
I think I'd vote for being able to see progress messages and diagnostics
(even if that meant seeing fewer dots and even - especially - if the diagnostics
indicate an installation problem, as they seem to in this case.)


To stop flaming and try to address the original question, if the interface directory
is moved back to where CCL expects it to be, then:

? #$O_NONBLOCK
4

things work as expected.  (If they didn't, it wouldn't be possible to compile
CCL itself or to compile lots of other code that uses the FFI's reader macros.)
That means that my best guess is that CCL isn't installed correctly on your
system.  I don't know that with absolute certainty and I don't have any way
of knowing how it's installed on your system, but I believe that if it's installed
the way that the manual and website suggest problems like this are avoided.

On Sun, 26 Feb 2012, Juanito Fatas Huang wrote:

> I have a question about Clozure CL.
> While I was trying to quickload a package from quicklisp.
> It throws out an error. I am running :
> 
> ? (lisp-implementation-version)
> "Version 1.7-r14925M (DarwinX8664)"
> 
> and Here is the error message:
> ?
> ? ? (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.l
> isp.
> ? ? > Error: Foreign variable "O_NONBLOCK" not found
> ? ? > While executing: CCL::%LOAD-VAR, in process Listener(6).
> 
> 
> Thank you in advance!!
> 
> 
> 
> --?Juanito
> 
> 
>



More information about the Openmcl-devel mailing list