(FILECREATED "11-Jun-86 12:05:32" {ERIS}<DANIELS>CML>CMLDEFFER.;1 15019 changes to: (FUNCTIONS DEF-DEFINE-TYPE) previous date: " 6-Jun-86 01:51:04" {ERIS}<LISPCORE>LIBRARY>CMLDEFFER.;34) (* 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 expand-WITHOUT-FILEPKG expand-DEFDEFINER))))) (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))) (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 LOAD) (SETF (SYMBOL-FUNCTION (QUOTE (\, CMACRONAME))) (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 expand-WITHOUT-FILEPKG expand-DEFDEFINER) ) (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))))) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA ) (ADDTOVAR NLAML ) (ADDTOVAR LAMA ) ) (PUTPROPS CMLDEFFER COPYRIGHT ("Xerox Corporation" 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL (1394 3316 (PPRINT-DEFINER 1404 . 2854) (\DEFINE-TYPE-GETDEF 2856 . 3314)) (3435 6053 ( expand-DEFDEFINER 3445 . 5088) (expand-WITHOUT-FILEPKG 5090 . 6051))))) STOP