[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
LIBDOC;TTY
- To: GJC at MIT-MC
- Subject: LIBDOC;TTY
- From: Jon L White <JONL at MIT-MC>
- Date: Sat, 15 Aug 81 17:52:00 GMT
- Cc: BUG-LISP at MIT-MC
- Original-date: 15 August 1981 13:52-EDT
Date: 14 August 1981 17:02-EDT
From: George J. Carrette <GJC at MIT-MC>
In a bare lisp, do (LOAD "LIBLSP;TTY"),
then (DO-WITH-TTY-OFF),
you get a call to an undefined function: GENTEMP.
Missing AUTOLOAD property for GENTEMP, which I added to TTY file --
any other "real" usage of TTY would not have been bothered since most
other files would already have put the AUTOLOAD property. Probably
GENTEMP should have an AUTOLOAD property in the initial LISP.
. . . Furthermore, I challange you to prove
why GENSYM is not sufficient for this case. (Excepting
the bad practice of using read-time-macroexpansion inside
macros of course.)
The availability of local declarations in MacLISP, and of the compiler
switch SPECIALS which makes all user variables special -- unless properly
constructed with SI:GEN-LOCAL-VAR as in the TTY file -- means that system
facilites ** must not ** depend upon GENSYM.
The "cross-talk" of local declarations between 'gensym'd variables used by
compiled macros can occur in the TTY file during usages of the
DO-WITH-TTY-insomestate macros which are embedded in other macros usages;
and also subsequent macros can occur in the code incorporated by the line
,@(CDR X))
of the DO-WITH-TTY-insomestate macros.
The all-specials problem is ever-present
If you still don't understand why GENSYM is buggy under these conditions, you'd
better talk to someone who does before taking matters into your own hands.