Wednesday February 17,1982 LQ+2D.4H.21M.13S. -- JonL -- 1) In SHARPM 82, #| now works as on the LISPM, namely #|...cruft...|# "disappears" like a balanced comment; note that termination is |# Also, #<n>R<ddd> now works; e.g. #3R21 is 7 (21 in base 3). 2) Two new functions in auxillary files, but not autoloading DEFCONST is in the MLMAC file; it is like DEFVAR, but always SETQs. ARRAYP is in the MLSUB file; returns true for non-funny arrays. 3) GENTEMP, an LSUBR, generates truly uninterned symbols. Should be used in preference to GENSYM by macros which generate temporary local variables. 4) The TTYNOTES-FUNCTION facility for COMPLR has been emended _______________________________________________________________________ 2) Two new functions in auxillary files, but not autoloading DEFCONST is in the MLMAC file; it is like DEFVAR, but always SETQs. ARRAYP is in the MLSUB file; returns true for non-funny arrays. (defun ARRAYP (x) (and (eq (typep x) 'ARRAY) (memq (array-type x) '(NIL T FIXNUM FLONUM)) 'T)) 3) GENTEMP, an LSUBR, generates truly uninterned symbols. Should be used in preference to GENSYM by macros which generate temporary local variables. GENTEMP permits one optional argument, a prefix for the symbol to be created (defaults to T), and creates a symbol like (maknam (append (explode <prefix>) (explode '|..|) (explode (<increment-gentemp-counter>)))) E.g., (GENTEMP) => |T..1| (GENTEMP '|Foo|) => |Foo..1| A basic problem with GENSYM is that even though the symbol is uninterned when created, it may be written out to a FASL during compilation, and upon loading it will then be interned; separate such compilations can thus have unfortunate co-incidences between variables which were thought to be unique. Any symbol with a +INTERNAL-TEMP-MARKER property on its property list will be treated during compilation in such a way that it won't be interned when the FASL file is loaded. 4) The TTYNOTES-FUNCTION facility for COMPLR has been emended If a symbol has a TTYNOTES-FUNCTION property, then that is assumed to be some function which when applied to the symbol will either return a re-nameing of it for the unfasl and ttynotes purposes, or will return () meaning "I've alredy outputted all the msgs I care to see". Currently it doesn't support the re-naming for break-point error msgs.