commit 250674d243161243ee1a02d3b859c90634fd1c1d
parent 019b7a1e0d86b039c0778812ce3af1d0eeb93802
Author: Alexander Burger <abu@software-lab.de>
Date:   Thu, 15 Nov 2012 19:30:36 +0100
Backtrace tuning
Diffstat:
6 files changed, 137 insertions(+), 123 deletions(-)
diff --git a/ersatz/fun.src b/ersatz/fun.src
@@ -1,4 +1,4 @@
-# 12oct12abu
+# 15nov12abu
 # (c) Software Lab. Alexander Burger
 
 # Ersatz PicoLisp Functions
@@ -8,7 +8,7 @@
 env (i x y)
    y = Nil;
    if (!((ex = ex.Cdr) instanceof Cell)) {
-      for (Bind p = Env.Bind;  p != null;  p = p.Link) {
+      for (Bind p = Break? Env.Bind.Link : Env.Bind;  p != null;  p = p.Link) {
          if (p.Eswp == 0) {
             for (i = p.Cnt; --i > 0; --i) {
                for (x = y; ; x = x.Cdr) {
@@ -50,7 +50,7 @@ up (i j k x)
    }
    j = 0;
    Bind q = null;
-   for (Bind p = Env.Bind;  p != null;  p = p.Link) {
+   for (Bind p = Break? Env.Bind.Link : Env.Bind;  p != null;  p = p.Link) {
       for (i = 0;  i < p.Cnt; i += 2) {
          if (p.Data[i+1] == x) {
             if (--k == 0) {
diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar
Binary files differ.
diff --git a/lib/map b/lib/map
@@ -32,9 +32,9 @@ and (1624 . "@src64/flow.l")
 any (3974 . "@src64/io.l")
 append (1338 . "@src64/subr.l")
 apply (713 . "@src64/apply.l")
-arg (2444 . "@src64/main.l")
-args (2420 . "@src64/main.l")
-argv (3067 . "@src64/main.l")
+arg (2458 . "@src64/main.l")
+args (2434 . "@src64/main.l")
+argv (3081 . "@src64/main.l")
 as (139 . "@src64/flow.l")
 asoq (3008 . "@src64/subr.l")
 assoc (2973 . "@src64/subr.l")
@@ -65,7 +65,7 @@ call (3096 . "@src64/flow.l")
 car (5 . "@src64/subr.l")
 case (1965 . "@src64/flow.l")
 catch (2467 . "@src64/flow.l")
-cd (2819 . "@src64/main.l")
+cd (2833 . "@src64/main.l")
 cdaaar (464 . "@src64/subr.l")
 cdaadr (487 . "@src64/subr.l")
 cdaar (179 . "@src64/subr.l")
@@ -88,7 +88,7 @@ circ (816 . "@src64/subr.l")
 circ? (2402 . "@src64/subr.l")
 clip (1799 . "@src64/subr.l")
 close (4387 . "@src64/io.l")
-cmd (3049 . "@src64/main.l")
+cmd (3063 . "@src64/main.l")
 cnt (1413 . "@src64/apply.l")
 co (2548 . "@src64/flow.l")
 commit (1498 . "@src64/db.l")
@@ -99,9 +99,9 @@ connect (224 . "@src64/net.l")
 cons (747 . "@src64/subr.l")
 copy (1225 . "@src64/subr.l")
 ctl (4260 . "@src64/io.l")
-ctty (2844 . "@src64/main.l")
+ctty (2858 . "@src64/main.l")
 cut (1922 . "@src64/sym.l")
-date (2558 . "@src64/main.l")
+date (2572 . "@src64/main.l")
 dbck (2113 . "@src64/db.l")
 de (532 . "@src64/flow.l")
 dec (2323 . "@src64/big.l")
@@ -111,7 +111,7 @@ del (1977 . "@src64/sym.l")
 delete (1401 . "@src64/subr.l")
 delq (1452 . "@src64/subr.l")
 diff (2589 . "@src64/subr.l")
-dir (2979 . "@src64/main.l")
+dir (2993 . "@src64/main.l")
 dm (545 . "@src64/flow.l")
 do (2141 . "@src64/flow.l")
 e (2928 . "@src64/flow.l")
@@ -120,7 +120,7 @@ env (599 . "@src64/main.l")
 eof (3533 . "@src64/io.l")
 eol (3524 . "@src64/io.l")
 err (4240 . "@src64/io.l")
-errno (1446 . "@src64/main.l")
+errno (1460 . "@src64/main.l")
 eval (175 . "@src64/flow.l")
 ext (5152 . "@src64/io.l")
 ext? (1157 . "@src64/sym.l")
@@ -128,7 +128,7 @@ extern (1023 . "@src64/sym.l")
 extra (1269 . "@src64/flow.l")
 extract (1218 . "@src64/apply.l")
 fifo (2088 . "@src64/sym.l")
-file (2926 . "@src64/main.l")
+file (2940 . "@src64/main.l")
 fill (3243 . "@src64/subr.l")
 filter (1161 . "@src64/apply.l")
 fin (2033 . "@src64/subr.l")
@@ -166,7 +166,7 @@ ifn (1865 . "@src64/flow.l")
 in (4200 . "@src64/io.l")
 inc (2256 . "@src64/big.l")
 index (2637 . "@src64/subr.l")
-info (2881 . "@src64/main.l")
+info (2895 . "@src64/main.l")
 intern (998 . "@src64/sym.l")
 ipid (3215 . "@src64/flow.l")
 isa (967 . "@src64/flow.l")
@@ -183,7 +183,7 @@ lieu (1157 . "@src64/db.l")
 line (3708 . "@src64/io.l")
 lines (3861 . "@src64/io.l")
 link (1172 . "@src64/subr.l")
-lisp (2115 . "@src64/main.l")
+lisp (2129 . "@src64/main.l")
 list (887 . "@src64/subr.l")
 listen (157 . "@src64/net.l")
 lit (150 . "@src64/flow.l")
@@ -222,10 +222,10 @@ n== (2087 . "@src64/subr.l")
 nT (2198 . "@src64/subr.l")
 name (502 . "@src64/sym.l")
 nand (1659 . "@src64/flow.l")
-native (1454 . "@src64/main.l")
+native (1468 . "@src64/main.l")
 need (919 . "@src64/subr.l")
 new (839 . "@src64/flow.l")
-next (2427 . "@src64/main.l")
+next (2441 . "@src64/main.l")
 nil (1742 . "@src64/flow.l")
 nond (1942 . "@src64/flow.l")
 nor (1680 . "@src64/flow.l")
@@ -239,7 +239,7 @@ onOff (1738 . "@src64/sym.l")
 one (1771 . "@src64/sym.l")
 open (4344 . "@src64/io.l")
 opid (3231 . "@src64/flow.l")
-opt (3170 . "@src64/main.l")
+opt (3184 . "@src64/main.l")
 or (1640 . "@src64/flow.l")
 out (4220 . "@src64/io.l")
 pack (1270 . "@src64/sym.l")
@@ -272,9 +272,9 @@ push (1813 . "@src64/sym.l")
 push1 (1849 . "@src64/sym.l")
 put (2835 . "@src64/sym.l")
 putl (3113 . "@src64/sym.l")
-pwd (2808 . "@src64/main.l")
+pwd (2822 . "@src64/main.l")
 queue (2045 . "@src64/sym.l")
-quit (1156 . "@src64/main.l")
+quit (1170 . "@src64/main.l")
 quote (134 . "@src64/flow.l")
 rand (3003 . "@src64/big.l")
 range (997 . "@src64/subr.l")
@@ -283,7 +283,7 @@ raw (451 . "@src64/main.l")
 rd (5169 . "@src64/io.l")
 read (2665 . "@src64/io.l")
 replace (1499 . "@src64/subr.l")
-rest (2473 . "@src64/main.l")
+rest (2487 . "@src64/main.l")
 reverse (1678 . "@src64/subr.l")
 rewind (5135 . "@src64/io.l")
 rollback (1898 . "@src64/db.l")
@@ -309,7 +309,7 @@ stem (1989 . "@src64/subr.l")
 str (4028 . "@src64/io.l")
 str? (1136 . "@src64/sym.l")
 strip (1576 . "@src64/subr.l")
-struct (1906 . "@src64/main.l")
+struct (1920 . "@src64/main.l")
 sub? (1569 . "@src64/sym.l")
 sum (1460 . "@src64/apply.l")
 super (1225 . "@src64/flow.l")
@@ -325,9 +325,9 @@ text (1398 . "@src64/sym.l")
 throw (2493 . "@src64/flow.l")
 tick (3183 . "@src64/flow.l")
 till (3619 . "@src64/io.l")
-time (2691 . "@src64/main.l")
+time (2705 . "@src64/main.l")
 touch (1172 . "@src64/sym.l")
-trail (693 . "@src64/main.l")
+trail (695 . "@src64/main.l")
 trim (1759 . "@src64/subr.l")
 try (1177 . "@src64/flow.l")
 type (920 . "@src64/flow.l")
@@ -335,13 +335,13 @@ udp (301 . "@src64/net.l")
 unify (3938 . "@src64/subr.l")
 unless (1901 . "@src64/flow.l")
 until (2085 . "@src64/flow.l")
-up (745 . "@src64/main.l")
+up (752 . "@src64/main.l")
 upp? (3393 . "@src64/sym.l")
 uppc (3460 . "@src64/sym.l")
 use (1573 . "@src64/flow.l")
-usec (2796 . "@src64/main.l")
+usec (2810 . "@src64/main.l")
 val (1588 . "@src64/sym.l")
-version (3184 . "@src64/main.l")
+version (3198 . "@src64/main.l")
 wait (3159 . "@src64/io.l")
 when (1884 . "@src64/flow.l")
 while (2061 . "@src64/flow.l")
diff --git a/src/main.c b/src/main.c
@@ -1,4 +1,4 @@
-/* 13oct12abu
+/* 15nov12abu
  * (c) Software Lab. Alexander Burger
  */
 
@@ -277,7 +277,7 @@ any doEnv(any x) {
 
    Push(c1, Nil);
    if (!isCell(x = cdr(x))) {
-      for (p = Env.bind;  p;  p = p->link) {
+      for (p = Break? Env.bind->link : Env.bind;  p;  p = p->link) {
          if (p->i == 0) {
             for (i = p->cnt;  --i >= 0;) {
                for (x = data(c1); ; x = cdr(x)) {
@@ -326,7 +326,7 @@ any doUp(any x) {
       cnt = 1;
    else
       cnt = (int)unBox(y),  x = cdr(x),  y = car(x);
-   for (p = Env.bind, val = &val(y);  p;  p = p->link) {
+   for (p = Break? Env.bind->link : Env.bind, val = &val(y);  p;  p = p->link) {
       if (p->i <= 0) {
          for (i = 0;  i < p->cnt;  ++i)
             if (p->bnd[i].sym == y) {
diff --git a/src64/main.l b/src64/main.l
@@ -1,4 +1,4 @@
-# 14nov12abu
+# 15nov12abu
 # (c) Software Lab. Alexander Burger
 
 (code 'Code)
@@ -607,6 +607,8 @@
    if nz  # No
       push Y
       ld Y (EnvBind)  # Bindings
+      null (Break)  # In breakpoint?
+      ldnz Y ((Y))  # Yes: Skip frame
       do
          null Y  # Bindings?
       while nz  # Yes
@@ -695,6 +697,8 @@
    push X
    push Y
    ld X (EnvBind)  # Bindings
+   null (Break)  # In breakpoint?
+   ldnz X ((X))  # Yes: Skip frame
    do
       null X  # Bindings?
    while nz  # Yes
@@ -704,13 +708,17 @@
          add X I  # X on bindings
          do
             ld Y (X)  # Next symbol
+            add X II  # Next entry
             cmp Y At  # Lambda frame?
             if eq  # Yes
-               call cons_A  # Cons 'exe'
-               ld (A) (C II)  # Cons 'exe'
-               ld (A CDR) E
-               ld E A
-               break T
+               cmp X C  # Last entry?
+               if eq  # Yes
+                  call cons_A  # Cons 'exe'
+                  ld (A) (C II)  # Cons 'exe'
+                  ld (A CDR) E
+                  ld E A
+                  break T
+               end
             end
             call cons_A  # Cons value
             ld (A) (Y)
@@ -718,8 +726,7 @@
             call consA_E  # Cons symbol
             ld (E) Y
             ld (E CDR) A
-            ld (Y) (X I)  # Set old value
-            add X II  # Next entry
+            ld (Y) (X -I)  # Set old value
             cmp X C  # More?
          until eq  # No
       end
@@ -757,15 +764,20 @@
    cmp X Nil  # NIL?
    if eq  # Yes
       ld X (EnvBind)  # Bindings
+      null (Break)  # In breakpoint?
+      ldnz X ((X))  # Yes: Skip frame
       do
          null X  # Bindings?
       while nz  # Yes
          ld A (X)  # End of bindings in A
-         dec C  # Done?
-         if z  # Yes
-            ld E (A II)  # Return 'exe'
-            pop X
-            ret
+         cmp (A -II) At  # Lambda frame?
+         if eq  # Yes
+            dec C  # Done?
+            if z  # Yes
+               ld E (A II)  # Return 'exe'
+               pop X
+               ret
+            end
          end
          ld X (A I)  # Bind link
       loop
@@ -777,6 +789,8 @@
    push Z
    ld E (E CDR)  # Last arg
    ld Y (EnvBind)  # Bindings
+   null (Break)  # In breakpoint?
+   ldnz Y ((Y))  # Yes: Skip frame
    ld Z X  # Value pointer
    do
       null Y  # Bindings?
diff --git a/src64/tags b/src64/tags
@@ -427,12 +427,12 @@ badFdErrEX	err.l	531
 badInputErrB	err.l	551
 balanceCEY	sym.l	910
 balanceXY	sym.l	892
-begString	main.l	2382
+begString	main.l	2396
 binPrintEZ	io.l	731
 binReadZ_FE	io.l	520
 blkPeekCEZ	db.l	392
 blkPokeCEZ	db.l	403
-boxE_E	main.l	2350
+boxE_E	main.l	2364
 boxNumA_A	gc.l	872
 boxNumE_E	gc.l	886
 boxNum_A	gc.l	824
@@ -448,37 +448,37 @@ byteNumBCX_CX	io.l	464
 byteSymBCX_CX	io.l	1293
 caseDataA_AC	sym.l	3366
 caught	flow.l	2483
-cbl	main.l	1984
-cbl1	main.l	2017
-cbl10	main.l	2053
-cbl11	main.l	2057
-cbl12	main.l	2061
-cbl13	main.l	2065
-cbl14	main.l	2069
-cbl15	main.l	2073
-cbl16	main.l	2077
-cbl17	main.l	2081
-cbl18	main.l	2085
-cbl19	main.l	2089
-cbl2	main.l	2021
-cbl20	main.l	2093
-cbl21	main.l	2097
-cbl22	main.l	2101
-cbl23	main.l	2105
-cbl24	main.l	2109
-cbl3	main.l	2025
-cbl4	main.l	2029
-cbl5	main.l	2033
-cbl6	main.l	2037
-cbl7	main.l	2041
-cbl8	main.l	2045
-cbl9	main.l	2049
+cbl	main.l	1998
+cbl1	main.l	2031
+cbl10	main.l	2067
+cbl11	main.l	2071
+cbl12	main.l	2075
+cbl13	main.l	2079
+cbl14	main.l	2083
+cbl15	main.l	2087
+cbl16	main.l	2091
+cbl17	main.l	2095
+cbl18	main.l	2099
+cbl19	main.l	2103
+cbl2	main.l	2035
+cbl20	main.l	2107
+cbl21	main.l	2111
+cbl22	main.l	2115
+cbl23	main.l	2119
+cbl24	main.l	2123
+cbl3	main.l	2039
+cbl4	main.l	2043
+cbl5	main.l	2047
+cbl6	main.l	2051
+cbl7	main.l	2055
+cbl8	main.l	2059
+cbl9	main.l	2063
 charSymACX_CX	io.l	1258
 checkVarAX	err.l	371
 checkVarEX	err.l	387
 checkVarYX	err.l	379
 chopExtNmX_E	db.l	133
-circE_YF	main.l	811
+circE_YF	main.l	825
 cleanUpY	db.l	570
 closeAX	io.l	5
 closeErrEX	err.l	512
@@ -495,7 +495,7 @@ cmpuAE_F	big.l	1587
 cntErrAX	err.l	424
 cntErrCX	err.l	426
 cntErrEX	err.l	428
-compareAE_F	main.l	976
+compareAE_F	main.l	990
 consAC_E	gc.l	786
 consA_A	gc.l	530
 consA_C	gc.l	594
@@ -534,7 +534,7 @@ ctOpenEXY	io.l	1672
 currFdX_C	io.l	1335
 currFd_C	io.l	1339
 cutLocalCX	flow.l	2841
-dateXYZ_E	main.l	2497
+dateXYZ_E	main.l	2511
 dbAEX	db.l	1331
 dbFetchEX	db.l	1319
 dbFileBlkY_AC	db.l	246
@@ -564,9 +564,9 @@ doAnd	flow.l	1624
 doAny	io.l	3974
 doAppend	subr.l	1338
 doApply	apply.l	713
-doArg	main.l	2444
-doArgs	main.l	2420
-doArgv	main.l	3067
+doArg	main.l	2458
+doArgs	main.l	2434
+doArgv	main.l	3081
 doArrow	subr.l	3916
 doAs	flow.l	139
 doAsoq	subr.l	3008
@@ -602,7 +602,7 @@ doCall	flow.l	3096
 doCar	subr.l	5
 doCase	flow.l	1965
 doCatch	flow.l	2467
-doCd	main.l	2819
+doCd	main.l	2833
 doCdaaar	subr.l	464
 doCdaadr	subr.l	487
 doCdaar	subr.l	179
@@ -625,7 +625,7 @@ doCirc	subr.l	816
 doCircQ	subr.l	2402
 doClip	subr.l	1799
 doClose	io.l	4387
-doCmd	main.l	3049
+doCmd	main.l	3063
 doCnt	apply.l	1413
 doCo	flow.l	2548
 doCol	sym.l	3051
@@ -637,9 +637,9 @@ doConnect	net.l	224
 doCons	subr.l	747
 doCopy	subr.l	1225
 doCtl	io.l	4260
-doCtty	main.l	2844
+doCtty	main.l	2858
 doCut	sym.l	1922
-doDate	main.l	2558
+doDate	main.l	2572
 doDbck	db.l	2113
 doDe	flow.l	532
 doDec	big.l	2323
@@ -649,7 +649,7 @@ doDel	sym.l	1977
 doDelete	subr.l	1401
 doDelq	subr.l	1452
 doDiff	subr.l	2589
-doDir	main.l	2979
+doDir	main.l	2993
 doDiv	big.l	2513
 doDm	flow.l	545
 doDo	flow.l	2141
@@ -663,7 +663,7 @@ doEq0	subr.l	2173
 doEqT	subr.l	2181
 doEqual	subr.l	2115
 doErr	io.l	4240
-doErrno	main.l	1446
+doErrno	main.l	1460
 doEval	flow.l	175
 doExt	io.l	5152
 doExtQ	sym.l	1157
@@ -671,7 +671,7 @@ doExtern	sym.l	1023
 doExtra	flow.l	1269
 doExtract	apply.l	1218
 doFifo	sym.l	2088
-doFile	main.l	2926
+doFile	main.l	2940
 doFill	subr.l	3243
 doFilter	apply.l	1161
 doFin	subr.l	2033
@@ -712,7 +712,7 @@ doIfn	flow.l	1865
 doIn	io.l	4200
 doInc	big.l	2256
 doIndex	subr.l	2637
-doInfo	main.l	2881
+doInfo	main.l	2895
 doIntern	sym.l	998
 doIpid	flow.l	3215
 doIsa	flow.l	967
@@ -730,7 +730,7 @@ doLieu	db.l	1157
 doLine	io.l	3708
 doLines	io.l	3861
 doLink	subr.l	1172
-doLisp	main.l	2115
+doLisp	main.l	2129
 doList	subr.l	887
 doListen	net.l	157
 doLit	flow.l	150
@@ -773,10 +773,10 @@ doNEqT	subr.l	2198
 doNEqual	subr.l	2144
 doName	sym.l	502
 doNand	flow.l	1659
-doNative	main.l	1454
+doNative	main.l	1468
 doNeed	subr.l	919
 doNew	flow.l	839
-doNext	main.l	2427
+doNext	main.l	2441
 doNil	flow.l	1742
 doNond	flow.l	1942
 doNor	flow.l	1680
@@ -790,7 +790,7 @@ doOnOff	sym.l	1738
 doOne	sym.l	1771
 doOpen	io.l	4344
 doOpid	flow.l	3231
-doOpt	main.l	3170
+doOpt	main.l	3184
 doOr	flow.l	1640
 doOut	io.l	4220
 doPack	sym.l	1270
@@ -824,9 +824,9 @@ doPush	sym.l	1813
 doPush1	sym.l	1849
 doPut	sym.l	2835
 doPutl	sym.l	3113
-doPwd	main.l	2808
+doPwd	main.l	2822
 doQueue	sym.l	2045
-doQuit	main.l	1156
+doQuit	main.l	1170
 doQuote	flow.l	134
 doRand	big.l	3003
 doRange	subr.l	997
@@ -836,7 +836,7 @@ doRd	io.l	5169
 doRead	io.l	2665
 doRem	big.l	2572
 doReplace	subr.l	1499
-doRest	main.l	2473
+doRest	main.l	2487
 doReverse	subr.l	1678
 doRewind	io.l	5135
 doRollback	db.l	1898
@@ -865,7 +865,7 @@ doStem	subr.l	1989
 doStr	io.l	4028
 doStrQ	sym.l	1136
 doStrip	subr.l	1576
-doStruct	main.l	1906
+doStruct	main.l	1920
 doSub	big.l	2209
 doSubQ	sym.l	1569
 doSum	apply.l	1460
@@ -882,10 +882,10 @@ doText	sym.l	1398
 doThrow	flow.l	2493
 doTick	flow.l	3183
 doTill	io.l	3619
-doTime	main.l	2691
+doTime	main.l	2705
 doTouch	sym.l	1172
 doTrace	flow.l	2967
-doTrail	main.l	693
+doTrail	main.l	695
 doTrim	subr.l	1759
 doTry	flow.l	1177
 doType	flow.l	920
@@ -893,13 +893,13 @@ doUdp	net.l	301
 doUnify	subr.l	3938
 doUnless	flow.l	1901
 doUntil	flow.l	2085
-doUp	main.l	745
+doUp	main.l	752
 doUppQ	sym.l	3393
 doUppc	sym.l	3460
 doUse	flow.l	1573
-doUsec	main.l	2796
+doUsec	main.l	2810
 doVal	sym.l	1588
-doVersion	main.l	3184
+doVersion	main.l	3198
 doWait	io.l	3159
 doWhen	flow.l	1884
 doWhile	flow.l	2061
@@ -912,24 +912,24 @@ doYield	flow.l	2720
 doYoke	subr.l	1196
 doZap	sym.l	1186
 doZero	sym.l	1756
-endString_E	main.l	2393
+endString_E	main.l	2407
 eofErr	err.l	540
 eolA_F	io.l	3693
-equalAE_F	main.l	843
+equalAE_F	main.l	857
 erOpenEXY	io.l	1630
 errEXYZ	err.l	33
 errnoC	sys/x86-64.linux.code.l	10
 errnoEXY	err.l	24
 errno_A	sys/x86-64.linux.code.l	5
-evCntEX_FE	main.l	2321
-evCntXY_FE	main.l	2319
-evExprCE_E	main.l	1174
-evListE_E	main.l	1322
+evCntEX_FE	main.l	2335
+evCntXY_FE	main.l	2333
+evExprCE_E	main.l	1188
+evListE_E	main.l	1336
 evMethodACEXYZ_E	flow.l	645
-evSymE_E	main.l	2296
-evSymX_E	main.l	2291
-evSymY_E	main.l	2294
-execE	main.l	2205
+evSymE_E	main.l	2310
+evSymX_E	main.l	2305
+evSymY_E	main.l	2308
+execE	main.l	2219
 execErrS	main.l	187
 extErrEX	err.l	440
 extNmCE_X	db.l	64
@@ -939,7 +939,7 @@ fdRdSetCZL	io.l	2727
 fdSetCL_X	io.l	2715
 fdSetC_Y	io.l	3318
 fdWrSetCZL	io.l	2734
-fetchCharC_AC	main.l	1949
+fetchCharC_AC	main.l	1963
 fileObjE_AC	db.l	237
 fileObjX_AC	db.l	211
 fillE_FE	subr.l	3261
@@ -957,7 +957,7 @@ fmtWordACX_CX	big.l	2046
 forkErrX	err.l	521
 forkLispX_FE	flow.l	3283
 fsyncDB	db.l	932
-funqE_FE	main.l	2229
+funqE_FE	main.l	2243
 gc	gc.l	65
 getAdrZ_A	db.l	6
 getBinaryZ_FB	io.l	448
@@ -999,7 +999,7 @@ isaCE_F	flow.l	1018
 jnlErrX	err.l	624
 jnlFileno_A	db.l	344
 joinLocalCX	flow.l	2854
-lisp	main.l	2159
+lisp	main.l	2173
 loadAllX_E	main.l	162
 loadBEX_E	io.l	4081
 lockErr	err.l	613
@@ -1017,13 +1017,13 @@ main	main.l	33
 makeErrX	err.l	477
 markE	gc.l	5
 matchCE_F	subr.l	3147
-memberXY_FY	main.l	1138
+memberXY_FY	main.l	1152
 metaCX_E	sym.l	3340
 methodEY_FCYZ	flow.l	795
 mkCharA_A	sym.l	573
 mkStrEZ_A	sym.l	650
 mkStrE_E	sym.l	623
-msec_A	main.l	2407
+msec_A	main.l	2421
 msgErrAX	err.l	494
 msgErrEX	err.l	496
 msgErrYX	err.l	492
@@ -1032,8 +1032,8 @@ nameA_A	sym.l	469
 nameE_E	sym.l	477
 nameX_X	sym.l	485
 nameY_Y	sym.l	493
-natBufACZ_CZ	main.l	1658
-natRetACE_CE	main.l	1757
+natBufACZ_CZ	main.l	1672
+natRetACE_CE	main.l	1771
 needC	gc.l	54
 needSymAX	err.l	329
 needSymEX	err.l	341
@@ -1091,7 +1091,7 @@ putACE	sym.l	2491
 putBlockBZ	db.l	612
 putSrcEC_E	flow.l	25
 putStdoutB	io.l	4631
-putStringB	main.l	2370
+putStringB	main.l	2384
 putTellBZ	io.l	997
 putUdpBZ	net.l	377
 rdAtomBY_E	io.l	2119
@@ -1128,7 +1128,7 @@ retnc	err.l	716
 retnz	err.l	722
 retz	err.l	719
 rewindLog	db.l	928
-runE_E	main.l	2217
+runE_E	main.l	2231
 rwUnlockDbA	db.l	269
 selectErrX	err.l	564
 serverCEY_FE	net.l	273
@@ -1138,7 +1138,7 @@ setBlkAC_Z	db.l	366
 setBlockAC_Z	db.l	364
 setCooked	main.l	443
 setRaw	main.l	417
-sharedLibC_FA	main.l	1375
+sharedLibC_FA	main.l	1389
 shluA_A	big.l	201
 shruA_A	big.l	247
 sig	main.l	344
@@ -1177,8 +1177,8 @@ tellErr	err.l	652
 tenfoldA_A	big.l	157
 testEscA_F	io.l	2052
 throwErrZX	flow.l	2518
-tmDateC_E	main.l	2487
-tmTimeY_E	main.l	2674
+tmDateC_E	main.l	2501
+tmTimeY_E	main.l	2688
 tokenCE_E	io.l	2523
 trSyncErrX	err.l	608
 traceCY	flow.l	3039
@@ -1219,10 +1219,10 @@ wrOpenEXY	io.l	1497
 wrSetCL_F	io.l	2746
 wrSyncErrX	err.l	581
 wtermsigS_A	sys/x86-64.linux.code.l	28
-xCntAX_FA	main.l	2341
-xCntCX_FC	main.l	2332
-xCntEX_FE	main.l	2323
-xSymE_E	main.l	2298
+xCntAX_FA	main.l	2355
+xCntCX_FC	main.l	2346
+xCntEX_FE	main.l	2337
+xSymE_E	main.l	2312
 xoruAE_A	big.l	465
 yieldErrEX	err.l	488
 yieldErrX	err.l	486