(FILECREATED "29-Jan-85 17:32:18" {ERIS}<LISPUSERS>NOBOX.;5 5893 changes to: (RECORDS IBOX FBOX) (MACROS IBOX FBOX) (FNS IBOX) previous date: "29-Jan-85 15:54:35" {ERIS}<LISPUSERS>NOBOX.;4) (* Copyright (c) 1983, 1984, 1985 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT NOBOXCOMS) (RPAQQ NOBOXCOMS [(* use of this package is not recommended for interlisp-d. it is supplied for compatibility with old code) (FNS IBOX FBOX NBOX) (P (MOVD? (QUOTE LIST) (QUOTE LBOX)) (MOVD? (QUOTE CONS) (QUOTE CBOX))) (DECLARE: EVAL@COMPILE (RECORDS FBOX IBOX) (MACROS IBOX FBOX NBOX) (MACROS CBOX LBOX) (I.S.OPRS scratchcollect) (ADDVARS (SYSLOCALVARS $$SCCONS $$SCPTR) (INVISIBLEVARS $$SCCONS $$SCPTR]) (* use of this package is not recommended for interlisp-d. it is supplied for compatibility with old code) (DEFINEQ (IBOX [LAMBDA (IVAL) (* edited: "29-Jan-85 17:28") (* If needed, give field the initial value defined in the record) (create IBOX I ←(OR IVAL 0]) (FBOX [LAMBDA (FVAL) (* rmk: "23-SEP-77 09:39") (create FBOX F ←(OR FVAL 0.0]) (NBOX [LAMBDA (NVAL) (* rmk: "10-OCT-77 10:17") (* A boxing function for numbers of unknown type. Since most functions that produce unknown-typed numbers compile closed and box internally, this is really useful only to copy boxes produced by those functions into new boxes at setq's. E.g. (SETQ X (NBOX Y)), where previously there was (SETQ Y (DIFFERENCE A B))) (if (FLOATP NVAL) then (create FBOX F ← NVAL) else (create IBOX I ← NVAL]) ) (MOVD? (QUOTE LIST) (QUOTE LBOX)) (MOVD? (QUOTE CONS) (QUOTE CBOX)) (DECLARE: EVAL@COMPILE [DECLARE: EVAL@COMPILE (BLOCKRECORD FBOX ((F FLOATING)) [CREATE (SELECTQ (SYSTEMTYPE) ((TENEX TOPS-20) (FPLUS 0.0)) (D (\CREATECELL (CONSTANT \FLOATP))) (HELP "FBOX CREATE NOT DEFINED FOR SYSTEMTYPE " (SYSTEMTYPE]) (BLOCKRECORD IBOX ((I INTEGER)) [CREATE (SELECTQ (SYSTEMTYPE) ((TENEX TOPS-20) (IPLUS 100000)) (D (\CREATECELL (CONSTANT \FIXP))) (HELP "IBOX CREATE NOT DEFINED FOR SYSTEMTYPE " (SYSTEMTYPE]) ] (DECLARE: EVAL@COMPILE (PUTPROPS IBOX 10MACRO [ARGS (COND [(CAR ARGS) (LIST (QUOTE ASSEMBLE) NIL [LIST (QUOTE CQ) (LIST (QUOTE VAG) (LIST (QUOTE FIX) (CAR ARGS] (QUOTE (MOVE 2 , 1)) (LIST (QUOTE CQ) (create IBOX)) (QUOTE (MOVEM 2 , 0 (1] (T (QUOTE (create IBOX]) (PUTPROPS IBOX DMACRO [ARGS (COND (ARGS (APPEND (QUOTE (create IBOX smashing (LOADTIMECONSTANT (\CREATECELL (CONSTANT \FIXP))) I ←)) ARGS)) (T (QUOTE (LOADTIMECONSTANT (\CREATECELL (CONSTANT \FIXP]) (PUTPROPS FBOX 10MACRO [ARGS (COND [(CAR ARGS) (LIST (QUOTE ASSEMBLE) NIL [LIST (QUOTE CQ) (LIST (QUOTE VAG) (LIST (QUOTE FLOAT) (CAR ARGS] (QUOTE (MOVE 2 , 1)) (LIST (QUOTE CQ) (create FBOX)) (QUOTE (MOVEM 2 , 0 (1] (T (QUOTE (create FBOX]) (PUTPROPS FBOX DMACRO [ARGS (COND (ARGS (APPEND (QUOTE (create FBOX smashing (LOADTIMECONSTANT (\CREATECELL (CONSTANT \FLOATP)) ) F ←)) ARGS)) (T (QUOTE (LOADTIMECONSTANT (\CREATECELL (CONSTANT \FLOATP]) (PUTPROPS NBOX 10MACRO [ARGS (SUBPAIR (QUOTE (NVAL FBOX)) (LIST (CAR ARGS) (create FBOX)) (QUOTE (ASSEMBLE NIL (CQ NVAL) (CQ (COND [(FLOATP (AC)) (ASSEMBLE NIL (MOVE 2 , 0 (1)) (CQ FBOX) (MOVEM 2 , 0 (1] (T (IBOX (AC]) (PUTPROPS NBOX DMACRO [OPENLAMBDA (NVAL) (COND ((FLOATP NVAL) (FBOX NVAL)) (T (IBOX NVAL]) ) (DECLARE: EVAL@COMPILE (PUTPROPS CBOX MACRO ((X Y) (FRPLNODE (CONSTANT (CONS)) X Y))) (PUTPROPS CBOX DMACRO (= . CONS)) (PUTPROPS LBOX MACRO [ARGLIST (PROG (NILIST (FORM (QUOTE $X$))) [MAP ARGLIST (FUNCTION (LAMBDA (ARG) (SETQ NILIST (CONS NIL NILIST)) (SETQ FORM (LIST (QUOTE FRPLACA) FORM (CAR ARG))) (AND (CDR ARG) (SETQ FORM (LIST (QUOTE CDR) FORM] (RETURN (LIST (LIST (QUOTE LAMBDA) (QUOTE ($X$)) (QUOTE (DECLARE (LOCALVARS $X$))) FORM (QUOTE $X$)) (KWOTE NILIST]) (PUTPROPS LBOX DMACRO (= . LIST)) ) (DECLARE: EVAL@COMPILE [I.S.OPR (QUOTE scratchcollect) (QUOTE (SETQ $$SCPTR (FRPLACA [OR (CDR $$SCPTR) (CDR (FRPLACD $$SCPTR (CAR (FRPLACA $$SCCONS (CONS] BODY))) (QUOTE (BIND $$SCPTR $$SCCONS ← (CONSTANT (CONS)) FIRST (SETQ $$SCPTR $$SCCONS) FINALLY (SETQ $$VAL (AND (NEQ $$SCPTR $$SCCONS) (PROG1 (CDR $$SCCONS) (COND ((CDR $$SCPTR) (FRPLACD $$SCCONS (PROG1 (CDR $$SCPTR) (FRPLACD $$SCPTR NIL) (FRPLACD (PROG1 (CAR $$SCCONS) (FRPLACA $$SCCONS $$SCPTR)) (CDR $$SCCONS] ) (ADDTOVAR SYSLOCALVARS $$SCCONS $$SCPTR) (ADDTOVAR INVISIBLEVARS $$SCCONS $$SCPTR) ) (PUTPROPS NOBOX COPYRIGHT ("Xerox Corporation" 1983 1984 1985)) (DECLARE: DONTCOPY (FILEMAP (NIL (936 1945 (IBOX 946 . 1244) (FBOX 1246 . 1383) (NBOX 1385 . 1943))))) STOP