From: Richard M Kreuter <kreuter@pr...> - 2008-02-04 17:07:42
Christophe Rhodes writes:
> Richard M Kreuter <kreuter@...> writes:
> > (But then how is the transform getting run?)
> The transform is getting run because it's part of the cross-compiler;
> the string-dispatch macro is not yet defined in the cross-compiler,
> only on the host, because in primordial-extensions it uses DEFMACRO
> (which is an ordinary, bog-standard Lisp operator) rather than
Okay. Thanks for the explanation.
> > It seems that wrapping the offending CONCATENATE call in show.lisp in
> > (locally (declare (optimize (space 3) (speed 0))) ...)
> > makes SB-SHOW work again... But this doesn't seem like the right
> > way to fix this, or is it?
> It's one way. Better is probably adding concatenate to the notinline
> clause in /show0 (since show0 is all about compile-time-constant
> strings, there isn't exactly a speed issue), or else to change the
> definition of string-dispatch to use def!macro.
I guess ISTM that both might be worthwhile, though I'll just do the
NOTINLINE in SB-SHOW for now; reducing SB-SHOW's sensitivity to changes
in the cross-compiler seems like a good thing, in any case, since
SB-SHOW is probably seldomly exercised.
Get latest updates about Open Source Projects, Conferences and News.