(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(FILECREATED "23-May-90 13:18:14" |{DSK}<usr>local>lde>lispcore>sources>XCLC-RUNTIME.;2| 1859   

      |changes| |to:|  (VARS XCLC-RUNTIMECOMS)

      |previous| |date:| "29-Oct-86 13:53:23" |{DSK}<usr>local>lde>lispcore>sources>XCLC-RUNTIME.;1|
)


; Copyright (c) 1986, 1990 by Venue & Xerox Corporation.  All rights reserved.

(PRETTYCOMPRINT XCLC-RUNTIMECOMS)

(RPAQQ XCLC-RUNTIMECOMS (

(* |;;;| "Runtime support for functions compiled by the XCL compiler.")

                             (FUNCTIONS SI::ARGUMENT-ERROR)
                             
                             (* |;;| "Arrange to use the proper compiler")

                             (PROP FILETYPE XCLC-RUNTIME)))



(* |;;;| "Runtime support for functions compiled by the XCL compiler.")


(CL:DEFUN SI::ARGUMENT-ERROR (SI::MIN-ARGS SI::MAX-ARGS)

   (* |;;| 
 "Runtime support function for code compiled with the new compiler.  MUST BE RUN COMPILED!")

   (LET* ((SI::FRAME (STKNTH -2))
          (SI::FRAME-NAME (STKNAME SI::FRAME))
          (SI::NUM-ARGS (STKNARGS SI::FRAME)))
         (COND
            ((< SI::NUM-ARGS SI::MIN-ARGS)
             (CL:ERROR 'TOO-FEW-ARGUMENTS :CALLEE SI::FRAME-NAME :MINIMUM SI::MIN-ARGS :ACTUAL 
                    SI::NUM-ARGS))
            ((AND (NOT (NULL SI::MAX-ARGS))
                  (> SI::NUM-ARGS SI::MAX-ARGS))
             (CL:ERROR 'TOO-MANY-ARGUMENTS :CALLEE SI::FRAME-NAME :MAXIMUM SI::MAX-ARGS :ACTUAL 
                    SI::NUM-ARGS))
            (T (CL:ERROR "BUG: SI::ARGUMENT-ERROR called when no error exists!")))))



(* |;;| "Arrange to use the proper compiler")


(PUTPROPS XCLC-RUNTIME FILETYPE CL:COMPILE-FILE)
(PUTPROPS XCLC-RUNTIME COPYRIGHT ("Venue & Xerox Corporation" 1986 1990))
(DECLARE\: DONTCOPY
  (FILEMAP (NIL)))
STOP
