(FILECREATED " 3-Sep-86 13:56:53" {ERIS}<LISPCORE>PKG>CMLSYMBOL.;1 2727
changes to: (FUNCTIONS CL:COPY-SYMBOL CL:GENSYM CL:GENTEMP)
(VARS CMLSYMBOLCOMS)
previous date: "27-Aug-86 15:58:05" {ERIS}<LISPCORE>LIBRARY>CMLSYMBOL.;27)
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT CMLSYMBOLCOMS)
(RPAQQ CMLSYMBOLCOMS ((* ;; "Latter part of the symbol functions. The rest are in LLSYMBOL")
(OPTIMIZERS GET GETF SYMBOL-PLIST)
(SETFS GET SYMBOL-PLIST SYMBOL-VALUE SYMBOL-FUNCTION)
(PROP FILETYPE CMLSYMBOL)))
(* ;; "Latter part of the symbol functions. The rest are in LLSYMBOL")
(DEFOPTIMIZER GET (SYMBOL INDICATOR &REST TAIL) (BQUOTE (GETF (SYMBOL-PLIST (\, SYMBOL))
(\, INDICATOR)
(\,@ TAIL))))
(DEFOPTIMIZER GETF (PLACE INDICATOR &OPTIONAL DEFAULT) (COND
(DEFAULT (QUOTE IGNOREMACRO))
(T (BQUOTE (LISTGET (\, PLACE)
(\, INDICATOR))))))
(DEFOPTIMIZER SYMBOL-PLIST (SYMBOL) (BQUOTE (GETPROPLIST (\, SYMBOL))))
(DEFINE-SETF-METHOD GET (SYMBOL PROP &OPTIONAL DEFAULT) "Get turns into %%put. Don't put in the default unless it really is supplied and
non-nil, so that we can transform into the get instruction whenever possible."
(LET ((SYMBOL-TEMP (GENSYM))
(PROP-TEMP (GENSYM))
(DEF-TEMP (GENSYM))
(NEWVAL (GENSYM)))
(VALUES (BQUOTE ((\, SYMBOL-TEMP)
(\, PROP-TEMP)
(\,@ (COND
(DEFAULT (BQUOTE ((\, DEF-TEMP))))))))
(BQUOTE ((\, SYMBOL)
(\, PROP)
(\,@ (COND
(DEFAULT (BQUOTE ((\, DEFAULT))))))))
(LIST NEWVAL)
(BQUOTE (PUTPROP (\, SYMBOL-TEMP)
(\, PROP-TEMP)
(\, NEWVAL)))
(BQUOTE (GET (\, SYMBOL-TEMP)
(\, PROP-TEMP)
(\,@ (COND
(DEFAULT (BQUOTE ((\, DEF-TEMP)))))))))))
(DEFSETF SYMBOL-PLIST SETPROPLIST)
(DEFSETF SYMBOL-VALUE SET)
(DEFSETF SYMBOL-FUNCTION SETF-SYMBOL-FUNCTION)
(PUTPROPS CMLSYMBOL FILETYPE COMPILE-FILE)
(PUTPROPS CMLSYMBOL COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL)))
STOP