[Openmcl-devel] slime troubles

Gary Byers gb at clozure.com
Tue Mar 22 01:22:45 PST 2005

On Tue, 22 Mar 2005, Boris Tschirschwitz wrote:

> Hey.
> I am trying to get slime working with openmcl, but emacs/openmcl's answer to
> M-x slime keeps being:
> (load "/Users/boristschirschwitz/builds/slime/swank-loader.lisp" :verbose t)
> (swank:start-server "/tmp/slime.638" :external-format :iso-latin-1-unix)
> Welcome to OpenMCL Version (Beta: Darwin) 0.14.3!
> ? ;Loading #P"/Users/boristschirschwitz/builds/slime/swank-loader.lisp"...
> ;Loading
> #P"/Users/boristschirschwitz/.slime/fasl/openmcl-0.14-darwin-powerpc/swank-backend.dfsl"...
> ;Loading
> #P"/Users/boristschirschwitz/.slime/fasl/openmcl-0.14-darwin-powerpc/nregex.dfsl"...
> ;Loading
> #P"/Users/boristschirschwitz/.slime/fasl/openmcl-0.14-darwin-powerpc/metering.dfsl"...
> ;Compiling "/Users/boristschirschwitz/builds/slime/swank-openmcl.lisp"...
> ;Compiler warnings for
> "/Users/boristschirschwitz/builds/slime/swank-openmcl.lisp" :
> ;   Unused lexical variable STREAM, in (MAKE-STREAM-INTERACTIVE (T)).
> ; Warning: Interface file #P"ccl:darwin-headers;libc;functions.cdb" does
> not exist.
> ; While executing: CCL::CDB-OPEN
> Read error between positions 8480 and 8595 in
> /Users/boristschirschwitz/builds/slime/swank-openmcl.lisp.
>  > Error in process listener(1): Foreign function not found: OS::|tmpnam|
>  > While executing: CCL::LOAD-EXTERNAL-FUNCTION
>  > Type :POP to abort.
> Type :? for other options.
> 1 >
> Now, I did succeed in googling for this problem, apparently I have to do
> something about the interface database.
> I also RTFM, but the full archive is supposed to contain the database.
> After downloading and installing the database the error persists.
> After building from CVS the error still persists.
> Could it still be me being stupid?
> Boris.
> PS: It's the up-tp-date CVS slime

The interface database files are in the archive (I confess: I checked.)

The reason that the files can't be found has to do with how the "CCL:"
logical host is set up; pathnames relative to that logical host (like
#P"ccl:darwin-headers;libc;functions.cdb") need to resolve to physical
pathnames (like #P"/path/to/ccl/darwin-headers/libc/functions.cdb").

If the environment variable "CCL_DEFAULT_DIRECTORY" is set when OpenMCL
start up, a function that runs during initialization uses that variable's
value to fill in the "/path/to/ccl" part of those pathname translations.
If the variable's not set, the "/path/to/ccl" part gets set to the
current directory.

<http://openmcl.clozure.com/Doc/ch01s03.html> explains how to edit the
"openmcl" shell script so that CCL_DEFAULT_DIRECTORY is set correctly.
(The default value - "/usr/local/src/ccl" - happens to be where I
usually keep the "ccl" hierarchy and therefore seems entirely
reasonable to me; if you installed OpenMCL somewhere else, it probably
doesn't seem so reasonable.  Change it!)

TFM does mention this issue, but it's apparently unintuitive enough
that people miss it and/or find it confusing.

More information about the Openmcl-devel mailing list