picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

commit 33743e05a3fbc5f84675c0ad352639d436738dec
parent 3453e2aadbdbb62b9b8b682e4a0fb76d21634ccd
Author: Alexander Burger <abu@software-lab.de>
Date:   Sat, 25 May 2013 11:51:24 +0200

Improved 'StkLimit' handling
Diffstat:
Mlib/map | 78+++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc64/err.l | 13+++++++++++--
Msrc64/flow.l | 218+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msrc64/gc.l | 16+++++++++++-----
Msrc64/main.l | 7++++---
Msrc64/tags | 472++++++++++++++++++++++++++++++++++++++++----------------------------------------
6 files changed, 419 insertions(+), 385 deletions(-)

diff --git a/lib/map b/lib/map @@ -1,5 +1,5 @@ -! (2866 . "@src64/flow.l") -$ (2968 . "@src64/flow.l") +! (2884 . "@src64/flow.l") +$ (2986 . "@src64/flow.l") % (2572 . "@src64/big.l") & (2807 . "@src64/big.l") * (2389 . "@src64/big.l") @@ -25,16 +25,16 @@ $ (2968 . "@src64/flow.l") >> (2627 . "@src64/big.l") abs (2731 . "@src64/big.l") accept (148 . "@src64/net.l") -adr (596 . "@src64/main.l") +adr (597 . "@src64/main.l") alarm (477 . "@src64/main.l") all (788 . "@src64/sym.l") and (1624 . "@src64/flow.l") any (3990 . "@src64/io.l") append (1339 . "@src64/subr.l") apply (713 . "@src64/apply.l") -arg (2613 . "@src64/main.l") -args (2589 . "@src64/main.l") -argv (3241 . "@src64/main.l") +arg (2614 . "@src64/main.l") +args (2590 . "@src64/main.l") +argv (3242 . "@src64/main.l") as (139 . "@src64/flow.l") asoq (3021 . "@src64/subr.l") assoc (2986 . "@src64/subr.l") @@ -46,7 +46,7 @@ bool (1724 . "@src64/flow.l") box (828 . "@src64/flow.l") box? (1131 . "@src64/sym.l") by (1669 . "@src64/apply.l") -bye (3416 . "@src64/flow.l") +bye (3434 . "@src64/flow.l") bytes (2973 . "@src64/subr.l") caaaar (271 . "@src64/subr.l") caaadr (288 . "@src64/subr.l") @@ -62,11 +62,11 @@ caddar (409 . "@src64/subr.l") cadddr (435 . "@src64/subr.l") caddr (156 . "@src64/subr.l") cadr (45 . "@src64/subr.l") -call (3068 . "@src64/flow.l") +call (3086 . "@src64/flow.l") car (5 . "@src64/subr.l") case (1965 . "@src64/flow.l") catch (2467 . "@src64/flow.l") -cd (2993 . "@src64/main.l") +cd (2994 . "@src64/main.l") cdaaar (464 . "@src64/subr.l") cdaadr (487 . "@src64/subr.l") cdaar (179 . "@src64/subr.l") @@ -89,7 +89,7 @@ circ (817 . "@src64/subr.l") circ? (2403 . "@src64/subr.l") clip (1800 . "@src64/subr.l") close (4403 . "@src64/io.l") -cmd (3223 . "@src64/main.l") +cmd (3224 . "@src64/main.l") cnt (1413 . "@src64/apply.l") co (2548 . "@src64/flow.l") commit (1403 . "@src64/db.l") @@ -100,9 +100,9 @@ connect (227 . "@src64/net.l") cons (747 . "@src64/subr.l") copy (1226 . "@src64/subr.l") ctl (4276 . "@src64/io.l") -ctty (3018 . "@src64/main.l") +ctty (3019 . "@src64/main.l") cut (1931 . "@src64/sym.l") -date (2727 . "@src64/main.l") +date (2728 . "@src64/main.l") dbck (2018 . "@src64/db.l") de (532 . "@src64/flow.l") dec (2323 . "@src64/big.l") @@ -112,16 +112,16 @@ del (1986 . "@src64/sym.l") delete (1402 . "@src64/subr.l") delq (1453 . "@src64/subr.l") diff (2590 . "@src64/subr.l") -dir (3153 . "@src64/main.l") +dir (3154 . "@src64/main.l") dm (545 . "@src64/flow.l") do (2141 . "@src64/flow.l") -e (2929 . "@src64/flow.l") +e (2947 . "@src64/flow.l") echo (4434 . "@src64/io.l") -env (608 . "@src64/main.l") +env (609 . "@src64/main.l") eof (3549 . "@src64/io.l") eol (3540 . "@src64/io.l") err (4256 . "@src64/io.l") -errno (1613 . "@src64/main.l") +errno (1614 . "@src64/main.l") eval (175 . "@src64/flow.l") ext (5168 . "@src64/io.l") ext? (1166 . "@src64/sym.l") @@ -129,7 +129,7 @@ extern (1032 . "@src64/sym.l") extra (1269 . "@src64/flow.l") extract (1218 . "@src64/apply.l") fifo (2097 . "@src64/sym.l") -file (3100 . "@src64/main.l") +file (3101 . "@src64/main.l") fill (3256 . "@src64/subr.l") filter (1161 . "@src64/apply.l") fin (2034 . "@src64/subr.l") @@ -141,13 +141,13 @@ flip (1700 . "@src64/subr.l") flush (5143 . "@src64/io.l") fold (3521 . "@src64/sym.l") for (2230 . "@src64/flow.l") -fork (3242 . "@src64/flow.l") +fork (3260 . "@src64/flow.l") format (2089 . "@src64/big.l") free (1960 . "@src64/db.l") from (3568 . "@src64/io.l") full (1076 . "@src64/subr.l") fun? (750 . "@src64/sym.l") -gc (443 . "@src64/gc.l") +gc (449 . "@src64/gc.l") ge0 (2707 . "@src64/big.l") get (2903 . "@src64/sym.l") getd (758 . "@src64/sym.l") @@ -167,14 +167,14 @@ ifn (1865 . "@src64/flow.l") in (4216 . "@src64/io.l") inc (2256 . "@src64/big.l") index (2638 . "@src64/subr.l") -info (3055 . "@src64/main.l") +info (3056 . "@src64/main.l") intern (1007 . "@src64/sym.l") -ipid (3187 . "@src64/flow.l") +ipid (3205 . "@src64/flow.l") isa (967 . "@src64/flow.l") job (1429 . "@src64/flow.l") journal (971 . "@src64/db.l") key (3401 . "@src64/io.l") -kill (3219 . "@src64/flow.l") +kill (3237 . "@src64/flow.l") last (2045 . "@src64/subr.l") le0 (2693 . "@src64/big.l") length (2742 . "@src64/subr.l") @@ -184,7 +184,7 @@ lieu (1157 . "@src64/db.l") line (3724 . "@src64/io.l") lines (3877 . "@src64/io.l") link (1173 . "@src64/subr.l") -lisp (2282 . "@src64/main.l") +lisp (2283 . "@src64/main.l") list (888 . "@src64/subr.l") listen (160 . "@src64/net.l") lit (150 . "@src64/flow.l") @@ -223,10 +223,10 @@ n== (2088 . "@src64/subr.l") nT (2199 . "@src64/subr.l") name (502 . "@src64/sym.l") nand (1659 . "@src64/flow.l") -native (1621 . "@src64/main.l") +native (1622 . "@src64/main.l") need (920 . "@src64/subr.l") new (839 . "@src64/flow.l") -next (2596 . "@src64/main.l") +next (2597 . "@src64/main.l") nil (1742 . "@src64/flow.l") nond (1942 . "@src64/flow.l") nor (1680 . "@src64/flow.l") @@ -239,8 +239,8 @@ on (1717 . "@src64/sym.l") onOff (1747 . "@src64/sym.l") one (1780 . "@src64/sym.l") open (4360 . "@src64/io.l") -opid (3203 . "@src64/flow.l") -opt (3344 . "@src64/main.l") +opid (3221 . "@src64/flow.l") +opt (3345 . "@src64/main.l") or (1640 . "@src64/flow.l") out (4236 . "@src64/io.l") pack (1279 . "@src64/sym.l") @@ -273,9 +273,9 @@ push (1822 . "@src64/sym.l") push1 (1858 . "@src64/sym.l") put (2844 . "@src64/sym.l") putl (3122 . "@src64/sym.l") -pwd (2982 . "@src64/main.l") +pwd (2983 . "@src64/main.l") queue (2054 . "@src64/sym.l") -quit (1323 . "@src64/main.l") +quit (1324 . "@src64/main.l") quote (134 . "@src64/flow.l") rand (3003 . "@src64/big.l") range (998 . "@src64/subr.l") @@ -284,7 +284,7 @@ raw (455 . "@src64/main.l") rd (5185 . "@src64/io.l") read (2665 . "@src64/io.l") replace (1500 . "@src64/subr.l") -rest (2642 . "@src64/main.l") +rest (2643 . "@src64/main.l") reverse (1679 . "@src64/subr.l") rewind (5151 . "@src64/io.l") rollback (1803 . "@src64/db.l") @@ -310,7 +310,7 @@ stem (1990 . "@src64/subr.l") str (4044 . "@src64/io.l") str? (1145 . "@src64/sym.l") strip (1577 . "@src64/subr.l") -struct (2073 . "@src64/main.l") +struct (2074 . "@src64/main.l") sub? (1578 . "@src64/sym.l") sum (1460 . "@src64/apply.l") super (1225 . "@src64/flow.l") @@ -318,17 +318,17 @@ sym (4030 . "@src64/io.l") sym? (2435 . "@src64/subr.l") symbols (942 . "@src64/sym.l") sync (3213 . "@src64/io.l") -sys (855 . "@src64/main.l") +sys (856 . "@src64/main.l") t (1751 . "@src64/flow.l") tail (1912 . "@src64/subr.l") tell (3285 . "@src64/io.l") text (1407 . "@src64/sym.l") throw (2493 . "@src64/flow.l") -tick (3155 . "@src64/flow.l") +tick (3173 . "@src64/flow.l") till (3635 . "@src64/io.l") -time (2860 . "@src64/main.l") +time (2861 . "@src64/main.l") touch (1181 . "@src64/sym.l") -trail (707 . "@src64/main.l") +trail (708 . "@src64/main.l") trim (1760 . "@src64/subr.l") try (1177 . "@src64/flow.l") type (920 . "@src64/flow.l") @@ -336,13 +336,13 @@ udp (304 . "@src64/net.l") unify (3951 . "@src64/subr.l") unless (1901 . "@src64/flow.l") until (2085 . "@src64/flow.l") -up (775 . "@src64/main.l") +up (776 . "@src64/main.l") upp? (3402 . "@src64/sym.l") uppc (3469 . "@src64/sym.l") use (1573 . "@src64/flow.l") -usec (2964 . "@src64/main.l") +usec (2965 . "@src64/main.l") val (1597 . "@src64/sym.l") -version (3358 . "@src64/main.l") +version (3359 . "@src64/main.l") wait (3175 . "@src64/io.l") when (1884 . "@src64/flow.l") while (2061 . "@src64/flow.l") @@ -352,7 +352,7 @@ wr (5268 . "@src64/io.l") xchg (1672 . "@src64/sym.l") xor (1701 . "@src64/flow.l") x| (2887 . "@src64/big.l") -yield (2714 . "@src64/flow.l") +yield (2728 . "@src64/flow.l") yoke (1197 . "@src64/subr.l") zap (1195 . "@src64/sym.l") zero (1765 . "@src64/sym.l") diff --git a/src64/err.l b/src64/err.l @@ -270,6 +270,10 @@ sub C (StkSize) # Next segment loop ld (C -I) 0 # Mark segment as unused + dec (Stacks) # Last coroutine? + if z # Yes + ld (StkLimit) 0 # Clear stack limit + end ld Z (Z) # Next coroutine loop load (Env) (EnvEnd) (X III) # Restore environment @@ -325,14 +329,19 @@ ld X (Stack1) # Search through stack segments ld C (Stacks) # Segment count do - dec C # Any? - while ns # Yes + null C # Any? + while nz # Yes null (X -I) # In use? if nz # Yes null (X -II) # Active? if z # Yes ld (X -I) 0 # Mark segment as unused + dec (Stacks) # Last coroutine? + if z # Yes + ld (StkLimit) 0 # Clear stack limit + end end + dec C # Decrement count end sub X (StkSize) # Next segment loop diff --git a/src64/flow.l b/src64/flow.l @@ -2558,79 +2558,83 @@ ld Y (Stack1) # Search through stack segments ld C (Stacks) # Segment count do - dec C # Any? - while ns # Yes - cmp E (Y -I) # Found tag? - if eq # Yes - null (Y -II) # Already active? - jz reentErrEX # Yes - push Y # Resume coroutine: Save 'seg' - push (StkLimit) # and 'lim' - push (EnvCo7) # Link - ld (EnvCo7) S # Close coroutine frame - ld Z S # Point Z to main frame - save (EnvCo) (EnvMid) (Z III) # Save environment + null C # Any? + while nz # Yes + null (Y -I) # In use? + if nz # Yes + cmp E (Y -I) # Found tag? + if eq # Yes + null (Y -II) # Already active? + jz reentErrEX # Yes + push Y # Resume coroutine: Save 'seg' + push (StkLimit) # and 'lim' + push (EnvCo7) # Link + ld (EnvCo7) S # Close coroutine frame + ld Z S # Point Z to main frame + save (EnvCo) (EnvMid) (Z III) # Save environment : resumeCoroutine - ld S (Y -II) # Restore stack pointer - ld (Y -II) 0 # Mark as active - lea A (Y 4096) # Set stack limit - sub A (StkSize) - ld (StkLimit) A - load (EnvCo) (EnvMid) (Y (pack -II "-(EnvMid-EnvCo)")) # Restore environment - ld X Catch # Pointer to catch frames - ld C (Z (pack III "+(Catch-EnvCo)")) # Local catch frames - call joinLocalCX # Join locals - ld X (EnvBind) # Reversed bindings - ld C (Z (pack III "+(EnvBind-EnvCo)")) # Main bindings - do - null X # More reversed bindings? - while nz # Yes - ld Y (X) # Link address in Y - null (X -I) # Env swap zero? - if z # Yes - lea A (Y -II) # End of bindings in A - do - xchg ((A)) (A I) # Exchange symbol value with saved value - sub A II - cmp A X # More? - until lt # No - end - ld A (Y I) # Get down link - ld (Y I) C # Undo reversal - ld C X - ld X A - loop - ld (EnvBind) C # Set local bindings - ld X EnvInFrames # Pointer to input frames - ld C (Z (pack III "+(EnvInFrames-EnvCo)")) # Local input frames - call joinLocalCX # Join locals - ld X EnvOutFrames # Pointer to output frames - ld C (Z (pack III "+(EnvOutFrames-EnvCo)")) # Local output frames - call joinLocalCX # Join locals - ld X EnvApply # Local apply stack - do - null (X) # Any? - while nz # Yes - ld X ((X)) # Follow link - loop - ld (X) (Z (pack III "+(EnvApply-EnvCo)")) # Join - pop X # Get saved L - null X # Any? - if nz # Yes - ld Y (X) # Pointer to link + ld S (Y -II) # Restore stack pointer + ld (Y -II) 0 # Mark as active + lea A (Y 4096) # Set stack limit + sub A (StkSize) + ld (StkLimit) A + load (EnvCo) (EnvMid) (Y (pack -II "-(EnvMid-EnvCo)")) # Restore environment + ld X Catch # Pointer to catch frames + ld C (Z (pack III "+(Catch-EnvCo)")) # Local catch frames + call joinLocalCX # Join locals + ld X (EnvBind) # Reversed bindings + ld C (Z (pack III "+(EnvBind-EnvCo)")) # Main bindings do - ld A (Y) # Get link - null A # Found end? - while nz # No - ld Y (A) # Next frame + null X # More reversed bindings? + while nz # Yes + ld Y (X) # Link address in Y + null (X -I) # Env swap zero? + if z # Yes + lea A (Y -II) # End of bindings in A + do + xchg ((A)) (A I) # Exchange symbol value with saved value + sub A II + cmp A X # More? + until lt # No + end + ld A (Y I) # Get down link + ld (Y I) C # Undo reversal + ld C X + ld X A + loop + ld (EnvBind) C # Set local bindings + ld X EnvInFrames # Pointer to input frames + ld C (Z (pack III "+(EnvInFrames-EnvCo)")) # Local input frames + call joinLocalCX # Join locals + ld X EnvOutFrames # Pointer to output frames + ld C (Z (pack III "+(EnvOutFrames-EnvCo)")) # Local output frames + call joinLocalCX # Join locals + ld X EnvApply # Local apply stack + do + null (X) # Any? + while nz # Yes + ld X ((X)) # Follow link loop - ld (Y) (Z (pack III "+(EnvMid-EnvCo)")) # Link to main stack - ld L X + ld (X) (Z (pack III "+(EnvApply-EnvCo)")) # Join + pop X # Get saved L + null X # Any? + if nz # Yes + ld Y (X) # Pointer to link + do + ld A (Y) # Get link + null A # Found end? + while nz # No + ld Y (A) # Next frame + loop + ld (Y) (Z (pack III "+(EnvMid-EnvCo)")) # Link to main stack + ld L X + end + pop Z + pop Y + pop X + ret end - pop Z - pop Y - pop X - ret + dec C # Decrement count end sub Y (StkSize) # Next segment loop @@ -2642,17 +2646,15 @@ cmp S A # Check it jlt stkErr ld (StkLimit) A + else + do + null (Y -I) # Found free segment? + while nz # No + sub Y (StkSize) # Next segment + dec C # Any? + until z # Yes end - do - dec C # More stack segments? - if s # No - inc (Stacks) # Increment segment count - break T - end - null (Y -I) # Found free segment? - while nz # No - sub Y (StkSize) # Next segment - loop + inc (Stacks) # Increment segment count push Y # Save 'seg' push (StkLimit) # and 'lim' push (EnvCo7) # Link @@ -2672,11 +2674,15 @@ push X # Save 'prg' link prog X # Run 'prg' - ld (Y -I) 0 # Not yielded: Mark segment as unused - ld S (EnvCo7) # Restore stack pointer + ld S (EnvCo7) # Not yielded: Restore stack pointer load (EnvCo) (EnvMid) (S III) # Restore environment pop (EnvCo7) # Restore coroutine link pop (StkLimit) # 'lim' + ld (Y -I) 0 # Mark segment as unused + dec (Stacks) # Last coroutine? + if z # Yes + ld (StkLimit) 0 # Clear stack limit + end add S (pack I "+(EnvMid-EnvCo)") # Clean up pop L pop Z @@ -2687,22 +2693,30 @@ ld X (Stack1) # Search through stack segments ld C (Stacks) # Segment count do - dec C # Any? - while ns # Yes - cmp E (X -I) # Found tag? - if eq # Yes - null (X -II) # Active? - ldz E Nil - if nz # No - ld (X -I) 0 # Mark segment as unused - ld C (X (pack -II "-(EnvMid-EnvInFrames)")) # Open input frames - call closeCoFilesC - ld C (X (pack -II "-(EnvMid-EnvOutFrames)")) # Open output frames - call closeCoFilesC - ld E TSym # Return T + null C # Any? + while nz # Yes + null (X -I) # In use? + if nz # Yes + cmp E (X -I) # Found tag? + if eq # Yes + null (X -II) # Active? + ldz E Nil + if nz # No + ld C (X (pack -II "-(EnvMid-EnvInFrames)")) # Open input frames + call closeCoFilesC + ld C (X (pack -II "-(EnvMid-EnvOutFrames)")) # Open output frames + call closeCoFilesC + ld (X -I) 0 # Mark segment as unused + dec (Stacks) # Last coroutine? + if z # Yes + ld (StkLimit) 0 # Clear stack limit + end + ld E TSym # Return T + end + pop X + ret end - pop X - ret + dec C # Decrement count end sub X (StkSize) # Next segment loop @@ -2734,10 +2748,14 @@ ld Y (Stack1) # Search for target coroutine ld C (Stacks) # Segment count do - dec C # Any? - js yieldErrEX # No - cmp E (Y -I) # Found tag? - while ne # No + null C # Any? + jz yieldErrEX # No + null (Y -I) # In use? + if nz # Yes + cmp E (Y -I) # Found tag? + break eq # Yes + dec C # Decrement count + end sub Y (StkSize) # Next segment loop null (Y -II) # Already active? diff --git a/src64/gc.l b/src64/gc.l @@ -132,11 +132,11 @@ ld Y (Stack1) # Search through stack segments ld C (Stacks) # Segment count do - dec C # Any? - while ns # Yes + null C # Any? + while nz # Yes null (Y -I) # In use? if nz # Yes - push C + push C # Save count null (Y -II) # Active? if z # Yes ld E (Y -I) # Mark 'tag' @@ -172,6 +172,7 @@ pop Y end pop C + dec C # Decrement count end sub Y (StkSize) # Next segment loop @@ -333,13 +334,17 @@ ld Y (Stack1) # Search through stack segments ld C (Stacks) # Segment count do - dec C # Any? - while ns # Yes + null C # Any? + while nz # Yes null (Y -I) # In use? if nz # Yes test ((Y -I)) 1 # 'tag' symbol gone? if nz # Yes ld (Y -I) 0 # Mark segment as unused + dec (Stacks) # Last coroutine? + if z # Yes + ld (StkLimit) 0 # Clear stack limit + end else null (Y -II) # Active? if nz # No @@ -358,6 +363,7 @@ loop end end + dec C # Decrement count end sub Y (StkSize) # Next segment loop diff --git a/src64/main.l b/src64/main.l @@ -1,4 +1,4 @@ -# 24may13abu +# 25may13abu # (c) Software Lab. Alexander Burger (code 'Code) @@ -577,14 +577,15 @@ ld X (Stack1) # Collect coroutines ld C (Stacks) # Segment bitmask do - dec C # Any? - while ns # Yes + null C # Any? + while nz # Yes null (X -I) # In use? if nz # Yes call consE_A # Cons 'tag' ld (A) (X -I) ld (A CDR) E ld E A + dec C # Decrement count end sub X (StkSize) # Next segment loop diff --git a/src64/tags b/src64/tags @@ -446,89 +446,89 @@ sys/x86-64.linux.defs.l,1959 doProtect513,13329 doHeap523,13489 doStack552,14113 -doAdr596,15179 -doEnv608,15397 -doTrail707,18107 -doUp775,19705 -doSys855,21420 -circE_YF883,22079 -equalAE_F915,22819 -compareAE_F1048,26028 -binSizeX_A1210,29504 -memberXY_FY1305,32114 -doQuit1323,32465 -evExprCE_E1341,32882 -evListE_E1489,36516 -sharedLibC_FA1542,37652 -doErrno1613,39296 -doNative1621,39460 -natBufACZ_CZ1825,45262 -natRetACE_CE1924,47747 -doStruct2073,53147 -fetchCharC_AC2116,54027 -cbl2151,54896 -cbl12184,55612 -cbl22188,55728 -cbl32192,55774 -cbl42196,55826 -cbl52200,55878 -cbl62204,55930 -cbl72208,55982 -cbl82212,56034 -cbl92216,56086 -cbl102220,56138 -cbl112224,56191 -cbl122228,56245 -cbl132232,56299 -cbl142236,56353 -cbl152240,56407 -cbl162244,56461 -cbl172248,56515 -cbl182252,56569 -cbl192256,56623 -cbl202260,56677 -cbl212264,56731 -cbl222268,56785 -cbl232272,56839 -cbl242276,56893 -doLisp2282,56976 -lisp2326,58002 -execE2372,59116 -runE_E2384,59271 -funqE_FE2396,59423 -evSymX_E2458,60846 -evSymY_E2461,60904 -evSymE_E2463,60946 -xSymE_E2465,60983 -evCntXY_FE2486,61348 -evCntEX_FE2488,61392 -xCntEX_FE2490,61431 -xCntCX_FC2499,61608 -xCntAX_FA2508,61785 -boxE_E2517,61962 -putStringB2537,62419 -begString2549,62633 -endString_E2560,62859 -doArgs2589,63516 -doNext2596,63630 -doArg2613,63946 -doRest2642,64588 -tmDateC_E2656,64835 -dateXYZ_E2666,65012 -doDate2727,66373 -tmTimeY_E2843,69984 -doTime2860,70317 -doUsec2964,73295 -doPwd2982,73712 -doCd2993,73967 -doCtty3018,74583 -doInfo3055,75517 -doFile3100,76612 -doDir3153,77848 -doCmd3223,79466 -doArgv3241,79925 -doOpt3344,82471 -doVersion3358,82802 +doAdr597,15214 +doEnv609,15432 +doTrail708,18142 +doUp776,19740 +doSys856,21455 +circE_YF884,22114 +equalAE_F916,22854 +compareAE_F1049,26063 +binSizeX_A1211,29539 +memberXY_FY1306,32149 +doQuit1324,32500 +evExprCE_E1342,32917 +evListE_E1490,36551 +sharedLibC_FA1543,37687 +doErrno1614,39331 +doNative1622,39495 +natBufACZ_CZ1826,45297 +natRetACE_CE1925,47782 +doStruct2074,53182 +fetchCharC_AC2117,54062 +cbl2152,54931 +cbl12185,55647 +cbl22189,55763 +cbl32193,55809 +cbl42197,55861 +cbl52201,55913 +cbl62205,55965 +cbl72209,56017 +cbl82213,56069 +cbl92217,56121 +cbl102221,56173 +cbl112225,56226 +cbl122229,56280 +cbl132233,56334 +cbl142237,56388 +cbl152241,56442 +cbl162245,56496 +cbl172249,56550 +cbl182253,56604 +cbl192257,56658 +cbl202261,56712 +cbl212265,56766 +cbl222269,56820 +cbl232273,56874 +cbl242277,56928 +doLisp2283,57011 +lisp2327,58037 +execE2373,59151 +runE_E2385,59306 +funqE_FE2397,59458 +evSymX_E2459,60881 +evSymY_E2462,60939 +evSymE_E2464,60981 +xSymE_E2466,61018 +evCntXY_FE2487,61383 +evCntEX_FE2489,61427 +xCntEX_FE2491,61466 +xCntCX_FC2500,61643 +xCntAX_FA2509,61820 +boxE_E2518,61997 +putStringB2538,62454 +begString2550,62668 +endString_E2561,62894 +doArgs2590,63551 +doNext2597,63665 +doArg2614,63981 +doRest2643,64623 +tmDateC_E2657,64870 +dateXYZ_E2667,65047 +doDate2728,66408 +tmTimeY_E2844,70019 +doTime2861,70352 +doUsec2965,73330 +doPwd2983,73747 +doCd2994,74002 +doCtty3019,74618 +doInfo3056,75552 +doFile3101,76647 +doDir3154,77883 +doCmd3224,79501 +doArgv3242,79960 +doOpt3345,82506 +doVersion3359,82837 ./big.l,1059 zapZeroA_A6,106 @@ -749,102 +749,102 @@ sys/x86-64.linux.defs.l,1959 fishAXY1640,41196 doBy1669,41750 -./err.l,1926 +./err.l,1927 dbgS5,73 errnoEXY24,572 errEXYZ33,734 unwindC_Z175,4436 -needSymAX342,9137 -needSymEX354,9336 -needVarAX365,9525 -needVarEX375,9702 -checkVarAX384,9869 -checkVarYX392,10005 -checkVarEX400,10141 -protErrEX405,10249 -symNsErrEX409,10299 -stkErr414,10374 -stkErrE416,10399 -stkErrX418,10425 -stkErrEX420,10451 -argErrAX425,10539 -argErrEX427,10566 -numErrAX431,10614 -numErrEX433,10641 -cntErrAX437,10689 -cntErrCX439,10716 -cntErrEX441,10743 -symErrAX445,10791 -symErrYX447,10818 -symErrEX449,10845 -extErrEX453,10893 -pairErrAX457,10941 -pairErrEX459,10969 -atomErrAX463,11019 -atomErrEX465,11047 -lstErrAX469,11097 -lstErrEX471,11124 -varErrAX475,11172 -varErrEX477,11199 -divErrX481,11247 -renErrEX486,11304 -makeErrX490,11352 -reentErrEX495,11411 -yieldErrX499,11463 -yieldErrEX501,11491 -msgErrYX505,11543 -msgErrAX507,11570 -msgErrEX509,11597 -brkErrX513,11645 -openErrEX519,11715 -closeErrX523,11766 -closeErrEX525,11794 -pipeErrX529,11847 -forkErrX534,11907 -waitPidErrX539,11966 -badFdErrEX544,12032 -noFdErrX548,12084 -eofErr553,12143 -suparErrE559,12209 -badInputErrB564,12270 -badDotErrE572,12361 -selectErrX577,12421 -wrBytesErr582,12485 -wrChildErr588,12560 -wrSyncErrX594,12635 -wrJnlErr599,12699 -wrLogErr605,12770 -truncErrX611,12841 -dbSyncErrX616,12903 -trSyncErrX621,12967 -lockErr626,13031 -dbfErrX632,13100 -jnlErrX637,13157 -idErrXL642,13214 -dbRdErr647,13288 -dbWrErr653,13357 -dbSizErr659,13426 -tellErr665,13496 -ipSocketErrX671,13564 -ipGetsocknameErrX676,13632 -ipV6onlyErrX681,13710 -ipReuseaddrErrX686,13778 -ipBindErrX691,13852 -ipListenErrX696,13916 -udpOvflErr701,13984 -undefinedCE708,14083 -undefinedCX710,14113 -undefinedEX712,14143 -dlErrX716,14196 -ret724,14342 -retc726,14363 -retnc729,14393 -retz732,14424 -retnz735,14454 -retNull738,14485 -retNil741,14520 -retT744,14556 -retE_E747,14591 +needSymAX351,9432 +needSymEX363,9631 +needVarAX374,9820 +needVarEX384,9997 +checkVarAX393,10164 +checkVarYX401,10300 +checkVarEX409,10436 +protErrEX414,10544 +symNsErrEX418,10594 +stkErr423,10669 +stkErrE425,10694 +stkErrX427,10720 +stkErrEX429,10746 +argErrAX434,10834 +argErrEX436,10861 +numErrAX440,10909 +numErrEX442,10936 +cntErrAX446,10984 +cntErrCX448,11011 +cntErrEX450,11038 +symErrAX454,11086 +symErrYX456,11113 +symErrEX458,11140 +extErrEX462,11188 +pairErrAX466,11236 +pairErrEX468,11264 +atomErrAX472,11314 +atomErrEX474,11342 +lstErrAX478,11392 +lstErrEX480,11419 +varErrAX484,11467 +varErrEX486,11494 +divErrX490,11542 +renErrEX495,11599 +makeErrX499,11647 +reentErrEX504,11706 +yieldErrX508,11758 +yieldErrEX510,11786 +msgErrYX514,11838 +msgErrAX516,11865 +msgErrEX518,11892 +brkErrX522,11940 +openErrEX528,12010 +closeErrX532,12061 +closeErrEX534,12089 +pipeErrX538,12142 +forkErrX543,12202 +waitPidErrX548,12261 +badFdErrEX553,12327 +noFdErrX557,12379 +eofErr562,12438 +suparErrE568,12504 +badInputErrB573,12565 +badDotErrE581,12656 +selectErrX586,12716 +wrBytesErr591,12780 +wrChildErr597,12855 +wrSyncErrX603,12930 +wrJnlErr608,12994 +wrLogErr614,13065 +truncErrX620,13136 +dbSyncErrX625,13198 +trSyncErrX630,13262 +lockErr635,13326 +dbfErrX641,13395 +jnlErrX646,13452 +idErrXL651,13509 +dbRdErr656,13583 +dbWrErr662,13652 +dbSizErr668,13721 +tellErr674,13791 +ipSocketErrX680,13859 +ipGetsocknameErrX685,13927 +ipV6onlyErrX690,14005 +ipReuseaddrErrX695,14073 +ipBindErrX700,14147 +ipListenErrX705,14211 +udpOvflErr710,14279 +undefinedCE717,14378 +undefinedCX719,14408 +undefinedEX721,14438 +dlErrX725,14491 +ret733,14637 +retc735,14658 +retnc738,14688 +retz741,14719 +retnz744,14749 +retNull747,14780 +retNil750,14815 +retT753,14851 +retE_E756,14886 ./sym.l,1776 cmpLongAX_F5,78 @@ -995,50 +995,50 @@ sys/x86-64.linux.defs.l,1959 doFree1960,54467 doDbck2018,55933 -./gc.l,841 +./gc.l,842 markE5,63 needC54,1336 gc65,1529 -doGc443,11525 -cons_A466,12046 -cons_C478,12310 -cons_E490,12574 -cons_X502,12838 -cons_Y514,13102 -cons_Z526,13366 -consA_A538,13630 -consC_A554,13953 -consE_A570,14262 -consX_A586,14571 -consA_C602,14880 -consC_C618,15189 -consE_C634,15512 -consA_E650,15821 -consC_E666,16130 -consE_E682,16439 -consX_E698,16762 -consA_X714,17071 -consE_X730,17380 -consY_X746,17689 -consA_Y762,17998 -consA_Z778,18307 -consAC_E794,18616 -consSymX_E812,18969 -boxNum_A832,19419 -boxNum_C844,19704 -boxNum_E856,19989 -boxNum_X868,20274 -boxNumA_A880,20559 -boxNumE_E894,20888 -consNumAC_A908,21217 -consNumAE_A926,21593 -consNumCA_C944,21969 -consNumCE_A962,22345 -consNumCE_C979,22712 -consNumCE_E997,23088 -consNumEA_A1014,23438 -consNumEA_E1031,23788 -consNumEC_E1049,24164 +doGc449,11745 +cons_A472,12266 +cons_C484,12530 +cons_E496,12794 +cons_X508,13058 +cons_Y520,13322 +cons_Z532,13586 +consA_A544,13850 +consC_A560,14173 +consE_A576,14482 +consX_A592,14791 +consA_C608,15100 +consC_C624,15409 +consE_C640,15732 +consA_E656,16041 +consC_E672,16350 +consE_E688,16659 +consX_E704,16982 +consA_X720,17291 +consE_X736,17600 +consY_X752,17909 +consA_Y768,18218 +consA_Z784,18527 +consAC_E800,18836 +consSymX_E818,19189 +boxNum_A838,19639 +boxNum_C850,19924 +boxNum_E862,20209 +boxNum_X874,20494 +boxNumA_A886,20779 +boxNumE_E900,21108 +consNumAC_A914,21437 +consNumAE_A932,21813 +consNumCA_C950,22189 +consNumCE_A968,22565 +consNumCE_C985,22932 +consNumCE_E1003,23308 +consNumEA_A1020,23658 +consNumEA_E1037,24008 +consNumEC_E1055,24384 ./flow.l,1658 redefMsgEC4,51 @@ -1107,26 +1107,26 @@ sys/x86-64.linux.defs.l,1959 throwErrZX2518,58492 doFinally2524,58583 doCo2548,59123 -resumeCoroutine2573,59902 -doYield2714,64539 -cutLocalCX2829,67773 -joinLocalCX2842,68003 -closeCoFilesC2852,68166 -doBreak2866,68429 -brkLoadE_E2874,68581 -doE2929,70181 -doTrace2968,70947 -traceCY3040,72862 -doCall3068,73350 -doTick3155,75542 -doIpid3187,76539 -doOpid3203,76827 -doKill3219,77122 -doFork3242,77557 -forkLispX_FE3255,77778 -doBye3416,82338 -byeE3428,82510 -finishE3440,82821 +resumeCoroutine2575,59987 +doYield2728,65219 +cutLocalCX2847,68568 +joinLocalCX2860,68798 +closeCoFilesC2870,68961 +doBreak2884,69224 +brkLoadE_E2892,69376 +doE2947,70976 +doTrace2986,71742 +traceCY3058,73657 +doCall3086,74145 +doTick3173,76337 +doIpid3205,77334 +doOpid3221,77622 +doKill3237,77917 +doFork3260,78352 +forkLispX_FE3273,78573 +doBye3434,83133 +byeE3446,83305 +finishE3458,83616 ./subr.l,2147 doCar5,71