On Fri, Feb 23, 2001 at 04:50:38PM -0600, William Harold Newman wrote:
> On Fri, Feb 23, 2001 at 10:57:06PM +0100, Arthur Lemmens wrote:
> > Fortunately, it seems to be easily solvable by wrapping
> > (EVAL-WHEN :COMPILE-TOPLEVEL :LOAD-TOPLEVEL)
> > around the offending forms. So far, I've found two places where this
> > was necessary: the sequence of DEFENUMS in early-objdef.lisp where
> > the second DEFENUM depends on a value defined in the DEFENUM before
> > it, and the use of #.MAX-VOP-TN-REFS in vmdef.lisp.
> So Lispworks' behavior is conforming, and I screwed up.:-(
> OK, thanks for pointing out the problem. I'll add the EVAL-WHEN
> wrappers to the places you mention above.
The new EVAL-WHENs are now checked into CVS as version 0.6.11.3.
I seem to've neglected to check in 0.6.11.2 as a separate version. Its
checkin notes should've looked like something like this:
Add missing EVAL-WHEN wrappers for DEFCONSTANT, as per bug
report from Arthur Lemmens sbcl-devel 2001-02-23..
..the use of #.MAX-VOP-TN-REFS in vmdef.lisp
..(not in the sequence of DEFENUMs in early-objdef.lisp, at
least not yet, since it caused problems when I did)
Wrap DEFUN SYMBOLICATE in EVAL-WHEN so that we don't need
to worry about using it in DEFENUM.
On an unrelated subject, I've wasted a fair amount of time recently
trying to figure out how to get SBCL to stop $^#$^! consing in some
floating-point-intensive code in my Go program, and it looks as though
I'll be spending several days unscrewing the problem (partly because I
screwed up CMU CL's floating point infinities and floating point
optimization when I was simplifying it enough to bootstrap it, partly
just because of the basic Lisp problem of flexibility occasionally
biting you hard in performance). Common Lisp is not entirely an
advantage over C++..
William Harold Newman <william.newman@...>
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C