Subject: Re: SBCL package bootstrapping
To: Ossi Herrala <oherrala@ee.oulu.fi>
From: Jon Buller <jon@bullers.net>
List: tech-pkg
Date: 05/07/2005 08:28:55
Ossi Herrala wrote:

> On Thu, May 05, 2005 at 08:48:20PM -0700, Jon Buller wrote:
> 
> > However, it needs a Common Lisp
> > system to build it.  This could be a binary package of SBCL itself,
> > or CLisp.  SBCL is a lot faster...
> > 
> > Any ideas on how to deal with any one of several bootstrap methods,
> > or perhaps none?
> 
> We can use SBCL binary (which is outdated) to build SBCL on NetBSD i386.
> And amd64 Linux SBCL binary to build SBCL on amd64 (if SBCL for amd64
> Linux works).

Well at the moment I only have an i386 laptop and a couple of
sparcstations, so I can't say much about any other SBCL/NetBSD
combination.  My NetBSD/sparc port of SBCL made it past the first
phase of the build, but not the second.  I think I have the memory
map messed up a bit.

> I think that's a lot faster than first buildling clisp and then buildling
> sbcl with clisp (which is slow). Of course the bootstrap could use clisp
> if it's installed already.
> 
> After we have one SBCL installed, we shouldn't remove the package before
> updating the new. Which we do in pkgsrc? :/

I was looking at gcc3-ada for hints on how to deal with bootstrapping,
and not really getting much traction.  At the moment, I guess I
need to figure out a way to detect any installed Lisp implementation
for building, or pick an appropriate default and build it first.
Then it needs to pass the proper flags to the make.sh script in
the SBCL source directory.

I think I'm currently leaning toward a small script in the files
directory that will do the detection and flag passing.  That would
leave me with building the package to bootstrap if none are present.
I guess an error message could be printed in that case, and let
the users build/install their packages of choice.

> If we want to support all platforms, it might get a bit ugly.

Actually, I don't think it will be a big deal, once SBCL supports the
various ports.  (And that is not the job of pkgsrc.)

Jon