[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Splicing macros fixed

I took a gander at the READER code, and was thouroughly grossed out by
the things like TLO T,4 and the like.  But by the help of a few lucky
guesses, and despite the lack of symbolic names for the flags, I was
able to figure out what's going on.  I've fixed in the source, and patched
the current LISP to do splicing macros correctly at top-level and following
the "." in dotted pairs.  The one remaining problem is error detecting of
forms like (FOO . ~(C) ~(D)), which should be an error, but currently
returns (FOO D . C), which is going to confuse the user terribly, should he
have such a bug.  The fix involves a new flag, but since the current flags
in T aren't symbolic, it's kinda hard for me to tell what bits if any are
still free.  So I'm postponing that part of the problem to another day.
Also, (FOO . ~()) isn't detected either (it returns a one-hunk, which
syntactically could be argued to be correct).  That too would be fixed by
the new flag.

I left the old binary as MC:LISP;BBLISP 840QIR, in case I blew the patch,
but it's been approved by the experts (ALAN, JPG).  The patch should
correspond exactly to my source changes (fingers crossed).