[Openmcl-devel] Debian packaging for CCL

Faheem Mitha faheem at faheem.info
Sat Jun 30 01:29:39 PDT 2012


Hi Gary,

Thanks for the reply.

On Fri, 29 Jun 2012, Gary Byers wrote:

> I don't know of any more recent attempts to package CCL for Debian.
> AFAIK, it's in MacPorts for OSX, in the FreeBSD ports system, and
> (IIRC) in Gentoo's package system. The actual packaging technology
> in those cases is different from Debian's, but you might find it
> helpful to look at those efforts.

Thanks for the pointers.

> A year or two ago, someone got fairly far in the process of packaging
> CCL for Fedora.  Their attempts to get it accepted into the Fedora
> distribution kept getting rejected by whoever decides these things.
> CCL - like many other Lisps and like some other programming
> environments - puts code in memory and executes it; in order for this
> to work, its heap (and sometimes stack) pages have to be mapped with
> execute permission, and this set off a red flag for the reviewer.  I
> think that the person who was trying to do the packaging got
> frustrated by the process and gave up; the reviewer may have just been
> going through a checklist and may not have understood the issue(s) too
> deeply.  I think that other applications that do similar things (for
> similar reasons) are distributed with Fedora, so this may have just been
> a case of (bad) luck of the draw.

Do you recall who this person was and/or his/her contact info?

> I don't want to discourage you if you're interested in doing this; having
> CCL available in Debian (and likely Ubuntu) is mostly a good thing for
> CCL (some - possibly large - number of people who might be interested in
> CCL but aren't aware of it might become aware of it.)  There's a tradeoff;
> if there are versions available in the package system, they may not always
> be the most recent versions and it may not be possible or practical for
> users of those versions to get bug fixes via svn.  The advantages - broader
> visibility of CCL - likely outweigh these concerns, and if you want to
> pursue this the results could be good for CCL in general.

I'm currently just poking around a little, trying to understand what is 
going on.

I'm currently seeing a rebuild failure on trunk from a clean checkout. 
I've been able to reproduce it a few times. See below. Maybe I'm doing 
something wrong. If so, clarifications/corrections would be appreciated. 
However, the same producedure works for me for the 1.8 release.

It seems the only files that change in this rebuild are lx86cl and 
lx86cl.image, correct? This is with Debian squeeze, 32 bit.

A second, related question. It seems the lx86cl.image is the heap image, 
and has everything loaded into it. I was wondering what other files from 
the installation are needed. It seems something else is. I did the 
following little experiment. I copied lx86cl and lx86cl.image to /tmp. Now 
these files have no knowledge about the rest of the installation. Then I 
ran 'rlwrap ./lx86cl'. I get the following error.

faheem at orwell:/tmp$ rlwrap ./lx86cl
> Error: Unbound variable: CCL::FASL-VERSION
> While executing: ASDF::LISP-VERSION-STRING, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available 
restarts.
> If continued: Skip loading init file.
> Type :? for other options.
1 >

If I abort and carry on, then I can run quite complicated programs using 
arrays and strings, and they execute correctly. However, I get an error 
when trying to load another library. This works under normal usage.

? (require :cl-rmath)
ASDF could not load cl-rmath because Unbound variable: CCL::FASL-VERSION.
> Error: Unbound variable: CCL::FASL-VERSION
> While executing: ASDF::LISP-VERSION-STRING, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 >

With a correct installation, I get

? (require :cl-rmath)
:CL-RMATH
NIL

So my question is, what other files are required for the installation to 
work correctly, and why? The wrapper script exports CCL_DEFAULT_DIRECTORY, 
but that does not tell me much.

                                                           Regards, Faheem

#########################################################################
Rebuild failure
#########################################################################

faheem at orwell:/usr/local/src/ccl/ccl-trunk$ svn info
Path: .
URL: http://svn.clozure.com/publicsvn/openmcl/trunk/linuxx86/ccl
Repository Root: http://svn.clozure.com/publicsvn/openmcl
Repository UUID: 8bdb8f1d-59ce-db11-9e41-0016172a54ae
Revision: 15416
Node Kind: directory
Schedule: normal
Last Changed Author: gb
Last Changed Rev: 15382
Last Changed Date: 2012-05-25 17:36:29 +0530 (Fri, 25 May 2012)

faheem at orwell:/usr/local/src/ccl/ccl-trunk$ rlwrap ./lx86cl

Welcome to Clozure Common Lisp Version 1.9-dev-r15376M-trunk 
(LinuxX8632)!
? (ccl:rebuild-ccl :full t)
[...]
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/defstruct-macros.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/lists.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/lists.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/chars.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/chars.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/setf.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/setf.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/setf-runtime.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/setf-runtime.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/defstruct.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/defstruct.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/defstruct-lds.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/defstruct-lds.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/foreign-types.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/foreign-types.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/db-io.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/db-io.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/nfcomp.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/nfcomp.lx32fsl"...
;Compiling "/usr/local/src/ccl/ccl-trunk/lib/ffi-linuxx8632.lisp"...
;Loading #P"/usr/local/src/ccl/ccl-trunk/bin/ffi-linuxx8632.lx32fsl"...
> Error: File #P"ccl:l1;level-1.lisp.newest" not found
> While executing: FCOMP-FIND-FILE, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.



More information about the Openmcl-devel mailing list