[Openmcl-devel] Debian packaging for CCL

Faheem Mitha faheem at faheem.info
Tue Jul 10 14:47:53 PDT 2012


Hi Matthew,

Thanks for the helpful reply.

On Mon, 9 Jul 2012, R. Matthew Emerson wrote:

> In order to run, ccl needs:
>
> 1. The lisp kernel binary.  The lisp kernel is a relatively small
> program written in a combination of C and assembly language that
> contains the garbage collector, OS thread support, and other runtime
> support stuff.
>
> 2. A heap image file.  This is lisp code and data.
>
> This is all you need, if your needs are small enough.  It's even
> possible to combine these two files into one by passing
> :prepend-kernel t to ccl:save-application.

Is there any reason not to do this?

> When CCL starts up, it defines a ccl: logical host.  If it finds
> that CCL_DEFAULT_DIRECTORY is set in the environment to the name
> of a directory, it will make the ccl: logical host point to that
> directory.  Otherwise, it will figure out what directory the heap
> image file is in, and use that.
>
> If you want to do lisp development, you will almost certainly want
> the interface directories, contained in platform-specific directories.
> On x86 Linux systems, the names are x86-headers (for 32-bit) and
> x86-headers64 (for 64-bit).  Without these, the #_ reader macro will
> not work.  CCL expects these directories to be in the ccl: directory.

Thanks, that is clear and explicit. I think I have enough information
for a first stab at building.

For the moment, I have one question. I want to build, for example, the
bootstrapping image from the shell. So I do

./lx86cl -e '(ccl:xload-level-0)'

but when it finishes it puts me in a prompt.

;Wrote bootstrapping image: #P"/usr/local/src/ccl/ccl-1.8/x86-boot32"
Welcome to Clozure Common Lisp Version 1.8-r15286M  (LinuxX8632)!
?

How can I stop that happening? I tried both batch and clean, without 
success.

Also, is it possible to select a path location for x86-boot32 by 
passing an argument to ccl:xload-level-0 or otherwise?

> If you want to use ASDF to load systems, then you clearly need to get
> ASDF from somewhere.  For user convenience, we bundle a version of ASDF
> with CCL in ccl:tools; and we set up things so that (require 'asdf) will
> find it there.
>
> If you don't want to use the bundled ASDF, that's perfectly fine.
> There's nothing magical about the bundled version:  it's completely
> unaltered from the upstream sources.  We only include it to save
> users the trouble of downloading it separately;  CCL itself doesn't
> make use of ASDF to build itself.  We also don't maintain ASDF (and
> don't want to), so we're trying to keep it at arm's length, so to
> speak, by including it in ccl:tools;.
>
> Anyway, if you use your own ASDF, the odds are that cl:require will
> not know where you put it, and you'll need to use cl:load to load it.

Using the builtin ASDF seems fine. Are both asdf.lisp and defsystem.lisp 
required?

> Regarding source code, I believe that many programmers find it
> helpful to have the source code of the lisp implementation around,
> too.  This way, you can M-. right into the source code of
> with-open-file (or whatever).

Agreed. But I'm not going to worry about that for the moment.

                                              Regards, Faheem



More information about the Openmcl-devel mailing list