(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