Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.


sbcl Log

Commit Date  
[63a57e] (pcl_build_1_branch) by Christophe Rhodes Christophe Rhodes

Quick, commit it before it all goes horribly wrong
... minimum of package frobbing in boot.lisp to get it to
compile. It can't possibly work in any real way in the
host lisp yet, but it may not need to

So I may be storing trouble up for myself here, in that there's a nasty
tangle involving generic functions and methods looming up ahead, but I
have some kind of plan. After this, I can work on getting braid into
the build, which is where the fun starts: the plan is that the various
!BOOTSTRAP-META-BRAID functions should be callable early in cold-init.
Thus, we move braid into the build, and in make-host-1 call the
!BOOTSTRAP functions as before, while we ensure that they are called in
cold-init as early as possible, so that the kernel classes are set up
before ordinary top-level forms run.

What happens then? Generic functions qua generic functions will be
dealt with in more-or-less the same way, except that there's a wrinkle
to do with them being expected to be funcallable instances with slots
and suchlike, so they don't map terribly well to host objects; we shall
probably have to think about that.

Methods have another interesting wrinkle, in that to create them
involves calling MAKE-INSTANCE. A two-pass strategy is probably best
there -- first, create fake methods a la EARLY-METHOD, which we know how
to call; then, a second pass can create the real methods.

I think.

2003-03-03 21:51:48 Tree
[892355] by Christophe Rhodes Christophe Rhodes

And so falls src/pcl/cache.lisp
... nothing really difficult in there
... and bye bye placeholder SB!PCL::CHECK-WRAPPER-VALIDITY

OK, but now it gets difficult. The next files, dlisp and dlisp2,
involve references to #'(sb-kernel:instance-lambda ...), which isn't a
very happy concept on the cross-compilation host. Sadly, just putting
them into :not-host mode doesn't work either, as there are uses of
these instance-lambda-making macros in dlisp2, so they need to be
defined in some sense. Ugh. One to sleep on, I suspect.

2003-02-27 19:09:27 Tree
[265379] by Christophe Rhodes Christophe Rhodes

Move defclass and defs into cold build
... define COLD-DEFCLASS, and use it to make early classes
... only do FBOUNDP checks when we're in charge of what a
function name is

This is perhaps indicative of the way to go. We'll use COLD-DEFFOO to
build up early classes/methods/generic functions, which will then be
turned into late ones in early COLD-INIT, so that by the time
ordinary top-level forms run we're all set up and ready to cope with

Hrm. I see in our cold-init sequence !CLASS-FINALIZE, which would seem
to break this plan. Maybe !CLASS-FINALIZE will need to run earlier --
pre-genesis -- so that Lisp classes are actually finalized before they
currently are? Or maybe it's a no-op anyway? Currently I believe that
there are no classes in *FORWARD-REFERENCED-LAYOUTS* that don't have a

2003-02-27 13:34:12 Tree
[e035cd] by Christophe Rhodes Christophe Rhodes

fngen only depends on low in the original defsys description
of PCL, so
... do trivial adjustments to move fngen into cold build

Sadly, that's the last easy case.

The obvious next step is to work on defclass.lisp until it yields, as it
is the next in the build order. However, while eventually this is
likely to work, it's not going to advance the cause of rationalizing the
build; sure, we can build PCL under the host Lisp -- it was, after all,
called Portable Common LOOPS -- but that's not actually advancing the
cause of integrating it properly.

Maybe better would be to bring the braid into the cold build? As part
of PCL's build, it makes PCL classes for every built-in-class. We
_already_ have a big loop over built-in-classes at the start of
cold-init: maybe it would make sense to do the PCL classes there?

2003-02-26 09:40:04 Tree
[3e5cde] by Christophe Rhodes Christophe Rhodes

Pottering in fear: doing the easy bits first:
... move slot-name into the cold build.

That was easy. :-)

2003-02-25 16:59:28 Tree
[cd7010] by Christophe Rhodes Christophe Rhodes

Bring src/pcl/low.lisp into the build
... don't import SB-KERNEL:FUNCALLABLE-INSTANCE-P any more
file (target-low) that is built only by the
cross-compiler, not the host compiler
... usual package prefix frobs

This version builds and passes all its tests. We aren't yet at the
"interesting" stage of this process, though; that comes up shortly, when
we try to migrate LOAD-DEFCLASS.

LOAD-DEFCLASS is much like %DEFSTRUCT, except that it gets redefined
halfway through PCL's build process as part of the bootstrap (in
src/pcl/std-class.lisp; see REAL-LOAD-DEFCLASS).

SBCL's way of dealing with these is probably instead to do fixups
(corresponding to PCL's braid?) at cold-init time, via !COLD-INIT-FORMS,
executed before the remaining warm load. This may be the way to bridge
the gap between the early class information and the full PCL, or it may
not... we shall see.

2003-02-25 15:18:56 Tree
[08a473] by Christophe Rhodes Christophe Rhodes

So, I hope this goes onto the right branch.

Begin (or continue, depending on how you look at it) motion of
PCL build into the main build:
... hack the package setup logic to include shadows;
... export all the shadowed symbols from SB!PCL, otherwise
genesis drops the information on the floor;
... migrate compiler-support, macros and early-low into the main

Also a fix for a stupid bug, that might want to be merged before
the main thrust of this branch.
... (documentation nil t) no longer talks about

The thrust of this branch is to rationalize the build process of PCL.
This means that in scope is the removal of the bootstrap process (NIL
and :BRAID *BOOT-STATE*s) on the basis that instead we can arrange that
our first-stage (cross-) compiler knows enough to be able to compile the
target PCL, without having to execute any target PCL code. Out of
scope, unless it turns out to be really easy and obvious, is fixing the
CL:CLASS/SB-PCL:CLASS distinction, though it is to be hoped that this
effort into rationalizing the build will make fixing the breakage more
obvious, either by virtue of code simplification or by virtue of having
read all the code at least once.

While it will be attempted to pass all tests at each CVS checkin, it's
entirely possible that manipulating the build will get hairy, and a
checkin will want to be made at an intermediate stage; therefore, this
work is done on a branch, with tag pcl_build_1_branch (no, I hope there
won't be a pcl_build_2_branch, but one never knows...)

2003-02-25 10:13:52 Tree
[8dd2ba] by Daniel Barlow Daniel Barlow
Revert accidental bsd-sockets/solaris breakage

2003-02-24 06:34:17 Tree
[ca9a15] by Daniel Barlow Daniel Barlow
Add :force t to asdf-dependent contrib modules

Change to rename old binary/core files instead of
copying them - does not kill running SBCL programs in such a
gruseome way

Create $SBCL_HOME/site-systems in

... OK, that's IT, I am DONE for 0.7.13

2003-02-24 04:33:00 Tree
[12348c] by William Harold Newman William Harold Newman
merged Matthew Danish patch (sbcl-devel Feb 18) fixing eval
order and ONCE-ONLYness for function args (my
contribution to the "what have we here?" theme of
the intercontinental party we're holding to celebrate
today's nonrelease:-)

2003-02-23 22:50:01 Tree
[24e6aa] by William Harold Newman William Harold Newman
doc fixes, some from #lisp...
...emu pointed out where arg order stuff for :TEST functions
is specified.
...dan-b found a much-less-hackish !ENTITY for the manual.

2003-02-23 16:14:46 Tree
[2066cf] by Christophe Rhodes Christophe Rhodes
Eleventh hour accommodation to Solaris sh(1)
... export FOO=bar -> FOO=bar; export FOO
... more test -e -> test -f
... b=${1:?foo bar} -> b=${1:?"foo bar"}
... yay for portable shell programmes.

2003-02-23 16:07:33 Tree
[bb7c5b] by Christophe Rhodes Christophe Rhodes
Fix SunOS build as per sbcl-devel 2003-03-22
... remove last bashism in build scripts;
... allow building of foreign loading on SunOS;
... frob sb-bsd-sockets tests so that they pass on SunOS even in the
absence of a /dev/log socket.

2003-02-22 23:00:18 Tree
[5ced99] by Daniel Barlow Daniel Barlow
contrib support for "standalone executables" using shell script
magic. See sb-executable:make-executable docstring for usage

contrib/scriptoids was a three year old mail message describing
a similar but slightly less cool way to do the same thing

2003-02-21 19:52:43 Tree
[6fa4fe] by Daniel Barlow Daniel Barlow
Remove -mcpu option from Alpha configuration, so we generate
a binary that older (pre-ev5) machines can also run

2003-02-21 16:24:29 Tree
[3b91bf] by Daniel Barlow Daniel Barlow
It's easier to port a shell than a shell script. -- Larry Wall

Contrib-related fixes -
... multiple uses of test -e are now test -f
... don't run make test in install, it's more work than we
want to do as root
... instead, touch $i/test-passed in
(if, indeed, it has) and test for presence of that file
when installing
... Rationalise AF-* constants in sb-bsd-sockets: AF-LOCAL
is the One True Name.
... In sb-bsd-sockets build, don't hardcode gcc to be in /usr/bin

2003-02-21 16:21:02 Tree
[f27b79] by Alexey Dejneka Alexey Dejneka
Incremented fasl file version number due to the change in the

2003-02-20 10:04:56 Tree
[71817a] by Christophe Rhodes Christophe Rhodes
Pre-freeze fix inclusions
... merge patch from Tony Martinez for CONCATENATED-STREAM
misbehaviour (sbcl-devel 2003-02-10)
... include test from sbcl-devel 2003-02-15

2003-02-19 19:54:32 Tree
[4ff842] by Christophe Rhodes Christophe Rhodes
Merge patch from Gerd for improvement to SB-PCL:FIND-CLASS.
... propagate information through the braid
should agree, even on BUILT-IN-CLASS classes
... allow generalized function names
Also audit the rest of the codebase (by grep for "'setf") and
fix issues revealed
... EVAL (not actually a real bug)
... LOOP (in possibly dead code, though)

2003-02-19 17:11:33 Tree
[ab811c] by Christophe Rhodes Christophe Rhodes
Probably last contrib frob in this release cycle
... ensure that SBCL_HOME is set even if an explicit core is
The intent behind this change is to make
sbcl --core /usr/lib/sbcl/sbcl.core
identical in effect to
so that both invokations can continue to find contrib
packages in /usr/lib/sbcl/<foo>/

2003-02-19 13:16:20 Tree
[a2fcf3] by Christophe Rhodes Christophe Rhodes
Fix special operator status of DECLARE
... DECLARE no longer returns T to SPECIAL-OPERATOR-P

2003-02-18 17:21:56 Tree
[ac5323] by Christophe Rhodes Christophe Rhodes
More contrib/ fixing
... update asdf to latest "upstream"
... provide for user- and site-installed systems in asdf REQUIRE
hook (in $HOME/.sbcl/systems/ and
$SBCL_HOME/site-systems/ respectively)

2003-02-18 17:05:38 Tree
[01bf4e] by Christophe Rhodes Christophe Rhodes
contrib/ adjustments
... make aware of contrib/
... we run $gnumake test before $gnumake install ourselves, so
don't make the install target depend on test

2003-02-18 15:22:40 Tree
[24466b] by Christophe Rhodes Christophe Rhodes
A couple of minor fixes for bugs caught by Paul Dietz' test
... adjust source transform for CONSTANTLY to return a
side-effect-free function;
... OTHERWISE only introduces an otherwise-clause in TYPECASE if
it's the last clause;
... while I'm frobbing TYPECASE, make the style-warning format
string such that output is pretty.
... NEWS update

2003-02-18 12:55:36 Tree
[05449b] by Christophe Rhodes Christophe Rhodes
Yet more type system fixes:
distribute NOT over CONS types
... put *EMPTY-TYPE*-handling logic inside MAKE-CONS-TYPE
... fixes:
(subtypep '(and cons (not (cons symbol integer)))
'(or (cons (not symbol) *) (cons * (not integer)))
unravel some INTEGER/RATIONAL schizophrenia
... (RATIONAL 0 0) is completely equivalent to (INTEGER 0 0)
... fixes:
(subtypep '(rational 0 10) '(or (eql 0) (rational (0) 10)))
... does not fix:
(subtypep '(not (rational -1/2 1/2)) '(not (integer 0 0)))

2003-02-18 11:44:42 Tree
Older >