This is a somewhat messy release. It breaks binary compatibility,
renames a lot of files, and is late.:-( But the code is now
significantly cleaner inside than 0.6.1, and I've even fixed some
I said some time ago that this version would be out in a few days. It
wasn't, because I stumbled into a real mess while trying to fix a
trivial problem, the annoying way that the bootstrap cross-compiler
warns about %%DEFUN being undefined. To stop that, %%DEFUN should be
PROCLAIMed as a function. In order for that PROCLAIM to take effect,
the *TYPE-SYSTEM-INITIALIZED* flag has to be set. So I tried to run
the bootstrap cross-compiler with *TYPE-SYSTEM-INITIALIZED*. That
opened Pandora's Big Box of Bugs -- not that it breaks the system, but
it enables a number of consistency checks which show how many crazy,
broken things which only just happen to work are occurring in the
current bootstrap process.
I wanted to fix this, since I don't want to be playing Russian
roulette every time I make a change to the bootstrap system. But after
more than a week it *still* doesn't work properly. So this 0.6.2
release doesn't solve that problem; instead I've just released my last
version from before I started working on that problem.
from the NEWS file:
changes in sbcl-0.6.2 relative to sbcl-0.6.1:
* (Note that the way that the PCL macroexpansions
were rewritten to accommodate the change in DEFGENERIC below
breaks binary compatibility. Thus, some fasl files compiled under
sbcl-0.6.1 may not run under sbcl-0.6.2. There is currently
no fixed policy on binary compatibility, but tentatively we'll try
to maintain binary compatibility between maintenance releases
in production versions, e.g. between sbcl-1.1.3 and sbcl-1.1.4.)
* A bug in the calculation of WARNINGS-P and FAILURE-P in COMPILE-FILE
has been fixed.
* The reporting of unhandled signals has been changed to print some
explanatory text as well as the report form. (Previously only
the report form was printed.)
* The macroexpansion for DEFGENERIC now DECLAIMs the function that
it defines, so that the compiler no longer issues undefined function
warnings for compiled-but-not-yet-loaded generic functions.
* The CLTL-style "LISP" and "USER" nicknames for the "COMMON-LISP"
and "COMMON-LISP-USER" packages have been removed. Now only the "CL"
and "CL-USER" standard nicknames from the "11.1.2 Standardized Packages"
section of the ANSI spec are supported.
* The "" nickname for the "KEYWORD" package has been removed.
The reader still handles symbol tokens which begin with a package marker
as keywords, but it doesn't expose its mechanism for doing so in the
(PACKAGE-NICKNAMES (FIND-PACKAGE "KEYWORD")) list.
* The system now issues STYLE-WARNINGs for contradictory TYPE
proclamations. (Warnings for contradictory FTYPE proclamations would
be nice too, but those can't be done usefully unless the type system
is made smarter about FUNCTION types.)
* The names of source files "*host-*.lisp" and "*target-*.lisp" have been
systematized, so that "*target-*.lisp is supposed to exist only on the
target and imply that there's a related file which exists on the
host, and *host-*.lisp is supposed to exist only on the host and imply
that there's a related file which exists on the target. This involves a
lot of renaming. Hopefully the acute confusion caused by the renaming
will be justified by the reduction in chronic confusion..
** runtime-type.lisp -> early-target-type.lisp
** target-type.lisp -> late-target-type.lisp
** early-host-format.lisp -> early-format.lisp
** late-host-format.lisp -> late-format.lisp
** host-error.lisp -> misc-error.lisp
** early-error.lisp -> early-target-error.lisp
** late-error.lisp -> late-target-error.lisp
** host-defboot.lisp -> early-defboot.lisp
** code/misc.lisp -> code/target-misc.lisp
** code/host-misc.lisp -> code/misc.lisp
** code/numbers.lisp -> code/target-numbers.lisp
** code/early-numbers.lisp -> numbers.lisp
** early-host-type.lisp -> early-type.lisp
** late-host-type.lisp -> late-type.lisp
** host-typep.lisp -> typep.lisp
** load.lisp -> target-load.lisp
** host-load.lisp -> load.lisp
** host-disassem.lisp -> disassem.lisp
** host-insts.lisp -> insts.lisp
** byte-comp.lisp -> target-byte-comp.lisp
** host-byte-comp.lisp -> byte-comp.lisp
** host-signal.lisp -> signal.lisp
* DEFSTRUCT BACKEND, and the BACKEND-valued *BACKEND* variable, have
gone away. In their place are various *BACKEND-FOO* variables
corresponding to the slots of the old structure.
* A bug which caused the SB-COLD bootstrap-time package to be propagated
into the target SBCL has been fixed.
William Harold Newman <william.newman@...>
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C