(FILECREATED "27-Jan-85 00:49:30" ("compiled on " {ERIS}LIBRARY>CMLSPECIALFORMS.;22) "19-Jan-85 19:21:43" recompiled changes: nothing in "INTERLISP-D 19-Jan-85 ..." dated "19-Jan-85 19:32:28") (FILECREATED "27-Jan-85 00:49:07" {ERIS}LIBRARY>CMLSPECIALFORMS.;22 15550 changes to: (VARS CMLSPECIALFORMSCOMS) previous date: "19-Dec-84 18:46:09" {ERIS}LIBRARY>CMLSPECIALFORMS.;20) \DEFUNexpander D1 (P 14Q Z P 13Q FORM P 12Q TAIL P 10Q LAMBDALIST P 7 SPECVAL P 6 SPECNAM P 5 SPECIND P 4 BODY P 3 ARGL P 2 NAME P 1 L P 0 TYPE I 0 DEF F 15Q COMMENTFLG)  g@rIIZIgddghIJkJdgdgdgJIJJJoJZ MgggNggJhohggNhh_IdggIYgII[Hg5d1gK gK gK gK NJI YIII_I1 O_0O_dgOO WOhO gNJHOgoWggKhIhhh\N|ggLgJddidd gJhMddidd gMhOhJddidd gJhhOO_O$L(444Q \NCONC2 426Q DREVERSE 337Q \Process&Specs 326Q MEMB 316Q MEMB 306Q MEMB 275Q MEMB 134Q MKATOM 131Q CONCAT 117Q GENSYM) (670Q QUOTE 625Q QUOTE 571Q QUOTE 541Q /PUTPROP 535Q 'COMPILE 532Q PROGN 477Q = 474Q ARGLIST 463Q PROGN 451Q DEFINEQ 403Q DECLARE 322Q &BODY 312Q &REST 302Q &OPTIONAL 271Q &AUX 257Q LAMBDA 243Q EXPR 233Q NLAMBDA 225Q FEXPR 205Q QUOTE 202Q GETD 161Q QUOTE 156Q CONS 152Q MACROARGS 147Q QUOTE 141Q MACRO 71Q LEXPR 63Q FEXPR 55Q EXPR 33Q MACRO 21Q MACRO 2 LAMBDA) ( 467Q (QUOTE DEFUN) 171Q (MACROARGS) 123Q "$$") \Process&Specs D1 (P 13Q VAR P 12Q BINDING P 11Q CNT P 7 BODY P 6 ARGVAR P 5 OPTCODE P 4 VARTYP P 3 RESTFORM P 2 AUXLIST P 1 OPTVARS P 0 VRBLS I 1 EXP I 0 NAME F 21Q SUPPLIEDP) DAk" O-A _JgJ Oh_NgH O_gOdggOm_xgOdgOOm_]OO_OlOioO LOOoO OHX!gONg@o KoO OgggOgNggNohhh[Ldg)OOhoO OOhJZgNg@o OOh_OIOc"LgOggONhgOgW"gW"ohgNOhh hM]"lW"dioW" W"IO_Ok_.gNgHd 2OOIK M O hgNOhh_ OO h__O_Om_O &_(1005Q \APPEND2 1000Q DREVERSE 774Q \APPEND2 771Q \APPEND2 751Q LENGTH 714Q SHOULDNT 701Q ERROR 636Q \APPEND2 510Q MKATOM 505Q CONCAT 440Q ERROR 320Q ERROR 304Q MKATOM 301Q CONCAT 245Q ERROR 222Q ERROR 63Q DREVERSE 36Q DREVERSE 23Q \APPEND2) (1020Q ARG 744Q LET 740Q LAMBDA 622Q ARG 605Q SETQ 576Q else 567Q then 555Q IGREATERP 552Q if 545Q SETQ 475Q \ 463Q &OPTIONAL 406Q &AUX 350Q ARG 345Q collect 341Q to 334Q from 331Q \Index 326Q for 271Q \ 261Q &REST 142Q &OPTIONAL 132Q &AUX 114Q &REST 106Q &BODY 76Q &REST 57Q LAMBDA 32Q LET*) ( 674Q "Non bindable atom" 613Q (T) 502Q ".ARGCNT" 433Q "Extra cruft in &AUX form" 355Q (\Index) 313Q "Too many &REST keywords" 276Q ".ARGCNT" 240Q "Non-atomic &REQUIRED var?" 215Q "Non bindable atom") CATCH D1 (P 0 Y I 0 L) 0g@i HX l@o Hg Hi (55Q \CATCH.AUX 46Q EVAL 35Q ERROR 21Q LENGTH 10Q LISPFORM.SIMPLIFY) (43Q INTERNAL 2 PROGN) ( 32Q "WRONG FORMAT FOR CATCH") \CATCH.AUX D1 (P 2 \CATCH.1SHOT.OPOS I 2 FORMP I 1 FUN I 0 TAG) 2@ BAAdlAdio AhHIh (57Q EVALA 43Q SHOULDNT 6 \CATCH.FINDFRAME 3 \CATCH.TAG.INTERN) NIL (40Q "unacceptable function") \CATCH.FINDFRAME D1 (I 0 POS) mghd@ b@ (27Q STKNTH 23Q SHOULDNT 12Q STKPOS) (4 \CATCH.AUX) NIL \CATCH.TAG.INTERN D1 (P 5 CHAR P 4 I P 1 BASE P 0 \INTERRUPTABLE I 0 TAG) @bdi@o `k@`l 4`@`@_JONJdkغ½nLhILMǿLkؼ`L`  @o (174Q ERROR 160Q MKATOM 22Q ERROR) (155Q \THROW.STRBUFFER 146Q \THROW.STRBUFFER 65Q \PNPSPACE 53Q \PNPSPACE 40Q \THROW.STRBUFFER 31Q \THROW.STRBUFFER 3 LITATOM) (171Q "name too long to be CATCH tag" 17Q "NIL and T not usable as CATCH tags") THROW D1 (I 1 VAL I 0 TAG) @ -@A (11Q \THROW.AUX 3 \CATCH.TAG.INTERN) NIL NIL \THROW.AUX D1 (L (2 VAL 1 TAG 0 POS) P 0 \INTERRUPTABLE F 1 \THROW.1SHOT.OPOS) A@Q@ Bi @Ag b -bdjo @Bi (74Q RETTO 65Q SHOULDNT 42Q \CATCH.TAG.INTERN 35Q ERROR 20Q RETTO 13Q \MAKESTACKP) (32Q Tag% to% THROW,% but% no% corresponding% tag% in% a% CATCH) (62Q "THROW to a released frame") (PRETTYCOMPRINT CMLSPECIALFORMSCOMS) (RPAQQ CMLSPECIALFORMSCOMS ((COMS (* "CommonLisp style DEFUN, LET LET* PROG* LIST* macros and CATCH and THROW") (MACROS PSETQ PROGV DEFUN) (FNS \DEFUNexpander \Process&Specs)) (COMS (* "CommonLisp style CATCH and THROW") (FNS CATCH \CATCH.AUX \CATCH.FINDFRAME \CATCH.TAG.INTERN THROW \THROW.AUX) (MACROS CATCH *CATCH \CATCHRUNFUN THROW *THROW \CATCHRELSTKP UNWINDPROTECT) (VARS (\CATCH.1SHOT.OPOS (STKNTH 0 T)) (\THROW.1SHOT.OPOS ( STKNTH 0 T))) (DECLARE: EVAL@COMPILE (PROP SPECVAR \CATCH.1SHOT.OPOS \THROW.1SHOT.OPOS)) (DECLARE: DONTCOPY EVAL@COMPILE (MACROS DATATYPE.TEST)) (DECLARE: (* "Crufty low-level stuff to help make \CATCH.TAG.INTERN more efficient") (VARS (\THROW.STRBUFFER (PROG ((X (ALLOCSTRING 256))) (RPLSTRING X 1 (QUOTE \CATCH.TAG.)) (RETURN X)))) (GLOBALVARS \THROW.STRBUFFER ))))) (PUTPROPS PSETQ MACRO (X (COND ((NLISTP X) NIL) ((NLISTP (CDR X)) (HELP "Odd number args for PSETQ")) (T (LIST (QUOTE SETQ) (CAR X) (COND ((CDDR X) (LIST (QUOTE PROG1) (CADR X) (CONS (QUOTE PSETQ) (CDDR X )))) (T (CADR X)))))))) (PUTPROPS PROGV MACRO ((SYMS VALS . BODY) (EVALA (LIST (FUNCTION (LAMBDA NIL . BODY))) ((LAMBDA (\Vars \Vals) (DECLARE (LOCALVARS \Vars \Vals)) (while \Vars collect (CONS (pop \Vars) (OR (pop \Vals) ( QUOTE NOBIND))))) SYMS VALS)))) (PUTPROPS DEFUN MACRO (X (\DEFUNexpander X))) (PUTPROPS CATCH MACRO (X (PROG ((Y (LISPFORM.SIMPLIFY (CONS (QUOTE PROGN) X) T)) TAGFORM) (OR (EQ 2 ( LENGTH (SETQ Y (CDR Y)))) (ERROR X "WRONG FORMAT FOR CATCH")) (RETURN (COND ((SETQ TAGFORM ( CONSTANTEXPRESSIONP (CAR Y))) (SETQ TAGFORM (\CATCH.TAG.INTERN (CAR TAGFORM))) (SUBPAIR (QUOTE (X FORM )) (LIST TAGFORM (CADR Y)) (SELECTQ COMPILEMODE (D (QUOTE (\CATCHRUNFUN (FUNCTION (LAMBDA NIL ((LAMBDA (X) (DECLARE (SPECVARS X)) FORM) (\MYALINK))))))) (QUOTE (\CATCHRUNFUN (FUNCTION (LAMBDA NIL ((LAMBDA (X \CATCH.1SHOT.OPOS) (DECLARE (SPECVARS X \CATCH.1SHOT.OPOS)) FORM) (STKNTH -2 NIL \CATCH.1SHOT.OPOS ))))))))) (T (LIST (QUOTE \CATCH.AUX) (CAR Y) (LIST (QUOTE FUNCTION) (LIST (QUOTE LAMBDA) NIL (CADR Y) ))))))))) (PUTPROPS *CATCH MACRO (= . CATCH)) (PUTPROPS \CATCHRUNFUN DMACRO (= . SPREADAPPLY*)) (PUTPROPS \CATCHRUNFUN MACRO ((FUN . REST) ((LAMBDA (\CatchBody) (DECLARE (LOCALVARS \CatchBody)) ( APPLY* \CatchBody . REST)) FUN))) (PUTPROPS THROW MACRO (X (PROG ((Y (LISPFORM.SIMPLIFY (CONS (QUOTE PROGN) X) T)) TAGFORM) (OR (EQ 2 ( LENGTH (SETQ Y (CDR Y)))) (ERROR X "WRONG FORMAT FOR THROW")) (RETURN (COND ((SETQ TAGFORM ( CONSTANTEXPRESSIONP (CAR Y))) (LIST (QUOTE \THROW.AUX) (\CATCH.TAG.INTERN (CAR TAGFORM)) (KWOTE (CAR TAGFORM)) (CADR Y))) (T (QUOTE IGNOREMACRO))))))) (PUTPROPS *THROW MACRO (= . THROW)) (PUTPROPS \CATCHRELSTKP DMACRO ((X) (EQ 0 (fetch EDFXP of X)))) (PUTPROPS \CATCHRELSTKP MACRO (= . RELSTKP)) (PUTPROPS UNWINDPROTECT MACRO ((FORM . CLEANUPS) (RESETLST (RESETSAVE NIL (LIST (FUNCTION (LAMBDA NIL . CLEANUPS)))) FORM))) (RPAQ \CATCH.1SHOT.OPOS (STKNTH 0 T)) (RPAQ \THROW.1SHOT.OPOS (STKNTH 0 T)) (PUTPROPS \CATCH.1SHOT.OPOS SPECVAR T) (PUTPROPS \THROW.1SHOT.OPOS SPECVAR T) (RPAQ \THROW.STRBUFFER (PROG ((X (ALLOCSTRING 256))) (RPLSTRING X 1 (QUOTE \CATCH.TAG.)) (RETURN X))) (DECLARE: DOEVAL@COMPILE DONTCOPY (GLOBALVARS \THROW.STRBUFFER)) (PUTPROPS CMLSPECIALFORMS COPYRIGHT ("Xerox Corporation" 1983 1984 1985)) NIL