[I originally sent this to Alexey and sbcl-devel, but somehow misspelled
sbcl-devel, so the message bounced. thought it might be useful]
On Sun, 2003-03-23 at 05:26, Alexey Dejneka wrote:
> "Nathan J. Froyd" <froydnj@...> writes:
> > I actually ran across a similar sort of problem; I use Franz's
> > [...]
> > * (time (load "lent-psalm-schedule.lisp"))
> Add (DECLAIM (NOTINLINE WRITE-STRING)).
This fixes the problem, thanks!
> > Also,
> > it doesn't seem like the following sequence of FOPs is all that
> > smart:
It seems like FOP-SMALL-STRING pushes, then pop, then push again. But I
don't know too much about the FASL file format. Maybe FOP-SMALL-STRING
just generates the actual string, which gets stashed in a table, and
then FOP-BYTE-PUSH gets a reference to that string. That seems to make
sense (to me, anyway).
What was also peculiar about the FASL file was the extremely large
number of code fixups that were emitted. SB-VM::*NUM-FIXUPS* was on the
order of 110,000 after loading the file, which seems somewhat large.
But this is probably explained by the inlining of WRITE-STRING.
> BTW, when I've MACROEXPAND-ALL-ed your form, I've seen 282 calls of
> WRITE-STRING. From what I read about HTMLGEN, I expected it to combine
> all output into one string. Have I done something wrong?
I would expect that, too. But my version doesn't and it doesn't appear
that the latest version of htmlgen does either (but I haven't tested
Nathan | http://www.cs.rose-hulman.edu/~froydnj/ | Credo ut intelligam
From Man's effeminate slackness it begins. --Paradise Lost