(FILECREATED "25-JAN-83 16:38:09" {PHYLUM}<LISPUSERS>COMPILEFORMSLIST.;2 1440   

      changes to:  (FNS COMPILEFORMSLIST)

      previous date: "17-JAN-79 08:20:41" {PHYLUM}<LISPUSERS>COMPILEFORMSLIST.;1)


(* Copyright (c) 1983 by Xerox Corporation)

(PRETTYCOMPRINT COMPILEFORMSLISTCOMS)

(RPAQQ COMPILEFORMSLISTCOMS [(FNS COMPILEFORMSLIST)
			     (DECLARE: EVAL@COMPILE DONTCOPY (P (RESETSAVE DWIMIFYCOMPFLG T])
(DEFINEQ

(COMPILEFORMSLIST
  [LAMBDA (VAR)                                              (* bas: "25-JAN-83 16:37")

          (* Compiles the list of forms bound to VAR (e.g. AFTERSYSOUTFORMS) as a single function and changes the binding of
	  VAR to a single form calling that function)


    (if (LISTP (GETATOMVAL VAR))
	then (RESETVARS (LAPFLG SVFLG LCFIL (STRF T)
				(LSTFIL T))
		        (PROG [(FN (PACK* VAR (GENSYM)))
			       (DEF (CONS (QUOTE LAMBDA)
					  (CONS NIL (GETATOMVAL VAR]
			      (if (EQ FN (if BYTECOMPFLG
					     then (BYTECOMPILE2 FN DEF)
					   else (COMPILE2 FN DEF)))
				  then                       (* Otherwise compiler failed)
				       (PUT FN (QUOTE EXPR)
					    DEF)             (* Save symbolics for future reference)
				       (SETATOMVAL VAR (LIST (LIST FN])
)
(DECLARE: EVAL@COMPILE DONTCOPY 
(RESETSAVE DWIMIFYCOMPFLG T)
)
(PUTPROPS COMPILEFORMSLIST COPYRIGHT ("Xerox Corporation" 1983))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (426 1289 (COMPILEFORMSLIST 436 . 1287)))))
STOP