commit 33743e05a3fbc5f84675c0ad352639d436738dec
parent 3453e2aadbdbb62b9b8b682e4a0fb76d21634ccd
Author: Alexander Burger <abu@software-lab.de>
Date: Sat, 25 May 2013 11:51:24 +0200
Improved 'StkLimit' handling
Diffstat:
M | lib/map | | | 78 | +++++++++++++++++++++++++++++++++++++++--------------------------------------- |
M | src64/err.l | | | 13 | +++++++++++-- |
M | src64/flow.l | | | 218 | +++++++++++++++++++++++++++++++++++++++++++------------------------------------ |
M | src64/gc.l | | | 16 | +++++++++++----- |
M | src64/main.l | | | 7 | ++++--- |
M | src64/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