From: ted sandler
Subject: more cmucl & sbcl questions
Date: 
Message-ID: <afoo8e$41o$1@bob.news.rcn.net>
I have a few more questions regarding CMUCL and SBCL that I'm hoping someone
can answer:

1)  I'm perplexed as to where to install the cmucl extras on my x86 redhat
linux system.  When I unzip the ".tar.gz" file, the resulting files are:

  lib/cmucl/lib/hemlock11.cursor
  lib/cmucl/lib/hemlock11.mask
  lib/cmucl/lib/mh-scan
  lib/cmucl/lib/motifd
  lib/cmucl/lib/spell-dictionary.bin
  lib/cmucl/lib/XKeysymDB
  lib/cmucl/lib/subsystems/clm-library.x86f
  lib/cmucl/lib/subsystems/clx-library.x86f
  lib/cmucl/lib/subsystems/hemlock-library.x86f

Where do these files go?  I wasn't able to find any documentation.

2)  How much effort is required to build SBCL from the sources?

3)  What are the differences btwn the cmucl a,b,c,d development branches?

-ted

From: Joel Ray Holveck
Subject: Re: more cmucl & sbcl questions
Date: 
Message-ID: <y7c6600huig.fsf@sindri.juniper.net>
> 1)  I'm perplexed as to where to install the cmucl extras on my x86 redhat
> linux system.  When I unzip the ".tar.gz" file, the resulting files are:
>   lib/cmucl/lib/hemlock11.cursor
[snip]
> Where do these files go?  I wasn't able to find any documentation.

Where did you install CMUCL?  There will be a pretty obvious
'lib/cmucl/lib' for cmucl.  Depending on how you installed this, it
could be under /usr/local, or under /usr/local/lisp, or a number of
other places.  But it shouldn't be hard to find if you look.

> 3)  What are the differences btwn the cmucl a,b,c,d development branches?

Version numbers.  18d is the most recent.  If you want to know what's
changed, the release notes may be worth a look-see.

joelh
From: Hannah Schroeter
Subject: Re: more cmucl & sbcl questions
Date: 
Message-ID: <afpbau$b0q$1@c3po.schlund.de>
Hello!

In article <············@bob.news.rcn.net>,
ted sandler <··········@rcn.com> wrote:
>[...]

>2)  How much effort is required to build SBCL from the sources?

If you have an *appropriate* bootstrap Lisp (SBCL itself, maybe
cmu will work fine too) already, not too much.

Get the source tree, cd into it, ./clean.sh, ./make.sh (perhaps with
a parameter to specify the bootstrap host)

Kind regards,

Hannah.
From: Christophe Rhodes
Subject: Re: more cmucl & sbcl questions
Date: 
Message-ID: <sqd6u7ppzc.fsf@lambda.jcn.srcf.net>
······@schlund.de (Hannah Schroeter) writes:

> Hello!
> 
> In article <············@bob.news.rcn.net>,
> ted sandler <··········@rcn.com> wrote:
> >[...]
> 
> >2)  How much effort is required to build SBCL from the sources?
> 
> If you have an *appropriate* bootstrap Lisp (SBCL itself, maybe
> cmu will work fine too) already, not too much.

SBCL itself should indeed work, as should any version of cmucl
released since 1999 or so (Debian potato's version, for instance,
which is widely installed despite being ludicrously non-current); as
of sbcl-0.7.5, openmcl (version 0.12.1) is also a suitable bootstrap
host.  Other lisps may work, or may not; failure can be bugs in either
sbcl or the host.

Procedure for building is simple, as Hannah mentioned:

host:/path/to/sbcl$ ./clean.sh # optional
host:/path/to/sbcl$ ./make.sh 'lisp -batch' # for building with cmucl
[ ... wait some time ...]
host:/path/to/sbcl$ cd tests && sh ./run-tests.sh # optional

If you're cross-compiling to a different architecture or OS, it's
marginally more complex; see http://ww.telent.net/sbcl-internals/Build
for more details.

Cheers,

Christophe
-- 
Jesus College, Cambridge, CB5 8BL                           +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/                  (defun pling-dollar 
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)
From: ted sandler
Subject: Re: more cmucl & sbcl questions
Date: 
Message-ID: <aftlk0$c7q$1@bob.news.rcn.net>
I guess what I am confused about is the "bootstrapping" part.  I've never
built anything that required "bootstrapping", or if I did, I didn't know it
explicitly.

From what I gather, bootstrapping, in this case, means that a lisp system is
needed to build certain parts of the SBCL/CMUCL lisp system, though the
basic parts are buildable / compilable in the normal fashion.  Is this
correct?

-ted

"Hannah Schroeter" <······@schlund.de> wrote in message
·················@c3po.schlund.de...
> Hello!
>
> In article <············@bob.news.rcn.net>,
> ted sandler <··········@rcn.com> wrote:
> >[...]
>
> >2)  How much effort is required to build SBCL from the sources?
>
> If you have an *appropriate* bootstrap Lisp (SBCL itself, maybe
> cmu will work fine too) already, not too much.
>
> Get the source tree, cd into it, ./clean.sh, ./make.sh (perhaps with
> a parameter to specify the bootstrap host)
>
> Kind regards,
>
> Hannah.
From: Christophe Rhodes
Subject: Re: more cmucl & sbcl questions
Date: 
Message-ID: <sq8z4tparf.fsf@lambda.jcn.srcf.net>
"ted sandler" <··········@rcn.com> writes:

> I guess what I am confused about is the "bootstrapping" part.  I've never
> built anything that required "bootstrapping", or if I did, I didn't know it
> explicitly.
> 
> From what I gather, bootstrapping, in this case, means that a lisp system is
> needed to build certain parts of the SBCL/CMUCL lisp system, though the
> basic parts are buildable / compilable in the normal fashion.  Is this
> correct?

No -- you're confusing two issues here.

One is that both SBCL and CMUCL are written in Common Lisp[*]. So,
just as you need a C compiler to build your "traditional"
applications, so you need a Lisp compiler to build CMUCL or SBCL.

The second comes from the fact that Lisp is a language in which the
act of compilation and/or loading changes the state of the
compiler.  

A difference (probably the main one) between SBCL and CMUCL is the
method whereby the two systems attempt to deal with this. CMUCL's
build procedure depends on knowledge of CMUCL's own internals;
therefore, CMUCL can only be built with CMUCL itself; moreover, since
the internals can change, it can only be trivially built with a CMUCL
that is not very different from the one you're trying to build;
otherwise, you need to load "bootstrap files" at various points in the
build to change the internals in the course of the compilation.

SBCL, on the other hand, has a build procedure that doesn't depend on
knowledge of its internals; therefore, any sufficiently unbuggy Lisp
compiler can be used to build SBCL, just as any sufficiently unbuggy C
compiler can be used to build applications written in C.

Christophe

[*] Well, mostly
-- 
Jesus College, Cambridge, CB5 8BL                           +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/                  (defun pling-dollar 
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)
From: Raymond Toy
Subject: Re: more cmucl & sbcl questions
Date: 
Message-ID: <4nelee464x.fsf@rtp.ericsson.se>
>>>>> "Christophe" == Christophe Rhodes <·····@cam.ac.uk> writes:

    Christophe> A difference (probably the main one) between SBCL and CMUCL is the
    Christophe> method whereby the two systems attempt to deal with this. CMUCL's
    Christophe> build procedure depends on knowledge of CMUCL's own internals;
    Christophe> therefore, CMUCL can only be built with CMUCL itself; moreover, since
    Christophe> the internals can change, it can only be trivially built with a CMUCL
    Christophe> that is not very different from the one you're trying to build;
    Christophe> otherwise, you need to load "bootstrap files" at various points in the
    Christophe> build to change the internals in the course of the compilation.

Just one addendum:  sometimes this isn't enough either and you have to
use a cross compiler to build it.  Why?  Because you've made changes
to internal stuff and when you compile and load the changed stuff, it
changes them in the current system and now it no longer matches what
it used to be.  Fun!

There may be cases where even "simple" cross-compilation won't work.
I haven't run into any though.

Ray