On Sun, Oct 28, 2001 at 07:23:17PM +1100, Brian Spilsbury wrote:
> Brian Spilsbury wrote:
> > /VALUES-SPECIFIER-TYPE too early in cold init, uncached
> > /ORIG=..
> > Is coming up a zillion times, which is bound to be related to my
> > changes in the type-system...
> > I see that you've have this happen before after re-organising types,
> > so I'm wondering what it is likely to be related to?
> Now that I've slept, I just re-read this, and it isn't such a sensible
> posting :)
> What I mean is that I've re-arranged the type-system somewhat, and it is
> getting this message, from this place
> (defun !random-cold-init ()
> (/show0 "entering !RANDOM-COLD-INIT")
> (setf *random-state* (%make-random-state))
> (/show0 "returning from !RANDOM-COLD-INIT"))
> Removing the (%make-random-state) gets it to crash elsewhere, so it
> looks like it is something to do with struct allocation.
> Do you have any idea of what I've broken? :)
> I'll track this though the slow way, but any shortcuts would be appreciated.
It sounds as though VALUES-SPECIFIER-TYPE is being called before its
cache is initialized (i.e. before !EARLY-TYPE-COLD-INIT).
Why? My first guess would be that something has gone wrong in the
optimization of a type operation, very likely TYPEP (possibly an
implicit TYPEP within a type check generated by (DECLARE (TYPE FOO
BAR))). If the TYPEP can't be optimized into something primitive,
then it becomes a full call to %TYPEP, which does SPECIFIER-TYPE,
which does VALUES-SPECIFIER-TYPE.
(EXPT WHY 2)? All sorts of possibilities:
* the type being undefined at compile time, due to typo or compilation
order restructuring or package changes or..
* any of a multitude of things which can go wrong within the
implementation of the type system itself
I share your enthusiasm for extended debugging of cold init problems,
so I hope that's a lucky guess that gives you a shortcut. (That vast
enthusiasm is about 60% of the reason that I stopped messing with the
system for most of the last week or so..)
William Harold Newman <william.newman@...>
pending patches from sbcl-devel:
MNA READ-SEQUENCE and WRITE-SEQUENCE
AD "restarts: UNBOUND-SLOT"
AD "restarts: SYMBOL-VALUE"
issues raised on sbcl-devel that I won't get to 'til after 0.7.0:
bootstrapping under CLISP
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C