(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED "18-Feb-2026 16:23:37" {WMEDLEY}<lispusers>compilebang.;2 3232   

      :EDIT-BY rmk

      :PREVIOUS-DATE "22-Dec-86 18:42:34" {WMEDLEY}<lispusers>compilebang.;1)


(PRETTYCOMPRINT COMPILEBANGCOMS)

(RPAQQ COMPILEBANGCOMS ((FNS COMPILE!)
                        (LISPXMACROS C)
                        (USERMACROS C)
                        (COMMANDS C)
                        (PROP FILETYPE COMPILEBANG)))
(DEFINEQ

(COMPILE!
  [LAMBDA (X NOSAVE NOREDEFINE PRINTLAP)                     (* bvm%: "10-MAR-83 12:48")
    (DECLARE (SPECVARS LCFIL LAPFLG STRF SVFLG LSTFIL SPECVARS LOCALVARS NLAMA NLAML LAMS LAMA 
                    NOFIXFNSLST NOFIXVARSLST))
          
          (* ;; "In-core compiling for functions and forms, without the interview.  If X is a list, we assume that we are being called merely to display the lap and machine code.  THe form is compiled as the definition of FOO but the compiled code is thrown away.  --- If X is a litatom, then saving, redefining, and printing is controlled by the flags.")

    (RESETLST                                                (* ; 
             "RESETLST to provide reset context for macros under COMPILE1 as generated e.g. by DECL.")
           (LET ((LCFIL)
                 [LAPFLG (AND PRINTLAP (COND
                                          (BYTECOMPFLG T)
                                          (T 2]
                 (STRF (NOT NOREDEFINE))
                 (SVFLG (NOT NOSAVE))
                 (LSTFIL T)
                 (SPECVARS T)
                 (LOCALVARS (COND
                               ((NEQ LOCALVARS T)
                                (UNION SYSLOCALVARS LOCALVARS))
                               (T SYSLOCALVARS)))
                 (NLAMA NLAMA)
                 (NLAML NLAML)
                 (LAMS LAMS)
                 (LAMA LAMA)
                 (NOFIXFNSLST NOFIXFNSLST)
                 (NOFIXVARSLST NOFIXVARSLST))
                (COMPILE1 (COND
                             ((LITATOM X)
                              X)
                             (T '*DUMMY-COMPILED-FUNCTION*))
                       (COND
                          ((NLISTP X)
                           (VIRGINFN X T))
                          ((ARGTYPE X)
                           X)
                          (T (LIST 'LAMBDA NIL X)))
                       T])
)

(ADDTOVAR LISPXMACROS (C (COND (LISPXLINE (COMPILE! (CAR LISPXLINE)
                                                 NIL NIL T))
                               (T C))))

(ADDTOVAR USERMACROS
          [C NIL (ORR (UP 1)
                      NIL)
             (ORR ((E (COMPILE! (OR (LISTP (%##))
                                    (%## !0))
                             T T T)))
                  ((E 'C?])

(ADDTOVAR EDITCOMSA C)

(DEFCOMMAND (C :EVAL) (&REST LISPXLINE) (COND
                                           (LISPXLINE (COMPILE! (CAR LISPXLINE)
                                                             NIL NIL T))
                                           (T C)))

(PUTPROPS COMPILEBANG FILETYPE CL:COMPILE-FILE)
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (506 2451 (COMPILE! 516 . 2449)))))
STOP
