(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "16-May-90 14:47:55" {DSK}<usr>local>lde>lispcore>sources>CMLSYMBOL.;2 2209   

      changes to%:  (VARS CMLSYMBOLCOMS)

      previous date%: "23-Mar-87 16:05:27" {DSK}<usr>local>lde>lispcore>sources>CMLSYMBOL.;1)


(* ; "
Copyright (c) 1986, 1987, 1990 by Venue & Xerox Corporation.  All rights reserved.
")

(PRETTYCOMPRINT CMLSYMBOLCOMS)

(RPAQQ CMLSYMBOLCOMS (
                          (* ;; "Latter part of the symbol functions.  The rest are in LLSYMBOL")

                          (OPTIMIZERS GET CL:GETF CL:SYMBOL-PLIST)
                          (SETFS GET CL:SYMBOL-PLIST CL:SYMBOL-VALUE CL:SYMBOL-FUNCTION)
                          (FUNCTIONS %%SET-GET)
                          (PROP FILETYPE CMLSYMBOL)))



(* ;; "Latter part of the symbol functions.  The rest are in LLSYMBOL")


(DEFOPTIMIZER GET (CL:SYMBOL INDICATOR &REST TAIL)
                      `(CL:GETF (CL:SYMBOL-PLIST ,CL:SYMBOL)
                              ,INDICATOR
                              ,@TAIL))

(DEFOPTIMIZER CL:GETF (PLACE INDICATOR &OPTIONAL DEFAULT)
                          [COND
                             (DEFAULT 'IGNOREMACRO)
                             (T `(LISTGET ,PLACE ,INDICATOR])

(DEFOPTIMIZER CL:SYMBOL-PLIST (CL:SYMBOL)
                                  `(GETPROPLIST ,CL:SYMBOL))

(CL:DEFSETF GET %%SET-GET)

(CL:DEFSETF CL:SYMBOL-PLIST SETPROPLIST)

(CL:DEFSETF CL:SYMBOL-VALUE SET)

(CL:DEFSETF CL:SYMBOL-FUNCTION SETF-SYMBOL-FUNCTION)

(DEFMACRO %%SET-GET (SYMBOL INDICATOR NEWVALUE &OPTIONAL EXTRAVALUE)

   (* ;; "SETF-INVERSE for GET.  This would be simply PUTPROP if GET had exactly two args.  However, if the GET form had optional 3rd arg, it shows up in the NEWVALUE position and the actual new value is EXTRAVALUE")

   `(PUTPROP ,SYMBOL ,INDICATOR ,(CL:IF EXTRAVALUE
                                     `(PROGN ,NEWVALUE ,EXTRAVALUE)
                                     NEWVALUE)))

(PUTPROPS CMLSYMBOL FILETYPE CL:COMPILE-FILE)
(PUTPROPS CMLSYMBOL COPYRIGHT ("Venue & Xerox Corporation" 1986 1987 1990))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL)))
STOP
