From 174bbe8e14d7e01dd43f3aee24fa8c32f190c4da Mon Sep 17 00:00:00 2001 From: Larry Masinter Date: Wed, 28 Feb 2024 18:33:28 -0800 Subject: [PATCH] Fix problems due to FX record incompatibly on SPY, miscompiled (#1561) * Fix problems due to FX record incompatibly on SPY, miscompiled * PROC recompile for safe measure * Add ASTACK.LCOM, also needed recompile! --- library/SPY | 164 ++---------- library/SPY.LCOM | Bin 24128 -> 24021 bytes sources/ASTACK.LCOM | Bin 7758 -> 7657 bytes sources/LLSTK | 606 +++++++++++++++++++------------------------- sources/LLSTK.LCOM | Bin 23280 -> 20006 bytes sources/PROC.LCOM | Bin 59617 -> 59617 bytes 6 files changed, 272 insertions(+), 498 deletions(-) diff --git a/library/SPY b/library/SPY index 095dd298..5be1282d 100644 --- a/library/SPY +++ b/library/SPY @@ -1,13 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "28-Jul-2023 20:13:45" {DSK}larry>il>medley>library>SPY.;4 64149 +(FILECREATED "27-Feb-2024 20:25:02" {DSK}larry>il>medley>SPY.;1 53724 :EDIT-BY "lmm" - :CHANGES-TO (VARS SPYCOMS) - (FNS \SPY.INTERRUPT SPY.BUFFER.ENTRY SPY.ADD.ENTRY) + :CHANGES-TO (RECORDS FX) + (VARS SPYOBJCOMS) - :PREVIOUS-DATE " 4-Jan-2022 14:09:48" {DSK}larry>il>medley>library>SPY.;1) + :PREVIOUS-DATE "28-Jul-2023 20:13:45" {DSK}larry>il>medley>library>SPY.;1) (PRETTYCOMPRINT SPYCOMS) @@ -114,7 +114,7 @@ (FUNCTION SPYOBJ.BUTTON) (FUNCTION SPYOBJ.COPYIN) NIL NIL NIL NIL NIL NIL 'SPYNODE] - (DECLARE%: DONTCOPY DOEVAL@COMPILE (RECORDS FX SPYOBJDATA)) + (DECLARE%: DONTCOPY DOEVAL@COMPILE (RECORDS SPYOBJDATA)) (INITRECORDS SPYOBJDATA))) (DEFINEQ @@ -189,134 +189,6 @@ (DECLARE%: DONTCOPY DOEVAL@COMPILE (DECLARE%: EVAL@COMPILE -(ACCESSFNS FX ((FXBLOCK (ADDSTACKBASE DATUM))) (* ; "frame extension index") - (BLOCKRECORD FXBLOCK ((FLAGS BITS 3) (* ; "= \STK.FX") - (FAST FLAG) - (NIL FLAG) - (INCALL FLAG) (* ; - "set when fncall microcode has to punt") - (VALIDNAMETABLE FLAG) (* ; - "if on, NAMETABLE field is filled in. If off, is same as FNHEADER") - (NOPUSH FLAG) (* ; - "when returning to this frame, don't push a value. Set by interrupt code") - (USECNT BITS 8) - (%#ALINK WORD) (* ; "low bit is SLOWP") - (FNHEADER FULLXPOINTER) - (NEXTBLOCK WORD) - (PC WORD) - (NAMETABLE# FULLXPOINTER) - (%#BLINK WORD) - (%#CLINK WORD))) - (BLOCKRECORD FXBLOCK ((FLAGBYTE BYTE) - (NIL BYTE) - (NIL BITS 15) (* ; "most of the bits of #ALINK") - (SLOWP FLAG) (* ; - "if on, then BLINK and CLINK fields are valid. If off, they are implicit") - (NIL FULLXPOINTER 2) - (NAMETABHI WORD) - (NAMETABLO WORD))) - (TYPE? (IEQ (fetch (FX FLAGS) of DATUM) - \STK.FX)) - [ACCESSFNS FX ((NAMETABLE (COND - ((fetch (FX VALIDNAMETABLE) of DATUM) - (fetch (FX NAMETABLE#) of DATUM)) - (T (fetch (FX FNHEADER) of DATUM))) - (PROGN (replace (FX FAST) of DATUM with NIL) - (replace (FX NAMETABLE#) of DATUM with NEWVALUE) - (replace (FX VALIDNAMETABLE) of DATUM with T))) - (FRAMENAME (fetch (FNHEADER FRAMENAME) of (fetch (FX NAMETABLE) - of DATUM))) - (INVALIDP (EQ DATUM 0)) (* ; - "true when A/CLink points at nobody, i.e. FX is bottom of stack") - [FASTP (NOT (fetch (FX SLOWP) of DATUM)) - (PROGN (CHECK (NULL NEWVALUE)) - (COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#BLINK) of DATUM - with (fetch (FX DUMMYBF) of DATUM)) - (replace (FX %#CLINK) of DATUM - with (fetch (FX %#ALINK) of DATUM)) - (replace (FX SLOWP) of DATUM with T] - [BLINK (COND - ((fetch (FX FASTP) of DATUM) - (fetch (FX DUMMYBF) of DATUM)) - (T (fetch (FX %#BLINK) of DATUM))) - (PROGN (replace (FX %#BLINK) of DATUM with NEWVALUE) - (COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#CLINK) of DATUM - with (fetch (FX %#ALINK) of DATUM)) - (replace (FX SLOWP) of DATUM with T] - [CLINK (IDIFFERENCE (COND - ((fetch (FX FASTP) of DATUM) - (fetch (FX %#ALINK) of DATUM)) - (T (fetch (FX %#CLINK) of DATUM))) - \#ALINK.OFFSET) - (PROGN (replace (FX %#CLINK) of DATUM with (IPLUS NEWVALUE - \#ALINK.OFFSET) - ) - (COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#BLINK) of DATUM - with (fetch (FX DUMMYBF) of DATUM)) - (replace (FX SLOWP) of DATUM with T] - [ALINK (IDIFFERENCE (FLOOR (fetch (FX %#ALINK) of DATUM) - WORDSPERCELL) - \#ALINK.OFFSET) - (PROGN [COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#BLINK) of DATUM - with (fetch (FX DUMMYBF) of DATUM)) - (replace (FX %#CLINK) of DATUM - with (fetch (FX %#ALINK) of DATUM] - (replace (FX %#ALINK) of DATUM with (IPLUS NEWVALUE - \#ALINK.OFFSET - (SUB1 - WORDSPERCELL - ] - [ACLINK (SHOULDNT) - (PROGN [COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#BLINK) of DATUM - with (fetch (FX DUMMYBF) of DATUM] - (replace (FX %#CLINK) of DATUM with (IPLUS NEWVALUE - \#ALINK.OFFSET) - ) - (replace (FX %#ALINK) of DATUM with (IPLUS NEWVALUE - \#ALINK.OFFSET - (SUB1 - WORDSPERCELL - ] - (* ; - "replaces A & C Links at once more efficiently than separately") - (DUMMYBF (IDIFFERENCE DATUM WORDSPERCELL)) - - (* ;; "This is either an actual BF or %"residual%" BF that provides enough BF to find its IVAR slot. This means that when a FX is copied, the cell preceding the FX is copied too.") - - (IVAR (fetch (BF IVAR) of (fetch (FX DUMMYBF) of DATUM))) - [CHECKED (AND (type? FX DATUM) - (OR (IEQ (fetch (FX DUMMYBF) of DATUM) - (fetch (FX BLINK) of DATUM)) - (AND (fetch (BF RESIDUAL) of (fetch (FX DUMMYBF) - of DATUM)) - (IEQ (fetch (BF IVAR) of (fetch (FX DUMMYBF) - of DATUM)) - (fetch (BF IVAR) of (fetch (FX BLINK) - of DATUM] - (FIRSTPVAR (IPLUS DATUM (fetch (FX FXSIZE) of T))) - (* ; "stack offset of PVAR0") - (FXSIZE (PROGN 10)) (* ; - "fixed overhead from flags thru clink") - (PADDING (PROGN 4)) (* ; - "doublecell of garbage for microcode use") - (FIRSTTEMP (IPLUS (fetch (FX FIRSTPVAR) of DATUM) - (fetch (FX NPVARWORDS) of DATUM) - (fetch (FX PADDING) of DATUM))) - (* ; - "note that NPVARWORDS is obtained from the FNHEADER") - (SIZE (IDIFFERENCE (fetch (FX NEXTBLOCK) of DATUM) - DATUM]) - (RECORD SPYOBJDATA (CACHEDLABEL PERCENT LABEL)) ) ) @@ -1053,17 +925,17 @@ (MOVD? 'NILL 'MODERNWINDOW) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4707 7314 (SPYOBJ 4717 . 5006) (SPYOBJ.BUTTON 5008 . 5118) (SPYOBJ.SAVE 5120 . 5239) ( -SPYOBJ.COPY 5241 . 5303) (SPYOBJ.GET 5305 . 5434) (SPYOBJ.IMAGEBOX 5436 . 5960) (SPYOBJ.DISPLAY 5962 - . 6261) (SPYOBJ.LABEL 6263 . 6399) (SPYOBJ.HEIGHT 6401 . 6614) (SPYOBJ.COPYIN 6616 . 6659) ( -SPY.COPYBUTTON 6661 . 6753) (SPY.MERGEINFO 6755 . 7312)) (18156 60387 (SPY.FIND.TREE 18166 . 18575) ( -SPY.TOGGLE 18577 . 18767) (SPY.TREE 18769 . 19881) (SPY.LEGEND 19883 . 20233) (SPY.GRAPH.EDITOR 20235 - . 29800) (SPY.END 29802 . 30044) (SPY.MAKEGRAPHNODES 30046 . 32146) (SPY.MAX 32148 . 33031) ( -SPY.MERGE 33033 . 34464) (SPY.MERGE1 34466 . 40949) (SPY.MERGETREE 40951 . 43881) (SPY.NEXT.TREE 43883 - . 44557) (SPY.SUM 44559 . 45248) (SPY.TITLE 45250 . 45467) (SPY.MAKE.TREE 45469 . 47494) ( -SPY.UPDATE.TITLE 47496 . 50072) (SPY.DELETE 50074 . 50609) (SPY.DRAWBOX 50611 . 51136) ( -SPY.BUFFER.ENTRY 51138 . 51481) (SPY.BUTTON 51483 . 52052) (SPY.END.ENTRY 52054 . 52134) (SPY.START -52136 . 52420) (SPY.INIT 52422 . 52657) (\SPY.INTERRUPT 52659 . 54064) (SPY.DUMP.BUFFER 54066 . 55526) - (SPY.START.ENTRY 55528 . 55656) (SPY.ADD.ENTRY 55658 . 56090) (SPY.ORIGINAL 56092 . 56919) ( -SPY.OVERFLOW 56921 . 57022) (SPY.MERGE.CALLEES 57024 . 60060) (SPY.PRINT 60062 . 60385))))) + (FILEMAP (NIL (4660 7267 (SPYOBJ 4670 . 4959) (SPYOBJ.BUTTON 4961 . 5071) (SPYOBJ.SAVE 5073 . 5192) ( +SPYOBJ.COPY 5194 . 5256) (SPYOBJ.GET 5258 . 5387) (SPYOBJ.IMAGEBOX 5389 . 5913) (SPYOBJ.DISPLAY 5915 + . 6214) (SPYOBJ.LABEL 6216 . 6352) (SPYOBJ.HEIGHT 6354 . 6567) (SPYOBJ.COPYIN 6569 . 6612) ( +SPY.COPYBUTTON 6614 . 6706) (SPY.MERGEINFO 6708 . 7265)) (7731 49962 (SPY.FIND.TREE 7741 . 8150) ( +SPY.TOGGLE 8152 . 8342) (SPY.TREE 8344 . 9456) (SPY.LEGEND 9458 . 9808) (SPY.GRAPH.EDITOR 9810 . 19375 +) (SPY.END 19377 . 19619) (SPY.MAKEGRAPHNODES 19621 . 21721) (SPY.MAX 21723 . 22606) (SPY.MERGE 22608 + . 24039) (SPY.MERGE1 24041 . 30524) (SPY.MERGETREE 30526 . 33456) (SPY.NEXT.TREE 33458 . 34132) ( +SPY.SUM 34134 . 34823) (SPY.TITLE 34825 . 35042) (SPY.MAKE.TREE 35044 . 37069) (SPY.UPDATE.TITLE 37071 + . 39647) (SPY.DELETE 39649 . 40184) (SPY.DRAWBOX 40186 . 40711) (SPY.BUFFER.ENTRY 40713 . 41056) ( +SPY.BUTTON 41058 . 41627) (SPY.END.ENTRY 41629 . 41709) (SPY.START 41711 . 41995) (SPY.INIT 41997 . +42232) (\SPY.INTERRUPT 42234 . 43639) (SPY.DUMP.BUFFER 43641 . 45101) (SPY.START.ENTRY 45103 . 45231) +(SPY.ADD.ENTRY 45233 . 45665) (SPY.ORIGINAL 45667 . 46494) (SPY.OVERFLOW 46496 . 46597) ( +SPY.MERGE.CALLEES 46599 . 49635) (SPY.PRINT 49637 . 49960))))) STOP diff --git a/library/SPY.LCOM b/library/SPY.LCOM index cff2cb334d1b4a3d0c0e856cf4db87c74f1367bc..064bf49d77768929c549512c060eb3aacda2b263 100644 GIT binary patch delta 1068 zcmZuvO-vI}5Kd`n%R&uG5TP_YHUeAhHr;Kvt*;>I&$g8G&u&}6m{|Ud3KfH5j1oiz zHBl0EV>DhcCg?#8#yxP*1P_`Rh&MSHFPi9)XyU;W(b+y?iShDnzBk{@d^0<*Uuo7} zYHs${c-Zjp0Lwdg7veeW!DL*rBAiN# zxo9#gu_0&)9ldPN#Hc#66Y&nrIk5}IqU3%JBX^ap)li9OjA9VyLG)AzO-W!`Zqpty zl6N3?v^^S1{;aLnQ4G)xEmMlIx>GwSMnLL}=};yRgLy&oLiY?(^5wfo%4GQp(1^aB z&&6DaM@AO#gYhh2ykb8| zeONJAQk$q%h<&7T#hBu(Y}EiiSalEZXO$JuVp;-RGc^PLQcUGj&I`@V4G? zPDde+TYg}!m8Z>v@buMu7jUxiDir0s@?vML+-PYd9U>NE83a>JBgD;e(=1RCc}RE~ zO{xYqnj?gF(@`Dty50I%eZ~w1GQqq7qTu!$8d76r&m{=PZ5curY(Ai0Yz>6|wy7Ov z*$|=c*?cwFa;R59P6hr*r(GTFu>FZ1q?N)&z&U{id@jrbrraD!o^}5Kdd9Q4%2m(1 zdWvzOm|x1o;ikkuHj_yvq~b4Ao_a5oT1Bw=tL4p* delta 1174 zcmZuwTWHfz7^ds2T{WU^Uf0ck!D%{|(zMCCrs_zW)2_8mG)boeh0Qr{Tc>Uc-oYC_ zsCX%&ps)uK1rd=TKB(w}g6M-V*`t>iK@gqz;?uxCJ!4hy<;(fb|K3C*#J{|UbWpz_mS}KY$L-75pYgrs8%8e5@hm9n&^pafZcnc1qVQs;Has#>JFA&1k7En=&3@p5yaxE8SB>(KAnw ziY7eqO6Ty*WQ81?dE1ZuM932(O)^?a$JopJ4O*#X2yvmYZCnI^=G4%!cy-8J~|FWTwGy)#P>yO=BWM{s$x z{u*MP|19E7e+RYvS95_+^zv>6+F!E`&&FLS006uC+Q%8hDk`e!gce3PR4;Fi282 zR2+lG&5WcP!iA wlJ!&5^N}8`50H912M94>Tej~RF1Fww1nkJ(Lozn7M~TR|Q=7nkZ&c0t153#!1poj5 diff --git a/sources/ASTACK.LCOM b/sources/ASTACK.LCOM index 44f81c63c3bd85951372d299a9b4ab87265c406d..f17d73e49dcea1ca9a0b0099f1e310a52a85c270 100644 GIT binary patch delta 851 zcmX?S^U`{PhccIjo2QSfbC9cJh^vc&l97e3TWXT7k%5tkf`Pe}p_!GD<-{yyrp%nl z2N|Wp6}Xg)%n>S#jIE3T!DJi5RmZYWt zZNSuTvRRCgiBW`0!$ct_IK2 zA+9;hb_K3v@_hD#2u=ovJDjt5J4ZDmoHyBu>jHu!#JvQ;*~dKv!HME2L2$0|oRH+w zFf>*Ghev>dDU<p&FKP% z5xmJpLRyU0lVgR{7#%0K2$`~QIphdWJ|HB|vS|N?xXFSN!jpdsNibSX77W)WV}<16&7v$?>D(gSY6x9T){OkK*7k& zNFm1EHN?p=*wxK50w`bvj2$1(-~iX4Apal*OCWFZCE*}G0}BORBSRB&6ANQA6N|}} zB5A;wGRH_1n?H-_F)0Fr$HElo&mhOh0AR2v7@4Bz272B}+ys;oj7>3iui6OE8uK^#*9aL2BKNx zIWw7&wXPYLevi;@G)V=lH={EhSeZ(^>O=qo^MtJjjejr_9p|-x8K=bx-UpNBd zi~>xUg+fxyO$nNqkWOO*8wOd@6j4>PDnz4zHtcGirGb)USxgFYYw+egz|bM^Gc*_G zB5a6@0L?Nzc~Q2P895y1u>`_<)K*_{1Pq7px+6TUqY7sfyk=ndNOv*3%&$(aAu*QU zt1&e0zNUZ4LpSF#R(3W_mB~+A{noyQy4nguJMLdP@w=x>BU{5#$5S8P|H1GVYQF1~ diff --git a/sources/LLSTK b/sources/LLSTK index 95d4f736..026d813e 100644 --- a/sources/LLSTK +++ b/sources/LLSTK @@ -1,14 +1,14 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 6-Jan-93 18:07:37" |{PELE:MV:ENVOS}SOURCES>LLSTK.;9| 112417 - changes to%: (RECORDS FVARSLOT) +(FILECREATED "27-Feb-2024 22:46:53" {DSK}larry>il>medley>sources>LLSTK.;5 105300 - previous date%: "17-Dec-92 18:17:01" |{PELE:MV:ENVOS}SOURCES>LLSTK.;8|) + :EDIT-BY "lmm" + :CHANGES-TO (RECORDS FX) + (VARS LLSTKCOMS) + + :PREVIOUS-DATE "27-Feb-2024 22:31:40" {DSK}larry>il>medley>sources>LLSTK.;4) -(* ; " -Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 by Venue & Xerox Corporation. All rights reserved. -") (PRETTYCOMPRINT LLSTKCOMS) @@ -28,10 +28,10 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b (CONSTANTS \NT.IVAR \NT.PVAR \NT.FVAR)) (RECORDS STACKCELL)) (COMS (* ; - "For LAMBDA* and Common Lisp functions.") + "For LAMBDA* and Common Lisp functions.") (FNS \MYARGCOUNT \ARG0 \SETARG0)) (COMS (* ; - "basic spaghetti for allocating, moving and reclaiming stack frames") + "basic spaghetti for allocating, moving and reclaiming stack frames") (FNS \HARDRETURN \DOHARDRETURN \DOGC1 \DOGC \DOHARDRETURN1 \DOSTACKOVERFLOW \MOVEFRAME \INCUSECOUNT \DECUSECOUNT \MAKESTACKP \SMASHLINK \FREESTACKBLOCK \EXTENDSTACK)) (COMS (* ; "Some ugly stack-munging ufns") @@ -82,192 +82,186 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b EVAL@COMPILE (ADDVARS (DONTCOMPILEFNS SETUPSTACK))) (LOCALVARS . T) - (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) - (NLAML) - (LAMA SI::INTERNAL-THROW - - SI::NON-LOCAL-RETURN - ]) + (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS + (ADDVARS (NLAMA) + (NLAML) + (LAMA SI::INTERNAL-THROW-VALUES SI::INTERNAL-THROW SI::NON-LOCAL-RETURN-VALUES + SI::NON-LOCAL-RETURN]) (DECLARE%: DONTCOPY (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE -(ACCESSFNS BF ((BFBLOCK (ADDSTACKBASE DATUM))) (* ; "basic frame pointer") - (BLOCKRECORD BFBLOCK ((FLAGS BITS 3) - (NIL BITS 3) - (RESIDUAL FLAG) (* ; "true if this is not a full BF") - (PADDING BITS 1) - (USECNT BITS 8) - (IVAR WORD))) - (TYPE? (IEQ (fetch (BF FLAGS) of DATUM) - \STK.BF)) - [ACCESSFNS BF ((NARGS (IDIFFERENCE (FOLDLO (IDIFFERENCE DATUM (fetch - (BF IVAR) - of DATUM)) - WORDSPERCELL) - (fetch (BF PADDING) of DATUM))) - [SIZE (IPLUS 2 (IDIFFERENCE DATUM (fetch (BF IVAR) of DATUM] - (CHECKED (AND (type? BF DATUM) - (for I from (fetch (BF IVAR) of DATUM) - to (IDIFFERENCE DATUM 2) by 2 - always (IEQ \STK.NOTFLAG (fetch - (BF FLAGS) - of I]) +(ACCESSFNS BF ((BFBLOCK (ADDSTACKBASE DATUM))) (* ; "basic frame pointer") + (BLOCKRECORD BFBLOCK ((FLAGS BITS 3) + (NIL BITS 3) + (RESIDUAL FLAG) (* ; "true if this is not a full BF") + (PADDING BITS 1) + (USECNT BITS 8) + (IVAR WORD))) + (TYPE? (IEQ (fetch (BF FLAGS) of DATUM) + \STK.BF)) + [ACCESSFNS BF ((NARGS (IDIFFERENCE (FOLDLO (IDIFFERENCE DATUM (fetch (BF IVAR) + of DATUM)) + WORDSPERCELL) + (fetch (BF PADDING) of DATUM))) + [SIZE (IPLUS 2 (IDIFFERENCE DATUM (fetch (BF IVAR) of DATUM] + (CHECKED (AND (type? BF DATUM) + (for I from (fetch (BF IVAR) of DATUM) + to (IDIFFERENCE DATUM 2) by 2 + always (IEQ \STK.NOTFLAG (fetch (BF FLAGS) of I]) -(ACCESSFNS FX ((FXBLOCK (ADDSTACKBASE DATUM))) (* ; "frame extension index") - (BLOCKRECORD FXBLOCK ((FLAGS BITS 3) (* ; "= \STK.FX") - (FAST FLAG) - (NIL FLAG) - (INCALL FLAG) (* ; - "set when fncall microcode has to punt") - (VALIDNAMETABLE FLAG)(* ; - "if on, NAMETABLE field is filled in. If off, is same as FNHEADER") - (NOPUSH FLAG) (* ; - "when returning to this frame, don't push a value. Set by interrupt code") - (USECNT BITS 8) - (%#ALINK WORD) (* ; "low bit is SLOWP") - (FNHEADER FULLXPOINTER) - (NEXTBLOCK WORD) - (PC WORD) - (NAMETABLE# FULLXPOINTER) - (%#BLINK WORD) - (%#CLINK WORD))) - (BLOCKRECORD FXBLOCK ((FLAGBYTE BYTE) - (NIL BYTE) - (NIL BITS 15) (* ; "most of the bits of #ALINK") - (SLOWP FLAG) (* ; - "if on, then BLINK and CLINK fields are valid. If off, they are implicit") - (NIL FULLXPOINTER 2) - (NAMETABHI WORD) - (NAMETABLO WORD))) - (TYPE? (IEQ (fetch (FX FLAGS) of DATUM) - \STK.FX)) - [ACCESSFNS FX ((NAMETABLE (COND - ((fetch (FX VALIDNAMETABLE) of DATUM) - (fetch (FX NAMETABLE#) of DATUM)) - (T (fetch (FX FNHEADER) of DATUM))) - (PROGN (replace (FX FAST) of DATUM with NIL) - (replace (FX NAMETABLE#) of DATUM with - NEWVALUE) - (replace (FX VALIDNAMETABLE) of DATUM - with T))) - (FRAMENAME (fetch (FNHEADER FRAMENAME) - of (fetch (FX NAMETABLE) of DATUM))) - (INVALIDP (EQ DATUM 0)) (* ; - "true when A/CLink points at nobody, i.e. FX is bottom of stack") - [FASTP (NOT (fetch (FX SLOWP) of DATUM)) - (PROGN (CHECK (NULL NEWVALUE)) - (COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#BLINK) of DATUM - with (fetch (FX DUMMYBF) of DATUM)) - (replace (FX %#CLINK) of DATUM - with (fetch (FX %#ALINK) of DATUM)) - (replace (FX SLOWP) of DATUM with - T] - [BLINK (COND - ((fetch (FX FASTP) of DATUM) - (fetch (FX DUMMYBF) of DATUM)) - (T (fetch (FX %#BLINK) of DATUM))) - (PROGN (replace (FX %#BLINK) of DATUM with - NEWVALUE) - (COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#CLINK) of DATUM - with (fetch (FX %#ALINK) of DATUM)) - (replace (FX SLOWP) of DATUM with - T] - [CLINK (IDIFFERENCE (COND - ((fetch (FX FASTP) of DATUM) - (fetch (FX %#ALINK) of DATUM)) - (T (fetch (FX %#CLINK) of DATUM))) - \#ALINK.OFFSET) - (PROGN (replace (FX %#CLINK) of DATUM - with (IPLUS NEWVALUE \#ALINK.OFFSET)) - (COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#BLINK) of DATUM - with (fetch (FX DUMMYBF) of DATUM)) - (replace (FX SLOWP) of DATUM with - T] - [ALINK (IDIFFERENCE (FLOOR (fetch (FX %#ALINK) of DATUM) - WORDSPERCELL) - \#ALINK.OFFSET) - (PROGN [COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#BLINK) of DATUM - with (fetch (FX DUMMYBF) of DATUM)) - (replace (FX %#CLINK) of DATUM - with (fetch (FX %#ALINK) of DATUM] - (replace (FX %#ALINK) of DATUM - with (IPLUS NEWVALUE \#ALINK.OFFSET - (SUB1 WORDSPERCELL] - [ACLINK (SHOULDNT) - (PROGN [COND - ((fetch (FX FASTP) of DATUM) - (replace (FX %#BLINK) of DATUM - with (fetch (FX DUMMYBF) of DATUM] +(ACCESSFNS FX ((FXBLOCK (ADDSTACKBASE DATUM))) (* ; "frame extension index") + (BLOCKRECORD FXBLOCK ((FLAGS BITS 3) (* ; "= \STK.FX") + (FAST FLAG) + (NIL FLAG) + (INCALL FLAG) (* ; + "set when fncall microcode has to punt") + (VALIDNAMETABLE FLAG) (* ; + "if on, NAMETABLE field is filled in. If off, is same as FNHEADER") + (NOPUSH FLAG) (* ; + "when returning to this frame, don't push a value. Set by interrupt code") + (USECNT BITS 8) + (%#ALINK WORD) (* ; "low bit is SLOWP") + (FNHEADER FULLXPOINTER) + (NEXTBLOCK WORD) + (PC WORD) + (NAMETABLE# FULLXPOINTER) + (%#BLINK WORD) + (%#CLINK WORD))) + (BLOCKRECORD FXBLOCK ((FLAGBYTE BYTE) + (NIL BYTE) + (NIL BITS 15) (* ; "most of the bits of #ALINK") + (SLOWP FLAG) (* ; + "if on, then BLINK and CLINK fields are valid. If off, they are implicit") + (NIL FULLXPOINTER) (* ; "FNHEADER") + (NIL WORD) (* ; "NEXSTBLOCK") + (NIL WORD) (* ; "PC") + (NAMETABHI WORD) + (NAMETABLO WORD))) + (TYPE? (IEQ (fetch (FX FLAGS) of DATUM) + \STK.FX)) + [ACCESSFNS FX ((NAMETABLE (COND + ((fetch (FX VALIDNAMETABLE) of DATUM) + (fetch (FX NAMETABLE#) of DATUM)) + (T (fetch (FX FNHEADER) of DATUM))) + (PROGN (replace (FX FAST) of DATUM with NIL) + (replace (FX NAMETABLE#) of DATUM with NEWVALUE) + (replace (FX VALIDNAMETABLE) of DATUM with T))) + (FRAMENAME (fetch (FNHEADER FRAMENAME) of (fetch (FX NAMETABLE) + of DATUM))) + (INVALIDP (EQ DATUM 0)) (* ; + "true when A/CLink points at nobody, i.e. FX is bottom of stack") + [FASTP (NOT (fetch (FX SLOWP) of DATUM)) + (PROGN (CHECK (NULL NEWVALUE)) + (COND + ((fetch (FX FASTP) of DATUM) + (replace (FX %#BLINK) of DATUM + with (fetch (FX DUMMYBF) of DATUM)) (replace (FX %#CLINK) of DATUM - with (IPLUS NEWVALUE \#ALINK.OFFSET)) - (replace (FX %#ALINK) of DATUM - with (IPLUS NEWVALUE \#ALINK.OFFSET - (SUB1 WORDSPERCELL] + with (fetch (FX %#ALINK) of DATUM)) + (replace (FX SLOWP) of DATUM with T] + [BLINK (COND + ((fetch (FX FASTP) of DATUM) + (fetch (FX DUMMYBF) of DATUM)) + (T (fetch (FX %#BLINK) of DATUM))) + (PROGN (replace (FX %#BLINK) of DATUM with NEWVALUE) + (COND + ((fetch (FX FASTP) of DATUM) + (replace (FX %#CLINK) of DATUM + with (fetch (FX %#ALINK) of DATUM)) + (replace (FX SLOWP) of DATUM with T] + [CLINK (IDIFFERENCE (COND + ((fetch (FX FASTP) of DATUM) + (fetch (FX %#ALINK) of DATUM)) + (T (fetch (FX %#CLINK) of DATUM))) + \#ALINK.OFFSET) + (PROGN (replace (FX %#CLINK) of DATUM with (IPLUS NEWVALUE + \#ALINK.OFFSET) + ) + (COND + ((fetch (FX FASTP) of DATUM) + (replace (FX %#BLINK) of DATUM + with (fetch (FX DUMMYBF) of DATUM)) + (replace (FX SLOWP) of DATUM with T] + [ALINK (IDIFFERENCE (FLOOR (fetch (FX %#ALINK) of DATUM) + WORDSPERCELL) + \#ALINK.OFFSET) + (PROGN [COND + ((fetch (FX FASTP) of DATUM) + (replace (FX %#BLINK) of DATUM + with (fetch (FX DUMMYBF) of DATUM)) + (replace (FX %#CLINK) of DATUM + with (fetch (FX %#ALINK) of DATUM] + (replace (FX %#ALINK) of DATUM with (IPLUS NEWVALUE + \#ALINK.OFFSET + (SUB1 + WORDSPERCELL + ] + [ACLINK (SHOULDNT) + (PROGN [COND + ((fetch (FX FASTP) of DATUM) + (replace (FX %#BLINK) of DATUM + with (fetch (FX DUMMYBF) of DATUM] + (replace (FX %#CLINK) of DATUM with (IPLUS NEWVALUE + \#ALINK.OFFSET) + ) + (replace (FX %#ALINK) of DATUM with (IPLUS NEWVALUE + \#ALINK.OFFSET + (SUB1 + WORDSPERCELL + ] (* ; - "replaces A & C Links at once more efficiently than separately") - (DUMMYBF (IDIFFERENCE DATUM WORDSPERCELL)) + "replaces A & C Links at once more efficiently than separately") + (DUMMYBF (IDIFFERENCE DATUM WORDSPERCELL)) - (* ;; "This is either an actual BF or %"residual%" BF that provides enough BF to find its IVAR slot. This means that when a FX is copied, the cell preceding the FX is copied too.") + (* ;; "This is either an actual BF or %"residual%" BF that provides enough BF to find its IVAR slot. This means that when a FX is copied, the cell preceding the FX is copied too.") - (IVAR (fetch (BF IVAR) of (fetch (FX DUMMYBF) - of DATUM))) - [CHECKED (AND (type? FX DATUM) - (OR (IEQ (fetch (FX DUMMYBF) of DATUM) - (fetch (FX BLINK) of DATUM)) - (AND (fetch (BF RESIDUAL) - of (fetch (FX DUMMYBF) - of DATUM)) - (IEQ (fetch (BF IVAR) - of (fetch (FX DUMMYBF) - of DATUM)) - (fetch (BF IVAR) - of (fetch (FX BLINK) - of DATUM] - (FIRSTPVAR (IPLUS DATUM (fetch (FX FXSIZE) of T))) + (IVAR (fetch (BF IVAR) of (fetch (FX DUMMYBF) of DATUM))) + [CHECKED (AND (type? FX DATUM) + (OR (IEQ (fetch (FX DUMMYBF) of DATUM) + (fetch (FX BLINK) of DATUM)) + (AND (fetch (BF RESIDUAL) of (fetch (FX DUMMYBF) + of DATUM)) + (IEQ (fetch (BF IVAR) of (fetch (FX DUMMYBF) + of DATUM)) + (fetch (BF IVAR) of (fetch (FX BLINK) + of DATUM] + (FIRSTPVAR (IPLUS DATUM (fetch (FX FXSIZE) of T))) (* ; "stack offset of PVAR0") - (FXSIZE (PROGN 10)) (* ; - "fixed overhead from flags thru clink") - (PADDING (PROGN 4)) (* ; - "doublecell of garbage for microcode use") - (FIRSTTEMP (IPLUS (fetch (FX FIRSTPVAR) of DATUM) - (fetch (FX NPVARWORDS) of DATUM) - (fetch (FX PADDING) of DATUM))) + (FXSIZE (PROGN 10)) (* ; + "fixed overhead from flags thru clink") + (PADDING (PROGN 4)) (* ; + "doublecell of garbage for microcode use") + (FIRSTTEMP (IPLUS (fetch (FX FIRSTPVAR) of DATUM) + (fetch (FX NPVARWORDS) of DATUM) + (fetch (FX PADDING) of DATUM))) (* ; - "note that NPVARWORDS is obtained from the FNHEADER") - (SIZE (IDIFFERENCE (fetch (FX NEXTBLOCK) of DATUM) - DATUM]) + "note that NPVARWORDS is obtained from the FNHEADER") + (SIZE (IDIFFERENCE (fetch (FX NEXTBLOCK) of DATUM) + DATUM]) (ACCESSFNS FSB - (* ;; "FREE STACK BLOCK -- ") + (* ;; "FREE STACK BLOCK -- ") - (* ;; " A piece of stack space that's free.") + (* ;; " A piece of stack space that's free.") - (* ;; "The first word contains 120000Q") + (* ;; "The first word contains 120000Q") - (* ;; "The 2nd word is the size of the block, in words.") + (* ;; "The 2nd word is the size of the block, in words.") - ((FSBBLOCK (ADDSTACKBASE DATUM)) - (CHECKED (IEQ (fetch (FSB FLAGWORD) of DATUM) - \STK.FSB.WORD))) - (BLOCKRECORD FSBBLOCK ((FLAGS BITS 3) - (DUMMY BITS 13) - (SIZE WORD))) - (BLOCKRECORD FSBBLOCK ((FLAGWORD WORD) - (SIZE WORD))) (* ; "free stack block") - (TYPE? (IEQ (fetch (FSB FLAGS) of DATUM) - \STK.FSB))) + ((FSBBLOCK (ADDSTACKBASE DATUM)) + (CHECKED (IEQ (fetch (FSB FLAGWORD) of DATUM) + \STK.FSB.WORD))) + (BLOCKRECORD FSBBLOCK ((FLAGS BITS 3) + (DUMMY BITS 13) + (SIZE WORD))) + (BLOCKRECORD FSBBLOCK ((FLAGWORD WORD) + (SIZE WORD))) (* ; "free stack block") + (TYPE? (IEQ (fetch (FSB FLAGS) of DATUM) + \STK.FSB))) -(ACCESSFNS STK ((STKBLOCK (ADDSTACKBASE DATUM))) (* ; "unspecified stack block") - (BLOCKRECORD STKBLOCK ((FLAGS BITS 3))) - (BLOCKRECORD STKBLOCK ((FLAGWORD WORD)))) +(ACCESSFNS STK ((STKBLOCK (ADDSTACKBASE DATUM))) (* ; "unspecified stack block") + (BLOCKRECORD STKBLOCK ((FLAGS BITS 3))) + (BLOCKRECORD STKBLOCK ((FLAGWORD WORD)))) ) (DECLARE%: EVAL@COMPILE @@ -287,47 +281,44 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b (PUTPROPS ADDSTACKBASE DMACRO (= . STACKADDBASE)) (PUTPROPS STACKADDBASE DMACRO ((N) - (VAG2 \STACKHI N))) + (VAG2 \STACKHI N))) (PUTPROPS STACKGETBASE DMACRO ((N) - (\GETBASE (STACKADDBASE N) - 0))) + (\GETBASE (STACKADDBASE N) + 0))) (PUTPROPS STACKGETBASEPTR DMACRO ((N) - (\GETBASEPTR (STACKADDBASE N) - 0))) + (\GETBASEPTR (STACKADDBASE N) + 0))) (PUTPROPS STACKPUTBASE DMACRO ((N V) - (\PUTBASE (STACKADDBASE N) - 0 V))) + (\PUTBASE (STACKADDBASE N) + 0 V))) (PUTPROPS STACKPUTBASEPTR DMACRO ((N V) - (\PUTBASEPTR (STACKADDBASE N) - 0 V))) + (\PUTBASEPTR (STACKADDBASE N) + 0 V))) (PUTPROPS \MISCAPPLY* MACRO ((FN ARG1 ARG2) - (UNINTERRUPTABLY - (replace (IFPAGE MISCSTACKFN) of \InterfacePage - with FN) - (replace (IFPAGE MISCSTACKARG1) of \InterfacePage - with ARG1) - (replace (IFPAGE MISCSTACKARG2) of \InterfacePage - with ARG2) - (\CONTEXTSWITCH \MiscFXP) - (fetch (IFPAGE MISCSTACKRESULT) of \InterfacePage)))) + (UNINTERRUPTABLY + (replace (IFPAGE MISCSTACKFN) of \InterfacePage with FN) + (replace (IFPAGE MISCSTACKARG1) of \InterfacePage with ARG1) + (replace (IFPAGE MISCSTACKARG2) of \InterfacePage with ARG2) + (\CONTEXTSWITCH \MiscFXP) + (fetch (IFPAGE MISCSTACKRESULT) of \InterfacePage)))) ) (DECLARE%: EVAL@COMPILE (BLOCKRECORD STACKP ((STACKP0 WORD) - (EDFXP WORD)) - (BLOCKRECORD STACKP ((STACKPOINTER FULLXPOINTER))) - (TYPE? (STACKP DATUM))) + (EDFXP WORD)) + (BLOCKRECORD STACKP ((STACKPOINTER FULLXPOINTER))) + (TYPE? (STACKP DATUM))) ) (RPAQQ STACKTYPES (\STK.GUARD \STK.FX \STK.BF \STK.NOTFLAG \STK.FSB \STK.FLAGS.SHIFT - (\STK.FSB.WORD (LLSH \STK.FSB \STK.FLAGS.SHIFT)) - (\STK.GUARD.WORD (LLSH \STK.GUARD \STK.FLAGS.SHIFT)) - (\STK.BF.WORD (LLSH \STK.BF \STK.FLAGS.SHIFT)))) + (\STK.FSB.WORD (LLSH \STK.FSB \STK.FLAGS.SHIFT)) + (\STK.GUARD.WORD (LLSH \STK.GUARD \STK.FLAGS.SHIFT)) + (\STK.BF.WORD (LLSH \STK.BF \STK.FLAGS.SHIFT)))) (DECLARE%: EVAL@COMPILE (RPAQQ \STK.GUARD 7) @@ -375,44 +366,44 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b (DECLARE%: EVAL@COMPILE (BLOCKRECORD NAMETABLESLOT ((VARTYPE BYTE) - (VAROFFSET BYTE))) + (VAROFFSET BYTE))) (BLOCKRECORD FVARSLOT ((BINDLO WORD) - (BINDHI WORD)) - [ACCESSFNS FVARSLOT ((LOOKEDUP (EVENP (fetch BINDLO of DATUM))) - (BINDINGPTR (\VAG2 (fetch BINDHI of DATUM) - (fetch BINDLO of DATUM)) - (PROGN (replace BINDLO of DATUM - with (\LOLOC NEWVALUE)) - (replace BINDHI of DATUM - with (\HILOC NEWVALUE]) + (BINDHI WORD)) + [ACCESSFNS FVARSLOT ((LOOKEDUP (EVENP (fetch BINDLO of DATUM))) + (BINDINGPTR (\VAG2 (fetch BINDHI of DATUM) + (fetch BINDLO of DATUM)) + (PROGN (replace BINDLO of DATUM with (\LOLOC + NEWVALUE + )) + (replace BINDHI of DATUM with (\HILOC + NEWVALUE + ]) (BLOCKRECORD PVARSLOT ((PVHI BITS 4) - (PVVALUE XPOINTER)) - [ACCESSFNS PVARSLOT ((BOUND (EQ (fetch (PVARSLOT PVHI) of DATUM) - 0) - (if (NULL NEWVALUE) - then (replace (PVARSLOT PVHI) - of DATUM with 255) - else (ERROR "Illegal replace" NEWVALUE]) + (PVVALUE XPOINTER)) + [ACCESSFNS PVARSLOT ((BOUND (EQ (fetch (PVARSLOT PVHI) of DATUM) + 0) + (if (NULL NEWVALUE) + then (replace (PVARSLOT PVHI) of DATUM + with 255) + else (ERROR "Illegal replace" NEWVALUE]) (BLOCKRECORD STKTEMPSLOT ((STKTMPHI BITS 4) - (VALUE XPOINTER)) - [ACCESSFNS STKTEMPSLOT ((BINDINGPTRP (NEQ (fetch STKTMPHI - of DATUM) - 0]) + (VALUE XPOINTER)) + [ACCESSFNS STKTEMPSLOT ((BINDINGPTRP (NEQ (fetch STKTMPHI of DATUM) + 0]) (BLOCKRECORD BINDMARKSLOT ((BINDMARKP FLAG) - (NIL BITS 15)) - (BLOCKRECORD BINDMARKSLOT ((BINDNEGVALUES WORD) - (BINDLASTPVAR WORD))) - [ACCESSFNS BINDMARKSLOT ((BINDNVALUES (PROGN + (NIL BITS 15)) + (BLOCKRECORD BINDMARKSLOT ((BINDNEGVALUES WORD) + (BINDLASTPVAR WORD))) + [ACCESSFNS BINDMARKSLOT ((BINDNVALUES (PROGN (* ; - "Value stored in high half is one's complement of number of values bound") - (LOGXOR (fetch - BINDNEGVALUES - of DATUM) - 65535]) + "Value stored in high half is one's complement of number of values bound") + (LOGXOR (fetch BINDNEGVALUES + of DATUM) + 65535]) ) (DECLARE%: EVAL@COMPILE @@ -432,13 +423,12 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b (DECLARE%: EVAL@COMPILE (BLOCKRECORD STACKCELL ((STACKNONPOINTERBITS BITS 8) - (STACKHIBITS BITS 8) - (STACKLOBITS WORD)) - [ACCESSFNS STACKCELL ((VALIDPOINTERP (EQ 0 (fetch (STACKCELL - STACKNONPOINTERBITS - ) - of DATUM))) - (VALIDPOINTER (\GETBASEPTR DATUM 0]) + (STACKHIBITS BITS 8) + (STACKLOBITS WORD)) + [ACCESSFNS STACKCELL ((VALIDPOINTERP (EQ 0 (fetch (STACKCELL + STACKNONPOINTERBITS) + of DATUM))) + (VALIDPOINTER (\GETBASEPTR DATUM 0]) ) ) @@ -1221,10 +1211,9 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b ) ) -(RPAQQ *HARDRESET-IGNORE-VARS* (SI::*CLEANUP-FORMS* SI::*DUMMY-FOR-CATCH* SI::*CATCH-RETURN-FROM* - SI::*CATCH-RETURN-TO* *FORM* *ARGVAL* *FN* *TAIL* - *FIRSTTAIL* \INTERNAL \INTERRUPTABLE SI::*NLSETQFLAG* - *PROCEED-CASES*)) +(RPAQQ *HARDRESET-IGNORE-VARS* (SI::*CLEANUP-FORMS* SI::*DUMMY-FOR-CATCH* SI::*CATCH-RETURN-FROM* + SI::*CATCH-RETURN-TO* *FORM* *ARGVAL* *FN* *TAIL* *FIRSTTAIL* + \INTERNAL \INTERRUPTABLE SI::*NLSETQFLAG* *PROCEED-CASES*)) (DECLARE%: DOEVAL@COMPILE DONTCOPY (GLOBALVARS *HARDRESET-IGNORE-VARS*) @@ -1303,118 +1292,31 @@ EVAL@COMPILE (ADDTOVAR NLAML ) -(ADDTOVAR LAMA SI::INTERNAL-THROW SI::NON-LOCAL-RETURN) -) -(PRETTYCOMPRINT LLSTKCOMS) - -(RPAQQ LLSTKCOMS - [(DECLARE%: DONTCOPY (EXPORT (RECORDS BF FX FSB STK) - (CONSTANTS \#ALINK.OFFSET) - (GLOBALVARS \PENDINGINTERRUPT \KBDSTACKBASE \MISCSTACKBASE - \STACKOVERFLOW) - (MACROS \MYALINK ADDSTACKBASE STACKADDBASE STACKGETBASE - STACKGETBASEPTR STACKPUTBASE STACKPUTBASEPTR \MISCAPPLY*) - (RECORDS STACKP) - (CONSTANTS * STACKTYPES) - (CONSTANTS \StackAreaSize (\InitStackSize (ITIMES \StackAreaSize - 12))) - (CONSTANTS \MAXSAFEUSECOUNT) - (RECORDS NAMETABLESLOT FVARSLOT PVARSLOT STKTEMPSLOT BINDMARKSLOT) - (CONSTANTS \NT.IVAR \NT.PVAR \NT.FVAR)) - (RECORDS STACKCELL)) - (COMS (* ; - "For LAMBDA* and Common Lisp functions.") - (FNS \MYARGCOUNT \ARG0 \SETARG0)) - (COMS (* ; - "basic spaghetti for allocating, moving and reclaiming stack frames") - (FNS \HARDRETURN \DOHARDRETURN \DOGC1 \DOGC \DOHARDRETURN1 \DOSTACKOVERFLOW \MOVEFRAME - \INCUSECOUNT \DECUSECOUNT \MAKESTACKP \SMASHLINK \FREESTACKBLOCK \EXTENDSTACK)) - (COMS (* ; "Some ugly stack-munging ufns") - (FNS \SLOWRETURN \COPY.N.UFN \POP.N.UFN \STORE.N.UFN \UNWIND.UFN)) - (COMS (* ; "The unwinder") - (FNS SI::NON-LOCAL-GO SI::NON-LOCAL-RETURN SI::NON-LOCAL-RETURN-VALUES - SI::INTERNAL-THROW SI::INTERNAL-THROW-VALUES SI::UNWIND-TO-BLIP SI::UNWIND - SI::VARIABLE-NAME-IN-FRAME SI::PVAR-VALUE-IN-FRAME) - (FNS \DISCARDFRAME \SMASHRETURN)) - (COMS (* ; "parsing stack for gc") - (FNS \GCSCANSTACK)) - (COMS (* ; "setting up stack from scratch") - (FNS CLEARSTK HARDRESET RELSTK RELSTKP) - (FNS SETUPSTACK \SETUPSTACK1 \MAKEFRAME \RESETSTACK \RESETSTACK0 \SETUPUSERSTACK - \SETUPGUARDBLOCK \MAKEFREEBLOCK \REPEATEDLYEVALQT \DUMMYKEYHANDLER \DUMMYTELERAID - \CAUSEINTERRUPT \CONTEXTAPPLY \INTERRUPTFRAME \INTERRUPTED \CODEFORTFRAME - \DOMISCAPPLY \DOMISCAPPLY1) - (INITVARS \SAVED.USER.CONTEXT \NEED.HARDRESET.CLEANUP) - (GLOBALVARS \SAVED.USER.CONTEXT \NEED.HARDRESET.CLEANUP)) - (COMS (* ; "HARDRESET recovery code") - (FNS \GATHER-CLEANUP-FORMS \GATHER-CLEANUP-FORMS1 \GATHER-SPECIAL-BINDINGS - \HARDRESET-CLEANUP \HARDRESET-CLEANUP1 \HARDRESET-CLEANUP-RUN) - (VARS *HARDRESET-IGNORE-VARS*) - (GLOBALVARS *HARDRESET-IGNORE-VARS*)) - (COMS (* ; "Ufns for RETCALL") - (FNS \DORETCALL \RETCALL)) - (INITVARS (STACKTESTING T)) - (COMS (* ; "Stack overflow handler") - (FNS \DOSTACKFULLINTERRUPT STACK.FULL.WARNING \CLEANUP.STACKFULL) - (INITVARS (\PENDINGINTERRUPT) - (\STACKOVERFLOW) - (AUTOHARDRESETFLG T)) - (ADDVARS (RESETFORMS (SETQ \STACKOVERFLOW))) - (GLOBALVARS AUTOHARDRESETFLG)) - (DECLARE%: DONTCOPY - (ADDVARS [INEWCOMS (FNS SETUPSTACK \SETUPSTACK1 \SETUPGUARDBLOCK \MAKEFREEBLOCK) - (ALLOCAL (ADDVARS (LOCKEDFNS \RESETSTACK0 \MAKEFRAME \SETUPSTACK1 - \MAKEFREEBLOCK \FAULTHANDLER \KEYHANDLER - \DUMMYKEYHANDLER \DOTELERAID \DUMMYTELERAID - \DOHARDRETURN \DOGC \CAUSEINTERRUPT - \INTERRUPTFRAME \CODEFORTFRAME - \DOSTACKOVERFLOW \UNLOCKPAGES \DOMISCAPPLY) - (LOCKEDVARS \InterfacePage \DEFSPACE \STACKSPACE - \KBDSTACKBASE \MISCSTACKBASE - \SAVED.USER.CONTEXT \RUNNING.PROCESS - \NEED.HARDRESET.CLEANUP] - (EXPANDMACROFNS ADDSTACKBASE STACKADDBASE)) - EVAL@COMPILE - (ADDVARS (DONTCOMPILEFNS SETUPSTACK))) - (LOCALVARS . T) - (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS - (ADDVARS (NLAMA) - (NLAML) - (LAMA SI::INTERNAL-THROW-VALUES SI::INTERNAL-THROW SI::NON-LOCAL-RETURN-VALUES - SI::NON-LOCAL-RETURN]) -(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS - -(ADDTOVAR NLAMA ) - -(ADDTOVAR NLAML ) - (ADDTOVAR LAMA SI::INTERNAL-THROW-VALUES SI::INTERNAL-THROW SI::NON-LOCAL-RETURN-VALUES - SI::NON-LOCAL-RETURN) + SI::NON-LOCAL-RETURN) ) -(PUTPROPS LLSTK COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 1991 -1992 1993)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (26973 28438 (\MYARGCOUNT 26983 . 27268) (\ARG0 27270 . 27836) (\SETARG0 27838 . 28436)) - (28522 45444 (\HARDRETURN 28532 . 28748) (\DOHARDRETURN 28750 . 28929) (\DOGC1 28931 . 29146) (\DOGC -29148 . 29253) (\DOHARDRETURN1 29255 . 33570) (\DOSTACKOVERFLOW 33572 . 34472) (\MOVEFRAME 34474 . -38001) (\INCUSECOUNT 38003 . 38769) (\DECUSECOUNT 38771 . 39916) (\MAKESTACKP 39918 . 40378) ( -\SMASHLINK 40380 . 41833) (\FREESTACKBLOCK 41835 . 44576) (\EXTENDSTACK 44578 . 45442)) (45490 49233 ( -\SLOWRETURN 45500 . 45638) (\COPY.N.UFN 45640 . 45805) (\POP.N.UFN 45807 . 46482) (\STORE.N.UFN 46484 - . 46658) (\UNWIND.UFN 46660 . 49231)) (49263 60146 (SI::NON-LOCAL-GO 49273 . 49771) ( -SI::NON-LOCAL-RETURN 49773 . 50498) (SI::NON-LOCAL-RETURN-VALUES 50500 . 51073) (SI::INTERNAL-THROW -51075 . 51743) (SI::INTERNAL-THROW-VALUES 51745 . 52251) (SI::UNWIND-TO-BLIP 52253 . 55986) (SI::UNWIND - 55988 . 57544) (SI::VARIABLE-NAME-IN-FRAME 57546 . 58466) (SI::PVAR-VALUE-IN-FRAME 58468 . 60144)) ( -60147 63781 (\DISCARDFRAME 60157 . 62105) (\SMASHRETURN 62107 . 63779)) (63819 70819 (\GCSCANSTACK -63829 . 70817)) (70866 72307 (CLEARSTK 70876 . 71570) (HARDRESET 71572 . 71693) (RELSTK 71695 . 71893) - (RELSTKP 71895 . 72305)) (72308 84299 (SETUPSTACK 72318 . 73336) (\SETUPSTACK1 73338 . 75247) ( -\MAKEFRAME 75249 . 75602) (\RESETSTACK 75604 . 75907) (\RESETSTACK0 75909 . 79013) (\SETUPUSERSTACK -79015 . 80719) (\SETUPGUARDBLOCK 80721 . 80887) (\MAKEFREEBLOCK 80889 . 81128) (\REPEATEDLYEVALQT -81130 . 81261) (\DUMMYKEYHANDLER 81263 . 81565) (\DUMMYTELERAID 81567 . 81680) (\CAUSEINTERRUPT 81682 - . 82730) (\CONTEXTAPPLY 82732 . 82944) (\INTERRUPTFRAME 82946 . 83140) (\INTERRUPTED 83142 . 83354) ( -\CODEFORTFRAME 83356 . 83612) (\DOMISCAPPLY 83614 . 83689) (\DOMISCAPPLY1 83691 . 84297)) (84513 -102751 (\GATHER-CLEANUP-FORMS 84523 . 84899) (\GATHER-CLEANUP-FORMS1 84901 . 88530) ( -\GATHER-SPECIAL-BINDINGS 88532 . 91506) (\HARDRESET-CLEANUP 91508 . 95965) (\HARDRESET-CLEANUP1 95967 - . 102300) (\HARDRESET-CLEANUP-RUN 102302 . 102749)) (103213 104265 (\DORETCALL 103223 . 104165) ( -\RETCALL 104167 . 104263)) (104333 105268 (\DOSTACKFULLINTERRUPT 104343 . 104551) (STACK.FULL.WARNING -104553 . 104921) (\CLEANUP.STACKFULL 104923 . 105266))))) + (FILEMAP (NIL (25672 27137 (\MYARGCOUNT 25682 . 25967) (\ARG0 25969 . 26535) (\SETARG0 26537 . 27135)) + (27221 44143 (\HARDRETURN 27231 . 27447) (\DOHARDRETURN 27449 . 27628) (\DOGC1 27630 . 27845) (\DOGC +27847 . 27952) (\DOHARDRETURN1 27954 . 32269) (\DOSTACKOVERFLOW 32271 . 33171) (\MOVEFRAME 33173 . +36700) (\INCUSECOUNT 36702 . 37468) (\DECUSECOUNT 37470 . 38615) (\MAKESTACKP 38617 . 39077) ( +\SMASHLINK 39079 . 40532) (\FREESTACKBLOCK 40534 . 43275) (\EXTENDSTACK 43277 . 44141)) (44189 47932 ( +\SLOWRETURN 44199 . 44337) (\COPY.N.UFN 44339 . 44504) (\POP.N.UFN 44506 . 45181) (\STORE.N.UFN 45183 + . 45357) (\UNWIND.UFN 45359 . 47930)) (47962 58845 (SI::NON-LOCAL-GO 47972 . 48470) ( +SI::NON-LOCAL-RETURN 48472 . 49197) (SI::NON-LOCAL-RETURN-VALUES 49199 . 49772) (SI::INTERNAL-THROW +49774 . 50442) (SI::INTERNAL-THROW-VALUES 50444 . 50950) (SI::UNWIND-TO-BLIP 50952 . 54685) (SI::UNWIND + 54687 . 56243) (SI::VARIABLE-NAME-IN-FRAME 56245 . 57165) (SI::PVAR-VALUE-IN-FRAME 57167 . 58843)) ( +58846 62480 (\DISCARDFRAME 58856 . 60804) (\SMASHRETURN 60806 . 62478)) (62518 69518 (\GCSCANSTACK +62528 . 69516)) (69565 71006 (CLEARSTK 69575 . 70269) (HARDRESET 70271 . 70392) (RELSTK 70394 . 70592) + (RELSTKP 70594 . 71004)) (71007 82998 (SETUPSTACK 71017 . 72035) (\SETUPSTACK1 72037 . 73946) ( +\MAKEFRAME 73948 . 74301) (\RESETSTACK 74303 . 74606) (\RESETSTACK0 74608 . 77712) (\SETUPUSERSTACK +77714 . 79418) (\SETUPGUARDBLOCK 79420 . 79586) (\MAKEFREEBLOCK 79588 . 79827) (\REPEATEDLYEVALQT +79829 . 79960) (\DUMMYKEYHANDLER 79962 . 80264) (\DUMMYTELERAID 80266 . 80379) (\CAUSEINTERRUPT 80381 + . 81429) (\CONTEXTAPPLY 81431 . 81643) (\INTERRUPTFRAME 81645 . 81839) (\INTERRUPTED 81841 . 82053) ( +\CODEFORTFRAME 82055 . 82311) (\DOMISCAPPLY 82313 . 82388) (\DOMISCAPPLY1 82390 . 82996)) (83212 +101450 (\GATHER-CLEANUP-FORMS 83222 . 83598) (\GATHER-CLEANUP-FORMS1 83600 . 87229) ( +\GATHER-SPECIAL-BINDINGS 87231 . 90205) (\HARDRESET-CLEANUP 90207 . 94664) (\HARDRESET-CLEANUP1 94666 + . 100999) (\HARDRESET-CLEANUP-RUN 101001 . 101448)) (101862 102914 (\DORETCALL 101872 . 102814) ( +\RETCALL 102816 . 102912)) (102982 103917 (\DOSTACKFULLINTERRUPT 102992 . 103200) (STACK.FULL.WARNING +103202 . 103570) (\CLEANUP.STACKFULL 103572 . 103915))))) STOP diff --git a/sources/LLSTK.LCOM b/sources/LLSTK.LCOM index a80c21d00cc12535373e386fd6998e0cb89e37d4..6021599f066bfb660096c2bfb8cf370b1a2aa794 100644 GIT binary patch delta 3524 zcmai0X>1$E6&58~$J$OTi`3~#BRWzjiKLd7B+@qJ6?aLkwcK6qA(=MqM3(5-H5FO5 zQ#4I|Aq7$(JzNipHfaz8y?*3JlbSWqTW#}4K^vfM+6F-pwCRtuKvBSHe-s50v~Ole zF69XDpU2_6H}8Jm+k1Ch-+jq-BXgDGd}&#cQidd0l8C(FsX)4TDiG$wQ4|g*qLYbO z)Qf!H<+auGXG_HuwDu(OqGv>N{_?>yYpca%Y3ag+r;}$($<^XYsrYpA;@VRemWvmY zieg&x!2_{T#CgL}M`P1{4H7BSU$qZN;@)=S}Gei@mkB%bW zf?$}4hMLl{<|s<&hO{7Swiys1pC3zSB$SBqps<#|w~V6a>M45W*9UYhKP5i=l#P38{Hg7g7?W3}j5na>Rbo zc(JGUdQLDzL$Yi`Wjf}Y`ul23QM;dgttkX1qNpH0d8v5e^wM%sUwWd*jEGt$6=GW6 zYLXoX$vwLcHV^f0tDHS6f3jJ2xmxfKc3f+1otNMF{hO`j11$+xi1UR)sF2cBOFC+q zi?WrPtD2;dY73H)R#e*u zj0#zJnl^;2gre{d(q!wlDH&8N3Qyw0c2_r;irpVEicI0_W4#>_c(o-J_?M9`{Pni( zPMUW|JuT3$+Fpe4PPBiuwe`s1KR|f+zwOVuIDDBK@lbhLO@Vo*?)Zn??Hx2@cx`8J zFINzytpep&cecBnYG#FbiTbXyg#UKeb;S9?5u_VhN;1t#H)I8KPLb7lDpX$Ieap44 zR+h9OF%`3lma0hjAAZUOZhmvmFwo6CGvEjmLQ+MRCmLIC$J@aCpkv+5Iu6QF-&dd7 zd&qG!rRn*g8nn}uru+3?en0Ihs;{nZbxp6A8|W;JKrh6%X>dz3quM7QS{#02OlD~gn%44OwgWO$ls?BDQwzK8Qo zPSqq>>BmvWRnHAG7d!_ZhhN_YC)w zd*UaH1Mn#@tH`X}i@9TLc93Xp=03W>S=wSC`q^;Vx0Owv+y^)6cjM~Ex81_yxtd{BUv$)rGs zTGuii=#snT+`Zd_=jQId(eg&Kr*Q*Lo2~c-v>JQ74c1`0y8;!7wE7s4heQ z8y;~qJ4}Z6<>bgnql+sSeRGYhoZlbo1gun$k4LkDDUBk4LR1j7v|uZitjZQ#0Fc5y zQv^Ail~wp3CRo`5Sb4gk3IA~{=hk1QNV&PY)N~J*TCQy5mYZ>Ud=d&V4Xb4f+My{5 zgZQuGv0gUzB>IdEt>VB3=KTQ&_6bB0jH%;)+CSkm->ZI4Bj>|^-sQo6@=w)9vmn~p zY<^zK!(J8@$zUa!2!xNr;K6PX05@gW4~Aju7OgOQVM!n?$f8r`R#N6t&y|hWKCG|w zeJYs#p9a>TbpD`ByRf=}1YKA1OyK$8iE+|kThqeq*W9VAc8K?2-^4B_9W^2N6eDxx zOXI)na^vNRM}jZ`5me9tW@R-~lViG5nkc0;!>Ut#XChBQbn84o^|NGl9hXDAw{ET- zZe^}k`51)!Eq;=uHD1DU$;A%E`KcT0_Y6KYKChknozu+aWl#9OkRSa z!hP{+pk{m?=&kr5(2e*gD2*cc+qHu|BBzS@7n33J~-6!0cN^TCQG!fvu)qbO9i z{8plq#PzoWWSj0jIPee$6Y21A{GbhtFCScBG31hc6(enjE<+5EF#>0*tp_Pmkk4r5 zPA=)GNdEZHZBVhA9AWE%d<_PPTyRk^NKu&6-%Ij?RY3c=PA2nFauqb4n>opxc`w@s ze?QEg0{WPG9OzF}avspg`7_#SpzmpmK;t^0U(t&||D&G-x{xE>pXHW;4jJU;nnAel z8#$oUCgI+qw8bLY)bw&Imr=A?LBUtjA^edQfLmxt=sFQj>ltFIa!q!$wxZAW)9#lE+&EZn?)k+KT51WfAj><&#HsCEq@qJa{h6kujGjz z9mh^LbEB|*k90p^-x@QO;#AX**^ hzNSdV2`CW-Guw`Ig+pIdzh=Sui!|MLvg7O{@c)tPj~M^} delta 3796 zcmd^C>u(%a75DlPCuyfi{8&4-8(*&zch~l=XZGoxI_r#QW_QP)omtP!+HvEgb?r@J zyzx3-yHGU`q9Td}g(O48LkL<4fg*|uSt0QfE)^e~4@IIaDySfc_y7nY89r3~Pz2}R zyXzf?@)xil&fdM}-1EBU{LbBPea*G=1J}*eb;g@iR9Q4+!ICB9332|(g;jri6mcxi z26-;#L0->d@zUCIA-{x*tH^_x=OlCL>e$k9X(fS4F!8aa(nhgZC?yJup+sT1w6<7W z&xZnRqEy^mU(A;hs%lzOfyX%?SYZ8`g>`>Cf`Tj`x*p=$um?SjEfgMGLd&a&@nrH# zh5WOK3;Tu53s^D`2zb!a!UlNYsqJzRJ{aS}qaNP_L7*rNB80e6o{jM#2;$0fSy`3& z%nUDUGrDHETD-WhdLdsz8^sem@-l`j>V{;Z zF?E_y#f_F6Ni=i~e{JTjpXs%l%Kw)G%^d9=+mY<}-7GkrMTs zW+7f0W$X`J@fJo?RK^QTV6k*ttS@>PZzO`|O-m4`%&Z{FkOz=4WveFkPJO9!_jFn? zBty1xhDLQf+0fm!%ars7* zY=g(Bj;VvseoVFsP1m-*_kJB#N6z{jM{0(t%JQ{F#pP9_MJDI%KARu z)ya4{4$X_YX33{5b5^m$G;zm%rMb<66{0#BTYCzVyDa%y+IGEJzjd(#cI>}4v;B~< zj6NeL4Iv|=FwP%jB%3p3gCr6K+%9B3!(R=ZaG==R@Ad|0WFYAR_gM-7Pg-h-h-u`)w52yKx<(D zN+SLdJz(jE>=b>yHFW$VRpzu=MU!f_JKA<0t>(Z~cwW;rKO{g<{VAR1@_73be#k)> zDXJ=`2!o_^ue3AR@3emgN;ewYJwchYbcdy$Mv}1=_c@Sq=ygince^2-AGmJ={cOho zT!N3W8MTWZeY@i#?2mPx=*Iil5gL}?()|;vLW`h$rE}N?Vt0$hOF-DKZE+u$I_ z**|0Z+&E%Ul>w5iDS>6#3M#$Yw+0m-X3^jv;SLUxbXO&5SYw`On(@X_b(fqcaukvP z8i*i4mPQOJE7uO!;U=pznjz!CMwR{8Gt;(rztVii`=4-R0;3HHvVwJA>c5FI;XT1t zpaNRAmPdQ##OG>_V#wf;BSVJ<25OpXOgbXU+Q2})iz#n<)AjT|e?HjS!gy8WWzmFS z%03^ey9}s!Y-qZdK;_p7-DV06J9c5;wJq`!181H6{7^IlDQBVA{tM>dsQ{>6+0G~$ z8U?An@Hh(aDCtQdr&@}pSSS|5IBNf8C_+8!8*YOfM2G#|)eO#K2*VgugCG0a@JR12 z-;lH9&7#i9GlDuzFUo6Y$J*`t!?9YmB0p9g@dwX93&QXa09X|mAcm34TI8<})sy@{dr zcinN^`_YlUS}t}4;E9I2%bT>P0f3iBj)T$9kGMMs#)`TmCw0SeX!*&=96{2(O#oMs z!3|sUF2;Hs&0OPFnyJJ_z|b8wTDh&1yN9}g;9e^uMK+((j2aw- z7zrXsw{FmJE6m7%w=i#EP?AB8LZeVVIZacvRG^{_1tZm2g}7*SNz#R<^S(;+{E2%3 zH_uAwQ$Tk@7)%a@dw>py-vavYa1ZskHv;fkjz*F$KuCw`T_aR87i}YeT7E6M0j*;n zkBFp@dL2B7x#hIFv43+^xzS`3mC(E3FyoGAnjxcW{?GwLnU`s{ypD{ zef`JdCxCX09eadKxQ zY4Az{kBA>8*jnxHkgewNOTgG1Ki7-P#G3`H)|{wkvIf)@B2RPp1#bfTpW{!1WbV`% zpx-}**KGn`uLti@UkVQ+$h-Z8lnATuraJAvrBbj8r7{1@X^_3G_1TXq~>}@a10tG^(RYy5dhL0ghNDd91+yD;6(&QiZE{A^W*ldkyaSmWL$>5Noq~{#gbmEt|6-lUb9N7s4+*LrJAA_%k_^U){{3 z0dzXQUi<_Si|cE}^@WY);;IL6@lp8a6o+X6B#cP}lPD%JOyF;6JkDamAqFUxj)%Y? Hp2z&^#6SEycj7$*XhL%=F7FLF)N(xEI z`MCu->M07Dc?wEyp*}te$m;a;^pq4*5=&B36qJy~q53U0{trwLV9Wk6C)?{{$_aKa PkDFJ{vTsgEY-|SrYjrDe delta 143 zcmaEOk@?|8<_X~M07Dc?wEyp*}te$m;a;^pq4*5=&B36qJy~q591>{trwLV9EY4C)?{{$_Z94 PkDFJ{vTjaDY-|Srk9;fH