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


    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.