Skip to content

Instantly share code, notes, and snippets.

@sgithens
Created April 6, 2022 21:39
Show Gist options
  • Save sgithens/ae191fb18b360a70000051cbfc4bae0e to your computer and use it in GitHub Desktop.
Save sgithens/ae191fb18b360a70000051cbfc4bae0e to your computer and use it in GitHub Desktop.
CL-USER 7 > (pprint (macroexpand-1 '(boxer-eval::evaluator-body (2) nil)))
(BOXER-EVAL::WITH-EVALUATOR-STATE-VARIABLES-AND-UNWIND-PROTECT
(BOXER-EVAL::INIT-TIMING)
(BOXER-EVAL::TRACE-ENTERING EVAL)
(SETQ BOXER-EVAL::*POLL-COUNT* BOXER-EVAL::*INITIAL-POLL-COUNT*)
(TAGBODY
BOXER-EVAL::STANDARD-ENTRY (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::STANDARD-ENTRY)
(WHEN (NULL NIL)
(SETQ BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*NOVALUE*)
(SETQ BOXER-EVAL::*PROCESS-STATE* :RUN)
(SETQ BOXER-EVAL::*EXECUTING-POINTER* (2))
(SETQ BOXER-EVAL::*EXECUTING-LINE* BOXER-EVAL::*EXECUTING-LINE*)
(GO BOXER-EVAL::EVAL-LOOP))
BOXER-EVAL::CONTINUE-PROCESS (IF (EQ BOXER-EVAL::*CURRENT-PROCESS* NIL)
(WARN "Trying to Switch to the same process in CONTINUE-PROCESS: ~A" BOXER-EVAL::*CURRENT-PROCESS*)
(PROGN
(UNLESS (NULL NIL) (SETQ BOXER-EVAL::*CURRENT-PROCESS* NIL))
(BOXER-EVAL::RETRIEVE-EVALUATOR-STATE)
(CASE BOXER-EVAL::*PC* (:SFUNCALL-CONTINUATION-DISPATCH (GO BOXER-EVAL::SFUNCALL-CONTINUATION-DISPATCH)))))
BOXER-EVAL::EVAL-LOOP (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EVAL-LOOP BOXER-EVAL::*EXECUTING-POINTER*)
(SETQ BOXER-EVAL::*PC* :EVAL-LOOP)
(LET ((BOXER-EVAL::POLL-RESULT (BOXER-EVAL::POLL)))
(COND ((NULL BOXER-EVAL::POLL-RESULT))
((EQ BOXER-EVAL::POLL-RESULT :PAUSE)
(BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::PROCESS-PAUSE BOXER-EVAL::*CURRENT-PROCESS*)
(BOXER-EVAL::STORE-EVALUATOR-STATE)
(COND ((NULL BOXER-EVAL::*BOXER-PROCESSES*) (SETQ BOXER-EVAL::*BOXER-PROCESSES* (LIST BOXER-EVAL::*CURRENT-PROCESS*)))
((BOXER:FAST-MEMQ BOXER-EVAL::*CURRENT-PROCESS* BOXER-EVAL::*BOXER-PROCESSES*))
(T (NCONC (LAST BOXER-EVAL::*BOXER-PROCESSES*) (LIST BOXER-EVAL::*CURRENT-PROCESS*))))
(OR (EQ (BOXER-EVAL::PROCESS-VARIABLE BOXER-EVAL::*CURRENT-PROCESS* BOXER-EVAL::*PROCESS-STATE*) :TOPLEVEL)
(SETQ BOXER-EVAL::*CURRENT-PROCESS* (BOXER-EVAL::GET-TOPLEVEL-PROCESS))
(BOXER-EVAL::INIT-PROCESS-STATE-VECTOR))
(BOXER-EVAL::RETRIEVE-EVALUATOR-STATE)
(SETQ BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*NOVALUE*)
(GO BOXER-EVAL::EXIT-EVAL))
((SIMPLE-VECTOR-P BOXER-EVAL::POLL-RESULT)
(BOXER-EVAL::STORE-EVALUATOR-STATE)
(SETQ BOXER-EVAL::*CURRENT-PROCESS* BOXER-EVAL::POLL-RESULT)
(BOXER-EVAL::RETRIEVE-EVALUATOR-STATE)
(BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::PROCESS-SWITCH
BOXER-EVAL::*CURRENT-PROCESS*
BOXER-EVAL::POLL-RESULT
BOXER-EVAL::*EXECUTING-POINTER*)
(CASE BOXER-EVAL::*PC* (:SFUNCALL-CONTINUATION-DISPATCH (GO BOXER-EVAL::SFUNCALL-CONTINUATION-DISPATCH))))
(T (BOXER-EVAL::HANDLE-INTERRUPT-CHAR) (WHEN (NOT (NULL BOXER-EVAL::*EXCEPTION-SIGNALLED*)) (GO BOXER-EVAL::HANDLE-EXCEPTION)))))
BOXER-EVAL::EVAL-LOOP-SKIP-POLL-AND-ERRORS (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EVAL-LOOP-SKIP-POLL-AND-ERRORS)
BOXER-EVAL::TOKEN-DISPATCH-IGNORE-DEFINITIONS-LOOP (SETQ BOXER-EVAL::*THING-POINTER* (CAR BOXER-EVAL::*EXECUTING-POINTER*))
(WHEN (EQ BOXER-EVAL::*THING-POINTER* 'BOXER-EVAL::*IGNORING-DEFINITION-OBJECT*)
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-ADVANCE-TOKEN) (BOXER-EVAL::STEP-REDISPLAY))
(SETQ BOXER-EVAL::*EXECUTING-POINTER* (CDR BOXER-EVAL::*EXECUTING-POINTER*))
(GO BOXER-EVAL::TOKEN-DISPATCH-IGNORE-DEFINITIONS-LOOP))
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-EVAL:LIST-REST
(BOXER-EVAL::VPDL-PUSH BOXER-EVAL::*EXECUTING-POINTER*)
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-HANDLE-LIST-REST-ARG) (BOXER-EVAL::STEP-REDISPLAY))
(SETQ BOXER-EVAL::*EXECUTING-POINTER* NIL)
(GO BOXER-EVAL::GOT-VALUE))
(BOXER-USER::BOX-REST
(BOXER-EVAL::VPDL-PUSH (BOXER:MAKE-VC (LIST BOXER-EVAL::*EXECUTING-POINTER*)))
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-HANDLE-LIST-REST-ARG) (BOXER-EVAL::STEP-REDISPLAY))
(SETQ BOXER-EVAL::*EXECUTING-POINTER* NIL)
(GO BOXER-EVAL::GOT-VALUE)))
(WHEN (NULL BOXER-EVAL::*EXECUTING-POINTER*) (GO BOXER-EVAL::EVAL-DONE-WITH-LINE))
BOXER-EVAL::RAW-TOKEN-DISPATCH (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::RAW-TOKEN-DISPATCH BOXER-EVAL::*THING-POINTER*)
(COND ((SYMBOLP BOXER-EVAL::*THING-POINTER*) (GO SYMBOL))
((NUMBERP BOXER-EVAL::*THING-POINTER*) (GO NUMBER))
((BOXER:FAST-EVAL-DATA-BOX? BOXER-EVAL::*THING-POINTER*)
(COND ((BOXER::FAST-VC-HAS-SPRITE? BOXER-EVAL::*THING-POINTER*)
(SETQ BOXER-EVAL::*THING-POINTER* (BOXER:PORT-TO BOXER-EVAL::*THING-POINTER*))
(GO BOXER-EVAL::PORT))
(T (GO BOXER-EVAL::DATA-BOX))))
((BOXER:FAST-EVAL-DOIT-BOX? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::DOIT-BOX))
((BOXER:FAST-EVAL-PORT-BOX? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::PORT))
((BOXER-EVAL::SPECIAL-TOKEN? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::SPECIAL-TOKEN))
((BOXER-EVAL::BOXER-FUNCTION? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::RAW-BOXER-FUNCTION))
((TYPEP BOXER-EVAL::*THING-POINTER* 'BOXER::FOREIGN-DATA) (GO BOXER-EVAL::FOREIGN-DATA))
(T
(BOXER-EVAL:SIGNAL-ERROR :EVAL-ERROR "unusual object encountered in eval:" BOXER-EVAL::*THING-POINTER*)
(GO BOXER-EVAL::HANDLE-EXCEPTION)))
NUMBER (BOXER-EVAL::TRACE-ENTERING NUMBER BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::WHEN-STEPPING (SETQ BOXER-EVAL::*THING-POINTER* (BOXER::DATA-BOXIFY BOXER-EVAL::*THING-POINTER*)) (GO BOXER-EVAL::DATA-BOX))
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:PORT-TO (SETQ BOXER-EVAL::*THING-POINTER* (BOXER:PORT-TO (BOXER::DATA-BOXIFY BOXER-EVAL::*THING-POINTER*))))
(OTHERWISE))
(GO BOXER-EVAL::SELF-EVALUATING-OBJECT)
BOXER-EVAL::EDITOR-DATA-BOX (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EDITOR-DATA-BOX BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::WHEN-STEPPING
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:PORT-TO (SETQ BOXER-EVAL::*THING-POINTER* (BOXER::PORT-TO-INTERNAL BOXER-EVAL::*THING-POINTER*)))
(BOXER-USER:DATAFY (GO BOXER-EVAL::DATAFY-OBJECT))
(BOXER-EVAL::DONT-COPY
(BOXER-EVAL::WHEN-STEPPING (SETQ BOXER-EVAL::*THING-POINTER* (BOXER::COPY-BOX BOXER-EVAL::*THING-POINTER* NIL))))
(OTHERWISE (SETQ BOXER-EVAL::*THING-POINTER* (BOXER::COPY-BOX BOXER-EVAL::*THING-POINTER* NIL))))
(GO BOXER-EVAL::SELF-EVALUATING-OBJECT))
(GO BOXER-EVAL::DATA-BOX)
BOXER-EVAL::DATA-BOX (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::DATA-BOX BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:PORT-TO (SETQ BOXER-EVAL::*THING-POINTER* (BOXER:PORT-TO BOXER-EVAL::*THING-POINTER*)))
(BOXER-USER:DATAFY (GO BOXER-EVAL::DATAFY-OBJECT))
(BOXER-EVAL::DONT-COPY
(BOXER-EVAL::WHEN-STEPPING (SETQ BOXER-EVAL::*THING-POINTER* (BOXER-EVAL::COPY-THING BOXER-EVAL::*THING-POINTER*))))
(OTHERWISE (SETQ BOXER-EVAL::*THING-POINTER* (BOXER-EVAL::COPY-THING BOXER-EVAL::*THING-POINTER*))))
(GO BOXER-EVAL::SELF-EVALUATING-OBJECT)
BOXER-EVAL::FOREIGN-DATA (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::FOREIGN-DATA BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:PORT-TO (SETQ BOXER-EVAL::*THING-POINTER* (BOXER:PORT-TO BOXER-EVAL::*THING-POINTER*)))
(BOXER-USER:DATAFY (GO BOXER-EVAL::DATAFY-OBJECT))
(BOXER-EVAL::DONT-COPY
(BOXER-EVAL::WHEN-STEPPING (SETQ BOXER-EVAL::*THING-POINTER* (BOXER-EVAL::COPY-THING BOXER-EVAL::*THING-POINTER*))))
(OTHERWISE (SETQ BOXER-EVAL::*THING-POINTER* (BOXER-EVAL::COPY-THING BOXER-EVAL::*THING-POINTER*))))
(GO BOXER-EVAL::SELF-EVALUATING-OBJECT)
BOXER-EVAL::DOIT-BOX (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::DOIT-BOX BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:DATAFY (GO BOXER-EVAL::DATAFY-OBJECT))
(OTHERWISE
(SETQ BOXER-EVAL::*FUNCTION* (BOXER-EVAL::CACHED-CODE-VIRTUAL-COPY BOXER-EVAL::*THING-POINTER*))
(GO BOXER-EVAL::EVAL-ARGS-SETUP)))
BOXER-EVAL::EDITOR-DOIT-BOX (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EDITOR-DOIT-BOX BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:DATAFY (GO BOXER-EVAL::DATAFY-OBJECT))
(OTHERWISE
(SETQ BOXER-EVAL::*FUNCTION* (BOXER-EVAL::CACHED-CODE-EDITOR-BOX BOXER-EVAL::*THING-POINTER*))
(GO BOXER-EVAL::EVAL-ARGS-SETUP)))
BOXER-EVAL::EDITOR-PORT (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EDITOR-PORT BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES (BOXER-USER:DATAFY (GO BOXER-EVAL::DATAFY-OBJECT)))
(LET ((BOXER-EVAL::TARGET (BOXER::GET-PORT-TARGET BOXER-EVAL::*THING-POINTER*)))
(COND ((NOT (BOXER:DOIT-BOX? BOXER-EVAL::TARGET))
(SETQ BOXER-EVAL::*THING-POINTER* (BOXER::MAKE-VIRTUAL-PORT-FROM-EDITOR-PORT BOXER-EVAL::*THING-POINTER*))
(GO BOXER-EVAL::SELF-EVALUATING-OBJECT))
(T
(SETQ BOXER-EVAL::*FUNCTION* (BOXER-EVAL::CACHED-CODE-EDITOR-PORT BOXER-EVAL::*THING-POINTER*))
(GO BOXER-EVAL::EVAL-ARGS-SETUP))))
BOXER-EVAL::PORT (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::PORT BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES (BOXER-USER:DATAFY (GO BOXER-EVAL::DATAFY-OBJECT)))
(LET ((BOXER-EVAL::TARGET (BOXER::VP-TARGET BOXER-EVAL::*THING-POINTER*)))
(COND ((OR (AND (BOXER-EVAL::POSSIBLE-EVAL-OBJECT? BOXER-EVAL::TARGET) (BOXER:FAST-EVAL-DATA-BOX? BOXER-EVAL::TARGET))
(NOT (BOXER:DOIT-BOX? BOXER-EVAL::TARGET)))
(GO BOXER-EVAL::SELF-EVALUATING-OBJECT))
(T
(SETQ BOXER-EVAL::*FUNCTION* (BOXER-EVAL::CACHED-CODE-VIRTUAL-PORT BOXER-EVAL::*THING-POINTER*))
(GO BOXER-EVAL::EVAL-ARGS-SETUP))))
BOXER-EVAL::SPECIAL-TOKEN (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::SPECIAL-TOKEN BOXER-EVAL::*THING-POINTER* BOXER-EVAL::*EXECUTING-POINTER*)
(COND ((BOXER-EVAL::UNBOX-TOKEN? BOXER-EVAL::*THING-POINTER*)
(SETQ BOXER-EVAL::*EXECUTING-POINTER*
(LIST* 'BOXER-USER::@ (BOXER-EVAL::SPECIAL-TOKEN-ITEM BOXER-EVAL::*THING-POINTER*) (CDR BOXER-EVAL::*EXECUTING-POINTER*)))
(SETQ BOXER-EVAL::*THING-POINTER* 'BOXER-USER::@)
(GO SYMBOL))
((BOXER-EVAL::PREVIOUS-TELL-ENVIRONMENT-TOKEN? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::PREVIOUS-TELL-ENVIRONMENT-TOKEN))
((BOXER-EVAL::DOTS-LIST-TOKEN? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::DOTS-LIST-TOKEN))
((BOXER-EVAL::SQUID-TOKEN? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::SELF-QUOTING-INTERNAL-DATUM))
((BOXER-EVAL::EVAL-IT-TOKEN? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::EVAL-IT-TOKEN))
(T
(BOXER-EVAL:SIGNAL-ERROR :EVAL-BUG "Unknown SPECIAL-TOKEN object: " BOXER-EVAL::*THING-POINTER*)
(GO BOXER-EVAL::HANDLE-EXCEPTION)))
BOXER-EVAL::PREVIOUS-TELL-ENVIRONMENT-TOKEN (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::PREVIOUS-TELL-ENVIRONMENT-TOKEN
BOXER-EVAL::*THING-POINTER*
BOXER-EVAL::*EXECUTING-POINTER*)
(GO SYMBOL)
BOXER-EVAL::EVAL-IT-TOKEN (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EVAL-IT-TOKEN BOXER-EVAL::*THING-POINTER* BOXER-EVAL::*EXECUTING-POINTER*)
(BOXER-EVAL:SIGNAL-ERROR :!-OUT-OF-PLACE "The ! character is used only inside BUILD. Maybe you want ^?")
(GO BOXER-EVAL::HANDLE-EXCEPTION)
BOXER-EVAL::DOTS-LIST-TOKEN (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::DOTS-LIST-TOKEN BOXER-EVAL::*THING-POINTER* BOXER-EVAL::*EXECUTING-POINTER*)
(GO SYMBOL)
SYMBOL (BOXER-EVAL::TRACE-ENTERING SYMBOL BOXER-EVAL::*THING-POINTER* BOXER-EVAL::*EXECUTING-POINTER*)
(WHEN (EQ BOXER-EVAL::*THING-POINTER* 'BOXER-USER::DONT-PORT)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:PORT-TO (SETQ BOXER-EVAL::*EXECUTING-POINTER* (CDR BOXER-EVAL::*EXECUTING-POINTER*))
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-ADVANCE-TOKEN) (BOXER-EVAL::STEP-REDISPLAY))
(SETQ BOXER-EVAL::*ARGLIST* (CONS (CDAR BOXER-EVAL::*ARGLIST*) (CDR BOXER-EVAL::*ARGLIST*)))
(GO BOXER-EVAL::EVAL-LOOP-SKIP-POLL-AND-ERRORS))))
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:DATAFY (UNLESS (EQ BOXER-EVAL::*THING-POINTER* 'BOXER-USER::@) (GO BOXER-EVAL::DATAFY-OBJECT))))
(LET ((BOXER-EVAL::VARIABLE-NAME BOXER-EVAL::*THING-POINTER*))
(SETQ BOXER-EVAL::*THING-POINTER*
(IF (SYMBOLP BOXER-EVAL::VARIABLE-NAME)
(BOXER-EVAL:BOXER-SYMEVAL BOXER-EVAL::VARIABLE-NAME)
(BOXER-EVAL::BOXER-SYMEVAL-SPECIAL-TOKEN BOXER-EVAL::VARIABLE-NAME)))
(WHEN BOXER-EVAL::*EXCEPTION-SIGNALLED* (GO BOXER-EVAL::HANDLE-EXCEPTION))
(COND ((NUMBERP BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:PORT-TO (BOXER-EVAL::BOXER-SET-INTERNAL BOXER-EVAL::VARIABLE-NAME
(SETQ BOXER-EVAL::*THING-POINTER*
(BOXER::DATA-BOXIFY BOXER-EVAL::*THING-POINTER*)))
(BOXER-EVAL::WHEN-STEPPING
(BOXER-EVAL::STEP-UPDATE-NUMBER-TO-BOX BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::STEP-REDISPLAY))
(GO BOXER-EVAL::DATA-BOX)))
(GO NUMBER))
((EQ BOXER-EVAL::*THING-POINTER* BOXER-EVAL::*NOVALUE*)
(BOXER-EVAL:SIGNAL-ERROR :UNBOUND-VARIABLE BOXER-EVAL::VARIABLE-NAME)
(GO BOXER-EVAL::HANDLE-EXCEPTION))
((BOXER-EVAL::EVAL-OBJECT? BOXER-EVAL::*THING-POINTER*)
(COND ((BOXER-EVAL::BOXER-FUNCTION? BOXER-EVAL::*THING-POINTER*)
(WHEN (BOXER-EVAL::BOXER-FUNCTION-INFIX-P BOXER-EVAL::*THING-POINTER*)
(COND ((EQ BOXER-EVAL::VARIABLE-NAME 'BOXER-USER::-)
(SETQ BOXER-EVAL::*THING-POINTER* (BOXER-EVAL::BOXER-TOPLEVEL-SYMEVAL 'BOXER-EVAL::%NEGATIVE-INTERNAL)))
(T (BOXER-EVAL:SIGNAL-ERROR :INFIX-OUT-OF-PLACE BOXER-EVAL::VARIABLE-NAME) (GO BOXER-EVAL::HANDLE-EXCEPTION))))
(SETQ BOXER-EVAL::*FUNCTION* BOXER-EVAL::*THING-POINTER*)
(GO BOXER-EVAL::EVAL-ARGS-SETUP))
((BOXER:FAST-EVAL-DOIT-BOX? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::DOIT-BOX))
((BOXER:FAST-EVAL-DATA-BOX? BOXER-EVAL::*THING-POINTER*)
(COND ((BOXER::FAST-VC-HAS-SPRITE? BOXER-EVAL::*THING-POINTER*)
(SETQ BOXER-EVAL::*THING-POINTER* (BOXER:PORT-TO BOXER-EVAL::*THING-POINTER*))
(GO BOXER-EVAL::PORT))
(T (GO BOXER-EVAL::DATA-BOX))))
((BOXER:FAST-EVAL-PORT-BOX? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::PORT))
((BOXER::VV-BOX-INTERFACE? BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:PORT-TO (SETQ BOXER-EVAL::*THING-POINTER*
(OR (BOXER::BOX-INTERFACE-BOX BOXER-EVAL::*THING-POINTER*)
(BOXER::CONNECT-AND-IMBED-INTERFACE-SLOT BOXER-EVAL::*THING-POINTER*)))
(GO BOXER-EVAL::EDITOR-DATA-BOX)))
(SETQ BOXER-EVAL::*THING-POINTER* (BOXER::BOX-INTERFACE-VALUE BOXER-EVAL::*THING-POINTER*))
(GO NUMBER))
((OR (BOXER::IV-BOX-INTERFACE? BOXER-EVAL::*THING-POINTER*) (BOXER::SV-BOX-INTERFACE? BOXER-EVAL::*THING-POINTER*))
(SETQ BOXER-EVAL::*THING-POINTER*
(OR (BOXER::BOX-INTERFACE-BOX BOXER-EVAL::*THING-POINTER*)
(BOXER::CONNECT-AND-IMBED-INTERFACE-SLOT BOXER-EVAL::*THING-POINTER*)))
(GO BOXER-EVAL::EDITOR-DATA-BOX))
(T
(BOXER-EVAL:SIGNAL-ERROR :EVAL-ERROR
"unusual object encountered in eval: variable"
BOXER-EVAL::VARIABLE-NAME
"value"
BOXER-EVAL::*THING-POINTER*
BOXER-EVAL::VARIABLE-NAME)
(GO BOXER-EVAL::HANDLE-EXCEPTION))))
((BOXER:SPRITE-BOX? BOXER-EVAL::*THING-POINTER*)
(SETQ BOXER-EVAL::*THING-POINTER* (BOXER:PORT-TO BOXER-EVAL::*THING-POINTER*))
(GO BOXER-EVAL::PORT))
((BOXER:DOIT-BOX? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::EDITOR-DOIT-BOX))
((BOXER:DATA-BOX? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::EDITOR-DATA-BOX))
((BOXER:PORT-BOX? BOXER-EVAL::*THING-POINTER*) (GO BOXER-EVAL::EDITOR-PORT))
(T
(BOXER-EVAL:SIGNAL-ERROR :EVAL-ERROR
"unusual object encountered in eval: variable"
BOXER-EVAL::VARIABLE-NAME
"value"
BOXER-EVAL::*THING-POINTER*
BOXER-EVAL::VARIABLE-NAME)
(GO BOXER-EVAL::HANDLE-EXCEPTION))))
BOXER-EVAL::RAW-BOXER-FUNCTION (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::RAW-BOXER-FUNCTION BOXER-EVAL::*EXECUTING-POINTER*)
(SETQ BOXER-EVAL::*FUNCTION* BOXER-EVAL::*THING-POINTER*)
BOXER-EVAL::EVAL-ARGS-SETUP (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EVAL-ARGS-SETUP BOXER-EVAL::*EXECUTING-POINTER*)
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-START-FUNCTION-SEQUENCE BOXER-EVAL::*FUNCTION*) (BOXER-EVAL::STEP-REDISPLAY))
(SETQ BOXER-EVAL::*EXECUTING-POINTER* (CDR BOXER-EVAL::*EXECUTING-POINTER*))
(WHEN (NULL (BOXER-EVAL::BOXER-FUNCTION-ARGLIST BOXER-EVAL::*FUNCTION*))
(COND ((BOXER-EVAL::INTERPRETED-BOXER-FUNCTION? BOXER-EVAL::*FUNCTION*) (GO BOXER-EVAL::UFUNCALL-NO-ARGS))
(T (SETQ BOXER-EVAL::*EXECUTING-SFUN* BOXER-EVAL::*FUNCTION*) (GO BOXER-EVAL::SFUNCALL-SKIP-ARGS))))
(BOXER-EVAL::WHEN-STEPPING
(BOXER-EVAL::PDL-PUSH-FRAME BOXER-EVAL::STEPPER-EVAL-ARGS-FRAME BOXER-EVAL::*STEPPER-ITEM-NO*)
(BOXER-EVAL::STEP-ADVANCE-TOKEN)
(BOXER-EVAL::STEP-REDISPLAY))
(BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::PUSH-EVAL-ARGS-FRAME BOXER-EVAL::*ARGLIST* BOXER-EVAL::*CURRENT-FUNCTION*)
(BOXER-EVAL::PDL-PUSH-FRAME BOXER-EVAL::EVAL-ARGS-FRAME BOXER-EVAL::*ARGLIST* BOXER-EVAL::*CURRENT-FUNCTION*)
(SETQ BOXER-EVAL::*CURRENT-FUNCTION* BOXER-EVAL::*FUNCTION*)
(SETQ BOXER-EVAL::*ARGLIST* (BOXER-EVAL::BOXER-FUNCTION-ARGLIST BOXER-EVAL::*CURRENT-FUNCTION*))
(GO BOXER-EVAL::CHECK-IF-ALL-ARGS)
BOXER-EVAL::DATAFY-OBJECT (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::DATAFY-OBJECT)
(SETQ BOXER-EVAL::*THING-POINTER* (BOXER::DATA-BOXIFY BOXER-EVAL::*THING-POINTER*))
BOXER-EVAL::SELF-EVALUATING-OBJECT (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::SELF-EVALUATING-OBJECT BOXER-EVAL::*THING-POINTER*)
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-SELF-EVALUATING-OBJECT BOXER-EVAL::*THING-POINTER*) (BOXER-EVAL::STEP-REDISPLAY))
BOXER-EVAL::SELF-QUOTING-INTERNAL-DATUM (SETQ BOXER-EVAL::*EXECUTING-POINTER* (CDR BOXER-EVAL::*EXECUTING-POINTER*))
(BOXER-EVAL::VPDL-PUSH BOXER-EVAL::*THING-POINTER*)
BOXER-EVAL::GOT-VALUE (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::GOT-VALUE)
(UNLESS (NULL BOXER-EVAL::*EXECUTING-POINTER*)
(LET ((BOXER-EVAL::NEXT-TOKEN (CAR BOXER-EVAL::*EXECUTING-POINTER*)))
(WHEN (AND (SYMBOLP BOXER-EVAL::NEXT-TOKEN)
(BOXER-EVAL::INFIX-FUNCTION-SYMBOL-P BOXER-EVAL::NEXT-TOKEN)
(NOT (AND BOXER-EVAL::*CURRENT-FUNCTION*
(NOT (SYMBOLP (CAR BOXER-EVAL::*ARGLIST*)))
(EQ (CAAR BOXER-EVAL::*ARGLIST*) 'BOXER-USER:DATAFY))))
(LET ((BOXER-EVAL::INFIX-FUNCTION (BOXER-EVAL::BOXER-TOPLEVEL-SYMEVAL BOXER-EVAL::NEXT-TOKEN)))
(WHEN (OR (NULL BOXER-EVAL::*CURRENT-FUNCTION*)
(BOXER:>& (BOXER-EVAL::BOXER-FUNCTION-PRECEDENCE BOXER-EVAL::INFIX-FUNCTION)
(BOXER-EVAL::BOXER-FUNCTION-PRECEDENCE BOXER-EVAL::*CURRENT-FUNCTION*)))
(BOXER-EVAL::WHEN-STEPPING
(BOXER-EVAL::STEP-HANDLE-INFIX-FUNCTION BOXER-EVAL::INFIX-FUNCTION BOXER-EVAL::NEXT-TOKEN)
(BOXER-EVAL::STEP-REDISPLAY)
(BOXER-EVAL::PDL-PUSH-FRAME BOXER-EVAL::STEPPER-EVAL-ARGS-FRAME BOXER-EVAL::*STEPPER-ITEM-NO*))
(BOXER-EVAL::PDL-PUSH-FRAME BOXER-EVAL::EVAL-ARGS-FRAME BOXER-EVAL::*ARGLIST* BOXER-EVAL::*CURRENT-FUNCTION*)
(SETQ BOXER-EVAL::*CURRENT-FUNCTION* BOXER-EVAL::INFIX-FUNCTION)
(SETQ BOXER-EVAL::*ARGLIST* (CDR (BOXER-EVAL::BOXER-FUNCTION-ARGLIST BOXER-EVAL::INFIX-FUNCTION)))
(SETQ BOXER-EVAL::*EXECUTING-POINTER* (CDR BOXER-EVAL::*EXECUTING-POINTER*))
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-ADVANCE-TOKEN) (BOXER-EVAL::STEP-ADVANCE-TOKEN) (BOXER-EVAL::STEP-REDISPLAY))
(GO BOXER-EVAL::EVAL-FINISHED-UNIT))))))
(COND ((NOT (NULL BOXER-EVAL::*CURRENT-FUNCTION*))
(SETQ BOXER-EVAL::*ARGLIST* (CDR BOXER-EVAL::*ARGLIST*))
(GO BOXER-EVAL::CHECK-IF-ALL-ARGS))
(T (SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER-EVAL::VPDL-POP)) (GO BOXER-EVAL::EVAL-FINISHED-UNIT)))
BOXER-EVAL::EVAL-FINISHED-UNIT (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EVAL-FINISHED-UNIT)
(GO BOXER-EVAL::EVAL-LOOP)
BOXER-EVAL::CHECK-IF-ALL-ARGS (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::CHECK-IF-ALL-ARGS BOXER-EVAL::*ARGLIST*)
(COND ((NULL BOXER-EVAL::*ARGLIST*) (GO FUNCALL)) (T (GO BOXER-EVAL::EVAL-FINISHED-UNIT)))
FUNCALL (IF (BOXER-EVAL::COMPILED-BOXER-FUNCTION? BOXER-EVAL::*CURRENT-FUNCTION*) (GO BOXER-EVAL::SFUNCALL) (GO BOXER-EVAL::UFUNCALL))
BOXER-EVAL::UFUNCALL (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::UFUNCALL BOXER-EVAL::*CURRENT-FUNCTION*)
(SETQ BOXER-EVAL::*FUNCTION* BOXER-EVAL::*CURRENT-FUNCTION*)
(BOXER-EVAL::PDL-POP-FRAME BOXER-EVAL::EVAL-ARGS-FRAME BOXER-EVAL::*ARGLIST* BOXER-EVAL::*CURRENT-FUNCTION*)
(BOXER-EVAL::WHEN-STEPPING
(LET ((BOXER-EVAL::IT BOXER-EVAL::*STEPPER-ITEM-NO*))
(BOXER-EVAL::PDL-POP-FRAME BOXER-EVAL::STEPPER-EVAL-ARGS-FRAME BOXER-EVAL::*STEPPER-ITEM-NO*)
(BOXER-EVAL::STEP-FINISH-EVAL-ARGS BOXER-EVAL::IT)))
BOXER-EVAL::UFUNCALL-NO-ARGS (SETQ BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*NOVALUE*)
(GO BOXER-EVAL::UFUNCALL-REALLY)
BOXER-EVAL::UFUNCALL-REALLY (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::UFUNCALL-REALLY)
(WHEN (BOXER-EVAL::INTERPRETED-BOXER-FUNCTION-LEXICAL-CALL-P BOXER-EVAL::*FUNCTION*)
(BOXER-EVAL::PDL-PUSH-FRAME BOXER-EVAL::DOIT-PORT-FUNCALL-FRAME
BOXER-EVAL:*LEXICAL-VARIABLES-ROOT*
BOXER-EVAL::*DYNAMIC-VARIABLES-BOTTOM*)
(SETQ BOXER-EVAL:*LEXICAL-VARIABLES-ROOT* (BOXER-EVAL::INTERPRETED-BOXER-FUNCTION-BACKPOINTER BOXER-EVAL::*FUNCTION*))
(SETQ BOXER-EVAL::*DYNAMIC-VARIABLES-BOTTOM* BOXER-EVAL::*DYNAMIC-VARIABLES-TOP*))
(BOXER-EVAL::WHEN-STEPPING
(LET ((BOXER-EVAL::ITEM-NO BOXER-EVAL::*STEPPER-ITEM-NO*))
(BOXER-EVAL::PDL-PUSH-FRAME BOXER-EVAL::STEPPER-UFUN-FRAME BOXER-EVAL::*STEPPER-ITEM-NO* BOXER-EVAL::*STEPPER-ROW-NO*)
(SETQ BOXER-EVAL::*STEPPER-ITEM-NO* 0 BOXER-EVAL::*STEPPER-ROW-NO* 0)
(BOXER-EVAL::STEPPER-ENTER-BOX BOXER-EVAL::ITEM-NO)))
(BOXER-EVAL::PDL-PUSH-FRAME BOXER-EVAL::UFUN-FRAME
BOXER-EVAL::*EXECUTING-FUNCTION*
BOXER-EVAL::*EXECUTING-LINE*
BOXER-EVAL::*EXECUTING-POINTER*
BOXER-EVAL::*RUN-LIST-SFUN-EPILOG-HANDLER*
BOXER-EVAL::*UFUNCALL-SFUN-EPILOG-HANDLER*
BOXER-EVAL::*CURRENT-FUNCTION*)
(SETQ BOXER-EVAL::*RUN-LIST-SFUN-EPILOG-HANDLER* NIL)
(SETQ BOXER-EVAL::*UFUNCALL-SFUN-EPILOG-HANDLER* NIL)
(SETQ BOXER-EVAL::*EXECUTING-FUNCTION* BOXER-EVAL::*FUNCTION*)
(SETQ BOXER-EVAL::*EXECUTING-LINE* (BOXER-EVAL::INTERPRETED-BOXER-FUNCTION-TEXT BOXER-EVAL::*FUNCTION*))
(SETQ BOXER-EVAL::*CURRENT-FUNCTION* NIL)
(BOXER-EVAL::DYNAMICALLY-BIND-VARIABLES-AND-LOCALS (BOXER-EVAL::INTERPRETED-BOXER-FUNCTION-REVERSED-ARG-NAMES BOXER-EVAL::*FUNCTION*)
(BOXER-EVAL::INTERPRETED-BOXER-FUNCTION-LOCALS BOXER-EVAL::*FUNCTION*))
(BOXER-EVAL::WHEN-STEPPING
(UNLESS (NULL (BOXER-EVAL::INTERPRETED-BOXER-FUNCTION-ARGLIST BOXER-EVAL::*FUNCTION*))
(BOXER-EVAL::STEP-REPLACE-INPUT-LINE-WITH-VALUES (BOXER-EVAL::INTERPRETED-BOXER-FUNCTION-ARGLIST BOXER-EVAL::*FUNCTION*)))
(BOXER-EVAL::STEP-REDISPLAY)
(BOXER-EVAL::STEP-ADVANCE-LINE)
(BOXER-EVAL::STEP-REDISPLAY))
(WHEN (NULL BOXER-EVAL::*EXECUTING-LINE*) (GO BOXER-EVAL::UFUNCALL-RETURN))
(SETQ BOXER-EVAL::*EXECUTING-POINTER* (CAR BOXER-EVAL::*EXECUTING-LINE*))
(GO BOXER-EVAL::EVAL-LOOP)
BOXER-EVAL::TAIL-RECURSE (GO BOXER-EVAL::UFUNCALL-REALLY)
BOXER-EVAL::SFUNCALL (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::SFUNCALL BOXER-EVAL::*CURRENT-FUNCTION*)
(SETQ BOXER-EVAL::*EXECUTING-SFUN* BOXER-EVAL::*CURRENT-FUNCTION*)
(BOXER-EVAL::PDL-POP-FRAME BOXER-EVAL::EVAL-ARGS-FRAME BOXER-EVAL::*ARGLIST* BOXER-EVAL::*CURRENT-FUNCTION*)
(BOXER-EVAL::WHEN-STEPPING
(LET ((BOXER-EVAL::IT BOXER-EVAL::*STEPPER-ITEM-NO*))
(BOXER-EVAL::PDL-POP-FRAME BOXER-EVAL::STEPPER-EVAL-ARGS-FRAME BOXER-EVAL::*STEPPER-ITEM-NO*)
(BOXER-EVAL::STEP-FINISH-EVAL-ARGS BOXER-EVAL::IT)))
BOXER-EVAL::SFUNCALL-SKIP-ARGS (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::SFUNCALL-SKIP-ARGS)
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEPPER-ENTER-BOX BOXER-EVAL::*STEPPER-ITEM-NO*))
(SETQ BOXER-EVAL::*SFUN-CONTINUATION* 'BOXER-EVAL::*STD-SFUN-CONTINUATION*)
(SETQ BOXER-EVAL::*RETURNED-VALUE*
(CATCH 'BOXER-EVAL::BOXER-PRIMITIVE-ERROR-SIGNAL
(IF (TYPEP (BOXER-EVAL::COMPILED-BOXER-FUNCTION-OBJECT BOXER-EVAL::*EXECUTING-SFUN*) 'BOXER::COMPILED-BOXER-OBJECT)
(BOXER::FUNCALL-COMPILED-BOXER-FUNCTION (BOXER-EVAL::COMPILED-BOXER-FUNCTION-OBJECT BOXER-EVAL::*EXECUTING-SFUN*))
(FUNCALL (BOXER-EVAL::COMPILED-BOXER-FUNCTION-OBJECT BOXER-EVAL::*EXECUTING-SFUN*)))))
(SETQ BOXER-EVAL::*FUNCTION* BOXER-EVAL::*EXECUTING-SFUN*)
(SETQ BOXER-EVAL::*EXECUTING-SFUN* NIL)
(WHEN (NOT (NULL BOXER-EVAL::*TRIGGER-LIST-TO-RUN*))
(SETQ BOXER-EVAL::*RETURNED-VALUE*
(BOXER-EVAL::HANDLE-TRIGGER-LIST-IN-EVAL BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*EXECUTING-POINTER*)))
BOXER-EVAL::SFUNCALL-CONTINUATION-DISPATCH (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::SFUNCALL-CONTINUATION-DISPATCH
BOXER-EVAL::*SFUN-CONTINUATION*
BOXER-EVAL::*RETURNED-VALUE*)
(CASE BOXER-EVAL::*SFUN-CONTINUATION*
(BOXER-EVAL::*STD-SFUN-CONTINUATION* (GO BOXER-EVAL::SFUNCALL-RETURN))
(BOXER-EVAL::*MACROEXPAND-SFUN-CONTINUATION*
(BOXER-EVAL::WHEN-STEPPING
(WHEN (NUMBERP BOXER-EVAL::*RETURNED-VALUE*) (SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER::DATA-BOXIFY BOXER-EVAL::*RETURNED-VALUE*)))
(BOXER-EVAL::STEP-FUNCTION-RETURN-SEQUENCE BOXER-EVAL::*RETURNED-VALUE*)
(BOXER-EVAL::STEP-REDISPLAY))
(SETQ BOXER-EVAL::*THING-POINTER* BOXER-EVAL::*RETURNED-VALUE*)
(SETQ BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*NOVALUE*)
(GO BOXER-EVAL::RAW-TOKEN-DISPATCH))
(BOXER-EVAL::*UFUNCALL-SFUN-RESULT-SFUN-CONTINUATION*
(SETQ BOXER-EVAL::*FUNCTION* BOXER-EVAL::*RETURNED-VALUE*)
(SETQ BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*NOVALUE*)
(GO BOXER-EVAL::UFUNCALL-REALLY))
(BOXER-EVAL::*RUN-LIST-SFUN-CONTINUATION*
(BOXER-EVAL::WHEN-STEPPING
(WHEN (NUMBERP BOXER-EVAL::*RETURNED-VALUE*) (SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER::DATA-BOXIFY BOXER-EVAL::*RETURNED-VALUE*)))
(BOXER-EVAL::STEP-HANDLE-RUN-LIST-CONTINUATION BOXER-EVAL::*RETURNED-VALUE*)
(BOXER-EVAL::STEP-REDISPLAY))
(SETQ BOXER-EVAL::*EXECUTING-POINTER* BOXER-EVAL::*RETURNED-VALUE*)
(SETQ BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*NOVALUE*)
(GO BOXER-EVAL::EVAL-LOOP))
(BOXER-EVAL::*ACCESS-EVALUATOR-STATE-SFUN-CONTINUATION*
(SETQ BOXER-EVAL::*PC* :SFUNCALL-CONTINUATION-DISPATCH)
(BOXER-EVAL::STORE-EVALUATOR-STATE)
(WHEN (FUNCALL BOXER-EVAL::*RETURNED-VALUE*) (BOXER-EVAL::RETRIEVE-EVALUATOR-STATE))
(GO BOXER-EVAL::SFUNCALL-CONTINUATION-DISPATCH))
(BOXER-EVAL::*EVAL-LOOP-SFUN-CONTINUATION* (GO BOXER-EVAL::EVAL-LOOP))
(T
(BOXER-EVAL:SIGNAL-ERROR :EVAL-ERROR "Bad continuation from sfuncall" BOXER-EVAL::*SFUN-CONTINUATION*)
(GO BOXER-EVAL::HANDLE-EXCEPTION)))
BOXER-EVAL::SFUNCALL-RETURN (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::SFUNCALL-RETURN BOXER-EVAL::*RETURNED-VALUE*)
(COND (BOXER-EVAL::*EXCEPTION-SIGNALLED* (GO BOXER-EVAL::HANDLE-EXCEPTION))
((EQ BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*NOVALUE*)
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-FUNCTION-RETURN-SEQUENCE BOXER-EVAL::*RETURNED-VALUE*) (BOXER-EVAL::STEP-REDISPLAY))
(GO BOXER-EVAL::FUNCALL-RETURN-NO-VALUE))
(T
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:DATAFY (SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER::DATA-BOXIFY BOXER-EVAL::*RETURNED-VALUE*)))
(BOXER-USER:PORT-TO (COND ((NUMBERP BOXER-EVAL::*RETURNED-VALUE*)
(BOXER-EVAL::EVALUATOR-HELPFUL-MESSAGE "Made a PORT to a copy of the result of a primitive.")
(SETQ BOXER-EVAL::*RETURNED-VALUE*
(BOXER:PORT-TO (BOXER::DATA-BOXIFY BOXER-EVAL::*RETURNED-VALUE*))))
((BOXER:FAST-EVAL-PORT-BOX? BOXER-EVAL::*RETURNED-VALUE*))
((TYPEP BOXER-EVAL::*RETURNED-VALUE* 'BOXER::FOREIGN-DATA)
(SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER:PORT-TO BOXER-EVAL::*RETURNED-VALUE*)))
(T
(BOXER-EVAL::EVALUATOR-HELPFUL-MESSAGE "Made a PORT to a copy of the result of a primitive.")
(SETQ BOXER-EVAL::*RETURNED-VALUE*
(BOXER:PORT-TO (BOXER-EVAL::COPY-THING BOXER-EVAL::*RETURNED-VALUE*))))))
(OTHERWISE))
(BOXER-EVAL::WHEN-STEPPING
(WHEN (NUMBERP BOXER-EVAL::*RETURNED-VALUE*)
(SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER::DATA-BOXIFY BOXER-EVAL::*RETURNED-VALUE*)))
(BOXER-EVAL::STEP-FUNCTION-RETURN-SEQUENCE BOXER-EVAL::*RETURNED-VALUE*)
(BOXER-EVAL::STEP-REDISPLAY)
(BOXER-EVAL::STEP-ADVANCE-TOKEN))
(BOXER-EVAL::VPDL-PUSH BOXER-EVAL::*RETURNED-VALUE*)
(GO BOXER-EVAL::GOT-VALUE)))
BOXER-EVAL::EVAL-DONE-WITH-LINE (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EVAL-DONE-WITH-LINE)
(UNLESS (NULL BOXER-EVAL::*CURRENT-FUNCTION*)
(BOXER-EVAL:SIGNAL-ERROR :INSUFFICIENT-ARGS-ERROR BOXER-EVAL::*CURRENT-FUNCTION*)
(GO BOXER-EVAL::HANDLE-EXCEPTION))
BOXER-EVAL::EVAL-DO-NEXT-LINE (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EVAL-DO-NEXT-LINE BOXER-EVAL::*EXECUTING-FUNCTION*)
(WHEN (NOT (NULL BOXER-EVAL::*RUN-LIST-SFUN-EPILOG-HANDLER*))
(LET ((BOXER-EVAL::RESULT (FUNCALL BOXER-EVAL::*RUN-LIST-SFUN-EPILOG-HANDLER*)))
(COND ((NULL BOXER-EVAL::RESULT)
(WHEN BOXER-EVAL::*CURRENT-FUNCTION*
(BOXER-EVAL:SIGNAL-ERROR :DIDNT-OUTPUT "???" BOXER-EVAL::*CURRENT-FUNCTION*)
(GO BOXER-EVAL::HANDLE-EXCEPTION))
(GO BOXER-EVAL::EVAL-FINISHED-UNIT))
(T (SETQ BOXER-EVAL::*EXECUTING-POINTER* BOXER-EVAL::RESULT) (GO BOXER-EVAL::EVAL-LOOP)))))
(WHEN (NULL BOXER-EVAL::*EXECUTING-FUNCTION*) (SETQ BOXER-EVAL::*EXECUTING-LINE* NIL) (GO BOXER-EVAL::DONE-WITH-EVAL))
(SETQ BOXER-EVAL::*EXECUTING-LINE* (CDR BOXER-EVAL::*EXECUTING-LINE*))
(BOXER-EVAL::WHEN-STEPPING (BOXER-EVAL::STEP-ADVANCE-LINE))
(UNLESS (NULL BOXER-EVAL::*EXECUTING-LINE*)
(SETQ BOXER-EVAL::*EXECUTING-POINTER* (CAR BOXER-EVAL::*EXECUTING-LINE*))
(GO BOXER-EVAL::EVAL-LOOP))
BOXER-EVAL::UFUNCALL-RETURN (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::UFUNCALL-RETURN BOXER-EVAL::*RETURNED-VALUE*)
(SETQ BOXER-EVAL::*FUNCTION* BOXER-EVAL::*EXECUTING-FUNCTION*)
(BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::UNBINDING-VARIABLES)
(BOXER-EVAL::DYNAMICALLY-UNBIND-VARIABLES)
(BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::POPPING-UFUN-FRAME BOXER-EVAL::*PDL*)
(BOXER-EVAL::PDL-POP-FRAME BOXER-EVAL::UFUN-FRAME
BOXER-EVAL::*EXECUTING-FUNCTION*
BOXER-EVAL::*EXECUTING-LINE*
BOXER-EVAL::*EXECUTING-POINTER*
BOXER-EVAL::*RUN-LIST-SFUN-EPILOG-HANDLER*
BOXER-EVAL::*UFUNCALL-SFUN-EPILOG-HANDLER*
BOXER-EVAL::*CURRENT-FUNCTION*)
(WHEN (BOXER-EVAL::INTERPRETED-BOXER-FUNCTION-LEXICAL-CALL-P BOXER-EVAL::*FUNCTION*)
(BOXER-EVAL::PDL-POP-FRAME BOXER-EVAL::DOIT-PORT-FUNCALL-FRAME
BOXER-EVAL:*LEXICAL-VARIABLES-ROOT*
BOXER-EVAL::*DYNAMIC-VARIABLES-BOTTOM*))
(WHEN (NOT (NULL BOXER-EVAL::*UFUNCALL-SFUN-EPILOG-HANDLER*))
(FUNCALL BOXER-EVAL::*UFUNCALL-SFUN-EPILOG-HANDLER*)
(SETQ BOXER-EVAL::*UFUNCALL-SFUN-EPILOG-HANDLER* NIL))
(BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::ARG-HANDLING-RESULT)
(COND ((NOT (EQ BOXER-EVAL::*RETURNED-VALUE* BOXER-EVAL::*NOVALUE*))
(BOXER-EVAL::SPECIAL-ARG-HANDLING-CASES
(BOXER-USER:PORT-TO (COND ((NUMBERP BOXER-EVAL::*RETURNED-VALUE*)
(BOXER-EVAL::EVALUATOR-HELPFUL-MESSAGE "Made a PORT to a copy of the result of a DOIT box.")
(SETQ BOXER-EVAL::*RETURNED-VALUE*
(BOXER:PORT-TO (BOXER::DATA-BOXIFY BOXER-EVAL::*RETURNED-VALUE*))))
((TYPEP BOXER-EVAL::*RETURNED-VALUE* 'BOXER::FOREIGN-DATA)
(SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER:PORT-TO BOXER-EVAL::*RETURNED-VALUE*)))
((NOT (BOXER:FAST-EVAL-PORT-BOX? BOXER-EVAL::*RETURNED-VALUE*))
(BOXER-EVAL::EVALUATOR-HELPFUL-MESSAGE "Made a PORT to a copy of the result of a DOIT box.")
(SETQ BOXER-EVAL::*RETURNED-VALUE*
(BOXER:PORT-TO (BOXER-EVAL::COPY-THING BOXER-EVAL::*RETURNED-VALUE*))))))
(BOXER-USER:DATAFY (SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER::DATA-BOXIFY BOXER-EVAL::*RETURNED-VALUE*)))
(OTHERWISE))
(BOXER-EVAL::WHEN-STEPPING
(WHEN (NUMBERP BOXER-EVAL::*RETURNED-VALUE*)
(SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER::DATA-BOXIFY BOXER-EVAL::*RETURNED-VALUE*)))
(BOXER-EVAL::STEP-FUNCTION-RETURN-SEQUENCE BOXER-EVAL::*RETURNED-VALUE*)
(BOXER-EVAL::STEP-REDISPLAY)
(BOXER-EVAL::PDL-POP-FRAME BOXER-EVAL::STEPPER-UFUN-FRAME BOXER-EVAL::*STEPPER-ITEM-NO* BOXER-EVAL::*STEPPER-ROW-NO*)
(BOXER-EVAL::STEP-RESTORE-CURSOR-POSITION)
(BOXER-EVAL::STEP-REDISPLAY)
(BOXER-EVAL::STEP-ADVANCE-TOKEN)
(BOXER-EVAL::STEP-REDISPLAY))
(WHEN (TYPEP BOXER-EVAL::*RETURNED-VALUE* 'BOXER::FOREIGN-DATA)
(SETQ BOXER-EVAL::*RETURNED-VALUE* (BOXER-EVAL::COPY-THING BOXER-EVAL::*RETURNED-VALUE*)))
(BOXER-EVAL::VPDL-PUSH BOXER-EVAL::*RETURNED-VALUE*)
(GO BOXER-EVAL::GOT-VALUE))
(T
(BOXER-EVAL::WHEN-STEPPING
(BOXER-EVAL::STEP-FUNCTION-RETURN-SEQUENCE BOXER-EVAL::*RETURNED-VALUE*)
(BOXER-EVAL::STEP-REDISPLAY)
(BOXER-EVAL::PDL-POP-FRAME BOXER-EVAL::STEPPER-UFUN-FRAME BOXER-EVAL::*STEPPER-ITEM-NO* BOXER-EVAL::*STEPPER-ROW-NO*)
(BOXER-EVAL::STEP-RESTORE-CURSOR-POSITION)
(BOXER-EVAL::STEP-REDISPLAY)
(BOXER-EVAL::STEP-ADVANCE-TOKEN)
(BOXER-EVAL::STEP-REDISPLAY))
(GO BOXER-EVAL::FUNCALL-RETURN-NO-VALUE)))
BOXER-EVAL::FUNCALL-RETURN-NO-VALUE (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::FUNCALL-RETURN-NO-VALUE)
(WHEN (NULL BOXER-EVAL::*CURRENT-FUNCTION*) (GO BOXER-EVAL::EVAL-FINISHED-UNIT))
(BOXER-EVAL:SIGNAL-ERROR :DIDNT-OUTPUT BOXER-EVAL::*FUNCTION* BOXER-EVAL::*CURRENT-FUNCTION*)
(GO BOXER-EVAL::HANDLE-EXCEPTION)
BOXER-EVAL::HANDLE-EXCEPTION (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::HANDLE-EXCEPTION)
(LET ((BOXER-EVAL::OLD-EXCEPTION-VALUE BOXER-EVAL::*EXCEPTION-SIGNALLED*))
(SETQ BOXER-EVAL::*EXCEPTION-SIGNALLED* NIL)
(CASE BOXER-EVAL::OLD-EXCEPTION-VALUE
(BOXER-EVAL::ERROR-EXCEPTION (WHEN (EQ (BOXER-EVAL::HANDLE-ERROR) :BACKGROUND-ERROR) (GO BOXER-EVAL::DONE-WITH-EVAL)))
((BOXER-EVAL::PAUSE-INT-EXCEPTION BOXER-EVAL::PAUSE-SFUN-EXCEPTION BOXER-EVAL::PAUSE-ERROR-EXCEPTION)
(BOXER-EVAL::PAUSE BOXER-EVAL::OLD-EXCEPTION-VALUE))
(T
(BOXER-EVAL:SIGNAL-ERROR :EVAL-ERROR "Bad value for exception signalled:" BOXER-EVAL::OLD-EXCEPTION-VALUE)
(GO BOXER-EVAL::HANDLE-EXCEPTION))))
(WHEN (NOT (NULL BOXER-EVAL::*EXCEPTION-SIGNALLED*)) (GO BOXER-EVAL::HANDLE-EXCEPTION))
(GO BOXER-EVAL::EVAL-LOOP)
BOXER-EVAL::DONE-WITH-EVAL (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::DONE-WITH-EVAL)
(BOXER-EVAL::PROCESS-FINISH BOXER-EVAL::*CURRENT-PROCESS*)
(LET ((BOXER-EVAL::TODO (BOXER-EVAL::NEXT-RESTARTABLE-PROCESS NIL)))
(WHEN (NOT (NULL BOXER-EVAL::TODO))
(COND ((EQ BOXER-EVAL::TODO BOXER-EVAL::*CURRENT-PROCESS*) (WARN "~%Trying to switch to same process: ~A" BOXER-EVAL::TODO))
(T (SETQ BOXER-EVAL::*CURRENT-PROCESS* BOXER-EVAL::TODO) (GO BOXER-EVAL::CONTINUE-PROCESS)))))
(OR (EQ (BOXER-EVAL::PROCESS-VARIABLE BOXER-EVAL::*CURRENT-PROCESS* BOXER-EVAL::*PROCESS-STATE*) :TOPLEVEL)
(SETQ BOXER-EVAL::*CURRENT-PROCESS* (BOXER-EVAL::GET-TOPLEVEL-PROCESS))
(BOXER-EVAL::INIT-PROCESS-STATE-VECTOR))
BOXER-EVAL::EXIT-EVAL (BOXER-EVAL::TRACE-ENTERING BOXER-EVAL::EXIT-EVAL)
(VALUES))
(SETQ BOXER-EVAL::*PROCESS-STATE* :TOPLEVEL)
BOXER-EVAL::*RETURNED-VALUE*)
CL-USER 8 >
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment