| Liam Healy ( @ 2008-09-30 16:48:00 |
| Entry tags: | debian, lisp |
Clozure CL on Debian
A while back, I mentioned trying OpenMCL for Debian. OpenMCL is now Clozure CL (CCL), and version 1.2 for MacOSX and Linux (PPC and amd64) was recently announced. I gave it another try and the experience is much better, though it needs Debianization.
The Debian Common Lisp Team has produced a Common Lisp in Debian manual, so I followed that to Debianize CCL. As root,
> lx86cl64 Welcome to Clozure Common Lisp Version 1.2-r10552 (LinuxX8664)! ? (load "/usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp") ? (common-lisp-controller:compile-common-lisp-controller-v5 "ccl") (#P"/var/cache/common-lisp-controller/0/ccl/common-lisp-controller/common-lisp-controller.lx64fsl" #P"/var/cache/common-lisp-controller/0/ccl/cl-asdf/asdf.lx64fsl" #P"/var/cache/common-lisp-controller/0/ccl/cl-asdf/wild-modules.lx64fsl" #P"/var/cache/common-lisp-controller/0/ccl/common-lisp-controller/post-sysdef-install.lx64fsl")
Now as an ordinary user,
? (load "/var/cache/common-lisp-controller/0/ccl/common-lisp-controller/common-lisp-controller.lx64fsl") ? (load "/var/cache/common-lisp-controller/0/ccl/cl-asdf/asdf.lx64fsl") ? (load "/var/cache/common-lisp-controller/0/ccl/cl-asdf/wild-modules.lx64fsl") ? (load "/var/cache/common-lisp-controller/0/ccl/common-lisp-controller/post-sysdef-install.lx64fsl") ? (common-lisp-controller:init-common-lisp-controller-v5 "ccl") ? (ccl:save-application "ccl-deb")
When restarted with
lx86cl64 ccl-deb
all the Debian definitions are there. (I recommend using rlwrap from a shell for easier input editing.)
I tried to compile and load various debian packages and other systems, with reasonably good success;
(clc:clc-require :asdf-system-connections) (clc:clc-require :cl-base64) (clc:clc-require :cl-ppcre) (clc:clc-require :md5) (clc:clc-require :port) (clc:clc-require :iterate) (clc:clc-require :cl-utilities) (clc:clc-require :uffi) (clc:clc-require :clsql-uffi) (clc:clc-require :clsql-sqlite3) (clc:clc-require :cffi) (clc:clc-require :drakma) (clc:clc-require :cl-html-parse)
all worked fine; I did get errors from a few things
(clc:clc-require :memoization) Error: The function CCL:ARGLIST is predefined in OpenMCL. (use-package :iterate :cl-user) > Error: Using #<Package "ITERATE"> in #<Package "COMMON-LISP-USER"> > would cause name conflicts with symbols inherited by that package: > ITERATE:TERMINATE TERMINATE (clc:clc-require :trivial-http) > Error: Module TRIVIAL-HTTP was not provided by any function on *MODULE-PROVIDER-FUNCTIONS*.
I'm sure many of my applications (tested mainly on SBCL and a little CLISP) will need fixing up.