Liam Healy ([info]lhealy) wrote,
@ 2006-12-01 13:50:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:debian, lisp

OpenMCL for Debian/amd64
I have heard a lot of good things about OpenMCL over the years, so I was pleased to see the announcement that it is available for Debian/amd64 and gave it a try. This was an easy (Debian-integrated) install and OpenMCL started and did basic things from the shell. However, I got snagged on running SLIME:


Welcome to OpenMCL Version 1.1-pre-061110 (LinuxX8664)!
? ;Loading #P"/usr2/people/healy/emacs/external/slime/swank-loader.lisp"...
;Compiling "/usr2/people/healy/emacs/external/slime/swank-backend.lisp"...
;Loading #P"/usr2/people/healy/.slime/fasl/2006-11-15/openmcl-1.1-unix-x86-64/swank-backend.lx64fsl"...
;Compiling "/usr2/people/healy/emacs/external/slime/nregex.lisp"...
;Loading #P"/usr2/people/healy/.slime/fasl/2006-11-15/openmcl-1.1-unix-x86-64/nregex.lx64fsl"...
;Compiling "/usr2/people/healy/emacs/external/slime/metering.lisp"...
;Loading #P"/usr2/people/healy/.slime/fasl/2006-11-15/openmcl-1.1-unix-x86-64/metering.lx64fsl"...
;Compiling "/usr2/people/healy/emacs/external/slime/swank-openmcl.lisp"...
; Warning: Interface file #P"ccl:x86-headers64;libc;functions.cdb" does not exist.
; While executing: CCL::CDB-OPEN, in process listener(2).
Read error between positions 10394 and 10509 in /usr2/people/healy/emacs/external/slime/swank-openmcl.lisp.
;; Error while loading: /usr2/people/healy/.slime/fasl/2006-11-15/openmcl-1.1-unix-x86-64/swank-openmcl.lx64fsl
;; Condition: Foreign function not found: X86-LINUX64::|tmpnam|
;; Aborting.




(Post a new comment)


(Anonymous)
2006-12-03 11:08 pm UTC (link)
I'm not sure how the Debian package is set up, but in general ...

It should be packaged with a shell script named "openmcl64"; the setting of the environment variable "CCL_DEFAULT_DIRECTORY" should match the filesystem location of a directory named "ccl", there should be a subdirectory of "ccl" named "ccl/x86-headers64/libc/" which contains a number of files with the extension "cdb", and you need to tell SLIME that its "inferior-lisp-program" is "openmcl64".

(From the above,it looks like either the distribution is incomplete, the shell script doesn't set CCL_DEFAULT_DIRECTORY correctly, or SLIME is bypassing the shell script and trying to invoke the lisp kernel directly, without properly telling the lisp where it and the foreign interface definitions are installed.)

Documentation on OpenMCL (still somewhat PPC-centric, unfortunately) and other OpenMCL-related resources are available at http://openmcl.clozure.com.

Gary Byers
gb "at" clozure.com

(Reply to this) (Thread)


[info]lhealy
2006-12-04 07:22 pm UTC (link)
I guess that's the answer
dpkg -L openmcl | grep -i openmcl64
returns nothing, so the script wasn't included. There also is no ccl directory and no cdb files. It's odd though that it's possible to run non-slime things fine. I'm not sure who to report this too; I gather this an unofficial deb so I'll just wait.

(Reply to this) (Parent)(Thread)


(Anonymous)
2006-12-04 09:59 pm UTC (link)
Thanks.

The (missing) .cdb files contain foreign functon/constant/structure/type definitions; when SLIME tries to compile itself, it tries to call the C library "tmpnam" foreign function, and the warnings/errors you got indicated that the .cdb files were missing and/or the lisp was looking for them in the wrong place. (Apparently, both in this case.) The FFI stuff mostly isn't needed at runtime, so if you could get SLIME to compile you'd probably find that things work OK.

I'll talk to the author of the Debian package (the one that I'm aware of is at http://www.eurogaran.com/downloads/lisp/) and try to persuade them to include the missing pieces. In the meantime, tarballs (containing sources, binaries, release notes, etc) are available at ftp://clozure.com/pub/testing.

(Reply to this) (Parent)(Thread)

fixed
(Anonymous)
2008-05-06 07:42 am UTC (link)
The deb package now contains the missing files. None had told me before about this. Please confirm if it compiles with slime.

(Reply to this) (Parent)(Thread)

Broken
[info]lhealy
2008-07-19 08:01 pm UTC (link)
Sadly, this is now worse than before -- won't even install on Debian stable. I noticed there was a new version and tried this in February; I should have posted something then.
I suspect it's a minor script issue, but I don't know how to fix it.

dpkg -i openmcl_070722_amd64.deb
Selecting previously deselected package openmcl.
(Reading database ... 190469 files and directories currently installed.)
Unpacking openmcl (from openmcl_070722_amd64.deb) ...
Setting up openmcl (070722) ...
rm: cannot remove `/usr/lib/openmcl/*clean': No such file or directory
dpkg: error processing openmcl (--install):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
openmcl

(Reply to this) (Parent)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…