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
> 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
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.
······@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)
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.
"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)
>>>>> "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