[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Splicing macros fixed
- To: (BUG LISP) at MIT-MC, ALAN at MIT-MC, CWH at MIT-MC, KMP at MIT-MC
- Subject: Splicing macros fixed
- From: RWK at MIT-MC (Robert W. Kerns)
- Date: Wed ,1 Aug 79 08:01:00 EDT
To: JPG at MIT-MC, (BUG LISPM) at MIT-MC
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).