(FILECREATED "11-Jun-86 21:08:47" {ERIS}<LISPCORE>LIBRARY>CMLDEFFER.;38 13792        changes to:  (FUNCTIONS DEFUN DEFMACRO)      previous date: "11-Jun-86 12:05:32" {ERIS}<LISPCORE>LIBRARY>CMLDEFFER.;37)(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)(PRETTYCOMPRINT CMLDEFFERCOMS)(RPAQQ CMLDEFFERCOMS ((COMS (INITVARS (FILEPKGFLG))                            (COMS (FNS PPRINT-DEFINER \DEFINE-TYPE-GETDEF)))                      (PROP MACRO-FN DEFDEFINER WITHOUT-FILEPKG)                      (FNS expand-DEFDEFINER expand-WITHOUT-FILEPKG)                      (ADDVARS (FILEPKGTYPES DEFINE-TYPES FUNCTIONS))                      (FUNCTIONS DEFDEFINER DEF-DEFINE-TYPE WITHOUT-FILEPKG)                      (DEFINE-TYPES DEFINE-TYPES FUNCTIONS VARIABLES)                      (FUNCTIONS DEFUN DEFMACRO CL:DEFMACRO DEFVAR DEFPARAMETER DEFCONSTANT)                      (PROP FILEPKGCONTENTS FUNCTIONS)                      (* don't note file package changes to MACRO-FN)                      (PROP PROPTYPE MACRO-FN)                      (PROP FILETYPE CMLDEFFER)                      (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)                                                                                          (NLAML)                                                                                          (LAMA)))))(RPAQ? FILEPKGFLG )(DEFINEQ(PPRINT-DEFINER  (LAMBDA (DEFINE-EXPRESSION)                                (* lmm "24-May-86 15:10")    (LET ((DEFINER (pop DEFINE-EXPRESSION))          (DEFINED (pop DEFINE-EXPRESSION))          (CURRENT (DSPXPOSITION))          (#RPARS))         (DECLARE (SPECVARS #RPARS))         (PRINTOUT NIL "(" .P2 DEFINER %,)         (if (LISTP DEFINED)             then (PRINTOUT NIL "(" .FONT PRETTYCOMFONT .P2 (CAR DEFINED)                         .FONT DEFAULTFONT %, # (PRINTDEF (CDR DEFINED)                                                       T T T)                         ")")           else (PRINTOUT NIL .FONT PRETTYCOMFONT .P2 DEFINED .FONT DEFAULTFONT))         (if (LISTP (CAR DEFINE-EXPRESSION))             then (SPACES 1)                  (PRINTDEF (pop DEFINE-EXPRESSION)                         T NIL))         (if (OR (STRINGP (CAR DEFINE-EXPRESSION))                 (EQ (CAR (LISTP (CAR DEFINE-EXPRESSION)))                     COMMENTFLG))             then (SPACES 1)                  (PRINTDEF (pop DEFINE-EXPRESSION)                         T T))         (if (NOT (FITP DEFINE-EXPRESSION T T))             then (TERPRI)                  (DSPXPOSITION CURRENT)                  (SPACES 3)           else (SPACES 1))         (PROGN (PRINTDEF DEFINE-EXPRESSION T T T)                (PRIN1 ")" NIL)                (TERPRI NIL)))))(\DEFINE-TYPE-GETDEF  (LAMBDA (ITEM TYPE OPTIONS)                                (* lmm " 5-Jun-86 03:22")                    (* GETDEF method for all definers. The EDIT is so that when you say EDITDEF you           get a copy & can know when you made edits)    (AND (SYMBOLP ITEM)         (COND            ((EQMEMB (QUOTE EDIT)                    OPTIONS)             (COPY (GET ITEM TYPE)))            (T (GET ITEM TYPE)))))))(PUTPROPS DEFDEFINER MACRO-FN expand-DEFDEFINER)(PUTPROPS WITHOUT-FILEPKG MACRO-FN expand-WITHOUT-FILEPKG)(DEFINEQ(expand-DEFDEFINER  (LAMBDA ($$MACRO-FORM $$MACRO-ENVIRONMENT)                 (* lmm "30-May-86 16:51")    (CL:DECLARE (IGNORE $$MACRO-ENVIRONMENT))    (CL:BLOCK     DEFDEFINER     (LET*      ((A0225 (CDR $$MACRO-FORM))       (%%ORIGINAL-DEFINITION $$MACRO-FORM)       (NAME (CAR A0225))       (A0226 (CDR A0225))       (TYPE (CAR A0226))       (A0227 (CDR A0226))       (ARGLIST (CAR A0227))       (A0228 (CDR A0227))       (BODY A0228))      (BQUOTE       (PROGN        (WITHOUT-FILEPKG         (\,          (PROGN           (BQUOTE            (PROGN             (DEFMACRO (\, NAME) (&WHOLE %%ORIGINAL-DEFINITION (\,@ ARGLIST))                (BQUOTE (PROGN (WITHOUT-FILEPKG (\, (PROGN (\,@ BODY))))                               (\,@ (AND FILEPKGFLG (BQUOTE                                                     ((EVAL-WHEN (CL:EVAL)                                                             (PUTPROPS (\, NAME)                                                                    (\, (QUOTE (\, TYPE)))                                                                    (\, %%ORIGINAL-DEFINITION)))))))                               (QUOTE (\, NAME)))))             (WITHOUT-FILEPKG (ADDTOVAR PRETTYPRINTMACROS ((\, NAME) . PPRINT-DEFINER)))             (QUOTE (\, NAME)))))))        (\,@ (AND FILEPKGFLG (BQUOTE ((EVAL-WHEN (CL:EVAL)                                             (PUTPROPS (\, NAME)                                                    (\, (QUOTE FUNCTIONS))                                                    (\, %%ORIGINAL-DEFINITION)))))))        (QUOTE (\, NAME))))))))(expand-WITHOUT-FILEPKG  (LAMBDA ($$MACRO-FORM $$MACRO-ENVIRONMENT)    (DECLARE (IGNORE $$MACRO-ENVIRONMENT))                   (* lmm "30-May-86 17:07")    (CL:BLOCK WITHOUT-FILEPKG (LET* ((A3574 (CDR $$MACRO-FORM))                                     (BODY A3574))                                    (BQUOTE (PROGN (EVAL-WHEN (LOAD)                                                          (\,@ BODY))                                                   (EVAL-WHEN (CL:EVAL)                                                          (AND (NEQ DFNFLG (QUOTE PROP))                                                               (LET (FILEPKGFLG (DFNFLG T))                                                                    (DECLARE (SPECIAL FILEPKGFLG                                                                                     DFNFLG))                                                                    (\,@ BODY)))))))))))(ADDTOVAR FILEPKGTYPES DEFINE-TYPES FUNCTIONS)(DEFDEFINER DEFDEFINER   FUNCTIONS (NAME TYPE ARGLIST &BODY BODY)         (BQUOTE (PROGN (DEFMACRO (\, NAME) (&WHOLE %%ORIGINAL-DEFINITION (\,@ ARGLIST))                           (BQUOTE (PROGN (WITHOUT-FILEPKG (\, (PROGN (\,@ BODY))))                                          (EVAL-WHEN (CL:EVAL)                                                 (AND FILEPKGFLG (PUTPROPS (\, NAME)                                                                        (\, (QUOTE (\, TYPE)))                                                                        (\, %%ORIGINAL-DEFINITION))))                                          (QUOTE (\, NAME)))))                        (WITHOUT-FILEPKG (ADDTOVAR PRETTYPRINTMACROS ((\, NAME) . PPRINT-DEFINER)))                        (QUOTE (\, NAME)))))(DEFDEFINER DEF-DEFINE-TYPE   DEFINE-TYPES (NAME DESCRIPTION)         (BQUOTE (PROGN                                      (* This definition is a hokey way of                                                              defining a file package type that                                                              works even before the file package is                                                              loaded)                        (ADDTOVAR PRETTYDEFMACROS                               ((\, NAME)                                X                                (P * (MAPCAR (QUOTE X)                                            (FUNCTION (LAMBDA (ITEM)                                                        (CL:DO ((DEF (GET ITEM (QUOTE (\, NAME)))))                                                               (DEF DEF)                                                               (CERROR "Re-fetch the definition"                                                                       "No ~S definition for ~S"                                                                      (QUOTE (\, NAME))                                                                      ITEM))))))))                        (ADDTOVAR PRETTYTYPELST ((\, (LET ((VAR (PACK* "CHANGED" NAME "LST")))                                                          (OR (BOUNDP VAR)                                                              (SET VAR))                                                          VAR))                                                 (\, NAME)                                                 (\, DESCRIPTION)))                        (ADDTOVAR FILEPKGTYPES (\, NAME))                        (PUTPROPS (\, NAME)                               GETDEF \DEFINE-TYPE-GETDEF)                        (PUTPROPS (\, NAME)                               FILEPKGCONTENTS NILL)                        (PUTPROPS (\, NAME)                               PROPTYPE                               (\, NAME)))))(DEFMACRO WITHOUT-FILEPKG (&BODY BODY) (BQUOTE (PROGN (EVAL-WHEN (CL:LOAD)                                                             (\,@ BODY))                                                      (EVAL-WHEN                                                       (CL:EVAL)                                                       (AND (NEQ DFNFLG (QUOTE PROP))                                                            (LET (FILEPKGFLG (DFNFLG T))                                                                 (DECLARE (SPECIAL FILEPKGFLG DFNFLG)                                                                        )                                                                 (\,@ BODY)))))))(DEF-DEFINE-TYPE DEFINE-TYPES "Common Lisp definition type" )(DEF-DEFINE-TYPE FUNCTIONS "Common Lisp functions" )(DEF-DEFINE-TYPE VARIABLES "Common Lisp variables" )(DEFDEFINER DEFUN FUNCTIONS (NAME ARGS &BODY (BODY DECLS DOCUMENTATION))                        (BQUOTE (SETF (SYMBOL-FUNCTION (QUOTE (\, NAME)))                                      (CL:FUNCTION (CL:LAMBDA (\, ARGS)                                                          (\,@ DECLS)                                                          (CL:BLOCK (\, NAME)                                                                 (\,@ BODY)))))))(DEFDEFINER DEFMACRO FUNCTIONS (NAME DEFMACRO-ARGS &BODY DEFMACRO-BODY)                           (LET ((CMACRONAME (PACK* "expand-" NAME)))                                (MULTIPLE-VALUE-BIND                                 (PARSED-BODY PARSED-DECLARATIONS PARSED-DOCSTRING)                                 (PARSE-DEFMACRO DEFMACRO-ARGS (QUOTE $$MACRO-FORM)                                        DEFMACRO-BODY NAME NIL :ENVIRONMENT (QUOTE                                                                                   $$MACRO-ENVIRONMENT                                                                                   ))                                 (BQUOTE (EVAL-WHEN (CL:EVAL CL:COMPILE CL:LOAD)                                                (SETF (SYMBOL-FUNCTION (QUOTE (\, CMACRONAME)))                                                      (CL:FUNCTION (CL:LAMBDA ($$MACRO-FORM                                                                                   $$MACRO-ENVIRONMENT                                                                                     )                                                                          (\,@ PARSED-DECLARATIONS)                                                                          (CL:BLOCK (\, NAME)                                                                                 (\, PARSED-BODY)))))                                                (SETF (MACRO-FUNCTION (QUOTE (\, NAME)))                                                      (QUOTE (\, CMACRONAME))))))))(DEFMACRO CL:DEFMACRO (&REST X) (CONS (QUOTE DEFMACRO)                                      X))(DEFDEFINER DEFVAR VARIABLES                   (NAME &OPTIONAL (INITIAL-VALUE NIL IVP)                         DOCUMENTATION)                   (BQUOTE (PROGN (\,@ (if IVP                                           then (BQUOTE ((OR (BOUNDP (QUOTE (\, NAME)))                                                             (SETQ (\, NAME)                                                              (\, INITIAL-VALUE)))))))                                  (PROCLAIM (QUOTE (SPECIAL (\, NAME)))))))(DEFDEFINER DEFPARAMETER VARIABLES (NAME INITIAL-VALUE &OPTIONAL DOCUMENTATION)                               (BQUOTE (PROGN (SETQ (\, NAME)                                               (\, INITIAL-VALUE))                                              (PUT (QUOTE (\, NAME))                                                   (QUOTE GLOBALVAR)                                                   T))))(DEFDEFINER DEFCONSTANT VARIABLES (NAME VALUE &OPTIONAL DOCUMENTATION)                              (BQUOTE (PROGN (SETQ (\, NAME)                                              (\, VALUE))                                             (PUTHASH (QUOTE (\, NAME))                                                    (QUOTE (CONSTANT (\, NAME)))                                                    COMPVARMACROHASH))))(PUTPROPS FUNCTIONS FILEPKGCONTENTS NILL)(* don't note file package changes to MACRO-FN)(PUTPROPS MACRO-FN PROPTYPE FUNCTIONS)(PUTPROPS CMLDEFFER FILETYPE COMPILE-FILE)(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA )(ADDTOVAR NLAML )(ADDTOVAR LAMA ))(PUTPROPS CMLDEFFER COPYRIGHT ("Xerox Corporation" 1986))(DECLARE: DONTCOPY  (FILEMAP (NIL (1437 3359 (PPRINT-DEFINER 1447 . 2897) (\DEFINE-TYPE-GETDEF 2899 . 3357)) (3478 6096 (expand-DEFDEFINER 3488 . 5131) (expand-WITHOUT-FILEPKG 5133 . 6094)))))STOP