[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PUSH, or is it SETF? SHOVE maybe?
- To: RLB at MIT-MC
- Subject: PUSH, or is it SETF? SHOVE maybe?
- From: Robert W. Kerns <RWK at MIT-MC>
- Date: Fri, 24 Jul 81 17:46:00 GMT
- Cc: BUG-LISP at MIT-MC
- In-reply-to: The message of 22 Jul 81 22:20-EDT from Richard L. Bryan <RLB at MIT-MC>
- Original-date: Friday, 24 July 1981, 13:46-EDT
Date: 22 July 1981 22:20-EDT
From: Richard L. Bryan <RLB at MIT-MC>
Subject: PUSH, or is it SETF?
To: BUG-LISP at MIT-MC
In a bare lisp,
(PUSH 'X (GET 'Y 'Z))
finds |Function..24| undefined function. It has a gentemp marker.
Sorry 'bout that. MC died a horrible death while I was working on this
stuff and GJC stole my LISPM with modified buffers while I was waiting
for it to come up.
I intruduced it while extending DEFSETF to make it easier to fix this
bug:
Date: 20 July 1981 21:15-EDT
From: Richard L. Bryan <RLB at MIT-MC>
Sender: BIL at MIT-MC
Subject: Gobble, gobble
To: BUG-LISP at MIT-MC
The current EXTBAS has SI:EXTEND-LENGTH subr defined as
(defun si:extend-length (x) (si:extend-length x))
or something equivalent, expecting a macro definition for si:extend-length
to come in from EXTHUK. It did, but after that SI:EXTEND-LENGTH was
own-symbol'ified, leading to a short inner loop on si:extend-length
tail recursing to itself, but not terminating in finite time.
(btw, this is the source of the previous bug I misreported - BIL)
However, WGD pointed out that it is easier and better just to move the
offending LET to inside the SI:XREF, which makes it all work. Since I
had to do it all over again, thanks to DEC and GJC, I did it WGD's
winning way. However, my improvement to DEFSETF still stands: Instead
of just a name of a function, DEFSETF can take a list of functions.
Similarly, in the slot that was always () in the argument pattern, it
will actually take a function name, for arbitrary use by the invert
pattern.