Liam Healy ([info]lhealy) wrote,
@ 2008-09-30 16:48:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
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.



(Post a new comment)


[info]pvaneynd
2008-10-01 03:24 am UTC (link)
cool!

That was on my to-do list :-).

Want to join the team? I'm certain Luca would be able to handle all the administration to set you up. In a pinch I could.

(Reply to this) (Thread)


[info]lhealy
2008-10-01 02:54 pm UTC (link)
Sure. I've never built a Debian package, but I'd like to learn.

(Reply to this) (Parent)


[info]candlebeh
2009-03-13 04:00 pm UTC (link)
thanks for this post



- mixa

(Reply to this)


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