On Thu, Jun 06, 2002 at 05:09:03PM -0500, William Harold Newman wrote:
> On Thu, Jun 06, 2002 at 04:41:51PM -0500, William Harold Newman wrote:
> > On Thu, Jun 06, 2002 at 08:12:33PM +0100, Christophe Rhodes wrote:
> > > ? src/code/early-pcounter.lisp
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > You seem to've neglected to "cvs add" this when making the patch.
> > (I know I've seen the text for it (possibly an earlier version) in
> > some message of yours somewhere, and I dunno why it'd show up there
> > and not here. Odd.)
> Actually, now that I've read the end of the patch, I see that
> early-pcounter is there. So I don't know what the question mark means.
> tests/filesys-test-27884 is *not* there, so it appears that sometimes
> the question mark means what I thought. Just not always?
Ah, yes. When I add files, I don't do cvs add until I'm sure I really
want to add them, if you see what I mean. So instead, I do cvs diff -u,
$ diff -u /dev/null src/code/early-pcounter.lisp >> ~/sbcl.diff
which is error-prone, but if I get it right then patch on the resulting
diff file gets it right.
> Also, I feel vaguely queasy about using :DEFINED in the cross-compiler
> for things which are :PRIMITIVE on the target. It could easily be
> right, but beyond that, I'm definitely having trouble confidently
> guessing why it's right. So instead I'll confidently guess that you're
> the only person in the world who knows why it's right, and request of
> you an explanatory comment. (It doesn't need to be a perfect
> justification or anything. Even something along the lines of "XYZ
> breaks when we use :PRIMITIVE on the XC host here in sbcl-0.7.4, but
> :DEFINED seems to work" would probably help.)
I don't think that :DEFINED on the XC host is /right/. I think it's not
wrong, but I'm not sure about that.
The issue is that if one does :PRIMITIVE on the XC host, then on second
compilation of deftypes-for-target, via compiler-deftype, the
cross-compilation attempts to redefine the BIT type; if it has been
:PRIMITIVE on the host, then we will get type redefinition errors
("Cannot redefine primitive type" or somesuch).
An alternative to the SB-XC-HOST conditionals would be to split up the
*TYPE-SYSTEM-INITIALIZED* into two portions: *TYPE-SYSTEM-INITIALIZED*
and *TYPE-SYSTEM-FINALIZED*, where we check for redefinition of
:PRIMITIVE types only when the latter is true (not the former).
I'll try to summarize this when I check things in...
Jesus College, Cambridge, CB5 8BL +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/ (defun pling-dollar
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)