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 d499ad17e4f3cd5f06e4415569c614a75bd2e8b9
parent c03b796e09e4052826ba3ee6f5034078c0bfd50e
Author: Alexander Burger <abu@software-lab.de>
Date:   Mon, 30 Apr 2012 11:36:40 +0200

Stack alignments (64-bit)
Diffstat:
MCHANGES | 1+
Mdoc64/asm | 4++--
Mersatz/picolisp.jar | 0
Mlib/map | 38+++++++++++++++++++-------------------
Msrc/vers.h | 2+-
Msrc64/arch/ppc64.l | 4++--
Msrc64/arch/x86-64.l | 96+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Msrc64/main.l | 19++++++-------------
Msrc64/tags | 136++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc64/version.l | 4++--
10 files changed, 158 insertions(+), 146 deletions(-)

diff --git a/CHANGES b/CHANGES @@ -1,4 +1,5 @@ * DDmmm12 picoLisp-3.1.1 + Stack alignments (64-bit) Native 'struct' function (64-bit) double/float in 'native' structures (64-bit) Allow 'zap' protected symbols outside 'pico' namespace (64-bit) diff --git a/doc64/asm b/doc64/asm @@ -1,4 +1,4 @@ -# 16apr12abu +# 30apr12abu # (c) Software Lab. Alexander Burger @@ -163,7 +163,7 @@ call adr # Call 'adr' cc adr(src ..) # C-Call to 'adr' with 'src' arguments - cc adr reg # C-Call to 'adr' with end of stacked args in 'reg' + cc adr reg # C-Call to 'adr' with top of stacked args in 'reg' ldd # Load double value pointed to by 'C' ldf # Load float value pointed to by 'C' fixnum # Convert double with scale 'E' to fixnum in 'E' 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 (1613 . "@src64/flow.l") any (3965 . "@src64/io.l") append (1338 . "@src64/subr.l") apply (713 . "@src64/apply.l") -arg (2372 . "@src64/main.l") -args (2348 . "@src64/main.l") -argv (2992 . "@src64/main.l") +arg (2365 . "@src64/main.l") +args (2341 . "@src64/main.l") +argv (2985 . "@src64/main.l") as (139 . "@src64/flow.l") asoq (3008 . "@src64/subr.l") assoc (2973 . "@src64/subr.l") @@ -65,7 +65,7 @@ call (3079 . "@src64/flow.l") car (5 . "@src64/subr.l") case (1954 . "@src64/flow.l") catch (2456 . "@src64/flow.l") -cd (2747 . "@src64/main.l") +cd (2740 . "@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 (4381 . "@src64/io.l") -cmd (2974 . "@src64/main.l") +cmd (2967 . "@src64/main.l") cnt (1413 . "@src64/apply.l") co (2537 . "@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 (4254 . "@src64/io.l") -ctty (2772 . "@src64/main.l") +ctty (2765 . "@src64/main.l") cut (1922 . "@src64/sym.l") -date (2486 . "@src64/main.l") +date (2479 . "@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 (2905 . "@src64/main.l") +dir (2898 . "@src64/main.l") dm (545 . "@src64/flow.l") do (2130 . "@src64/flow.l") e (2911 . "@src64/flow.l") @@ -128,7 +128,7 @@ extern (1023 . "@src64/sym.l") extra (1258 . "@src64/flow.l") extract (1218 . "@src64/apply.l") fifo (2088 . "@src64/sym.l") -file (2852 . "@src64/main.l") +file (2845 . "@src64/main.l") fill (3243 . "@src64/subr.l") filter (1161 . "@src64/apply.l") fin (2033 . "@src64/subr.l") @@ -166,7 +166,7 @@ ifn (1854 . "@src64/flow.l") in (4194 . "@src64/io.l") inc (2256 . "@src64/big.l") index (2637 . "@src64/subr.l") -info (2809 . "@src64/main.l") +info (2802 . "@src64/main.l") intern (998 . "@src64/sym.l") ipid (3198 . "@src64/flow.l") isa (961 . "@src64/flow.l") @@ -183,7 +183,7 @@ lieu (1157 . "@src64/db.l") line (3699 . "@src64/io.l") lines (3852 . "@src64/io.l") link (1172 . "@src64/subr.l") -lisp (2044 . "@src64/main.l") +lisp (2037 . "@src64/main.l") list (887 . "@src64/subr.l") listen (157 . "@src64/net.l") lit (150 . "@src64/flow.l") @@ -225,7 +225,7 @@ nand (1648 . "@src64/flow.l") native (1376 . "@src64/main.l") need (919 . "@src64/subr.l") new (835 . "@src64/flow.l") -next (2355 . "@src64/main.l") +next (2348 . "@src64/main.l") nil (1731 . "@src64/flow.l") nond (1931 . "@src64/flow.l") nor (1669 . "@src64/flow.l") @@ -239,7 +239,7 @@ onOff (1738 . "@src64/sym.l") one (1771 . "@src64/sym.l") open (4338 . "@src64/io.l") opid (3214 . "@src64/flow.l") -opt (3095 . "@src64/main.l") +opt (3088 . "@src64/main.l") or (1629 . "@src64/flow.l") out (4214 . "@src64/io.l") pack (1270 . "@src64/sym.l") @@ -272,7 +272,7 @@ push (1813 . "@src64/sym.l") push1 (1849 . "@src64/sym.l") put (2835 . "@src64/sym.l") putl (3113 . "@src64/sym.l") -pwd (2736 . "@src64/main.l") +pwd (2729 . "@src64/main.l") queue (2045 . "@src64/sym.l") quit (1083 . "@src64/main.l") quote (134 . "@src64/flow.l") @@ -283,7 +283,7 @@ raw (449 . "@src64/main.l") rd (5163 . "@src64/io.l") read (2656 . "@src64/io.l") replace (1499 . "@src64/subr.l") -rest (2401 . "@src64/main.l") +rest (2394 . "@src64/main.l") reverse (1678 . "@src64/subr.l") rewind (5129 . "@src64/io.l") rollback (1898 . "@src64/db.l") @@ -309,7 +309,7 @@ stem (1989 . "@src64/subr.l") str (4019 . "@src64/io.l") str? (1136 . "@src64/sym.l") strip (1576 . "@src64/subr.l") -struct (1835 . "@src64/main.l") +struct (1828 . "@src64/main.l") sub? (1569 . "@src64/sym.l") sum (1460 . "@src64/apply.l") super (1214 . "@src64/flow.l") @@ -325,7 +325,7 @@ text (1398 . "@src64/sym.l") throw (2482 . "@src64/flow.l") tick (3166 . "@src64/flow.l") till (3610 . "@src64/io.l") -time (2619 . "@src64/main.l") +time (2612 . "@src64/main.l") touch (1172 . "@src64/sym.l") trim (1759 . "@src64/subr.l") try (1168 . "@src64/flow.l") @@ -338,9 +338,9 @@ up (691 . "@src64/main.l") upp? (3393 . "@src64/sym.l") uppc (3460 . "@src64/sym.l") use (1562 . "@src64/flow.l") -usec (2724 . "@src64/main.l") +usec (2717 . "@src64/main.l") val (1588 . "@src64/sym.l") -version (3109 . "@src64/main.l") +version (3102 . "@src64/main.l") wait (3150 . "@src64/io.l") when (1873 . "@src64/flow.l") while (2050 . "@src64/flow.l") diff --git a/src/vers.h b/src/vers.h @@ -1 +1 @@ -static byte Version[4] = {3,1,0,3}; +static byte Version[4] = {3,1,0,4}; diff --git a/src64/arch/ppc64.l b/src64/arch/ppc64.l @@ -1,4 +1,4 @@ -# 16apr12abu +# 30apr12abu # (c) Software Lab. Alexander Burger # Byte order @@ -1109,7 +1109,7 @@ (off Lea) ) ) Arg M ) ) - (let Lim 27 + (let Lim 27 #{MADA}# (prinst "mr" Lim Arg) (prinst "ld" 11 "flt1@got(2)") (for R Reg diff --git a/src64/arch/x86-64.l b/src64/arch/x86-64.l @@ -1,4 +1,4 @@ -# 16apr12abu +# 30apr12abu # (c) Software Lab. Alexander Burger # Byte order @@ -676,10 +676,6 @@ (let Reg '("%rdi" "%rsi" "%rdx" "%rcx" "%r8" "%r9") (if (lst? Arg) (let Lea NIL - (when (nth Arg 7) - (setq # Maximally 6 args in registers - Arg (append (head 6 Arg) (reverse (tail -6 Arg))) - M (append (head 6 M) (reverse (tail -6 M))) ) ) (mapc '((Src S) (if (== '& Src) @@ -694,43 +690,70 @@ (T (cons (recurse (car Src)) (recurse (cdr Src)))) ) ) S ) ) ) (cond - ((not Reg) # 'Src' not stack-relative here! - (ifn Lea - (prinst "pushq" Src) - (prinst "lea" Src "%rax") - (prinst "pushq" "%rax") ) ) ((and (=0 S) (= "0" Src)) (prinst "xor" (car Reg) (pop 'Reg)) ) ((= "$pop" Src) (prinst "pop" (pop 'Reg)) ) (T (prinst (if Lea "lea" "mov") Src (pop 'Reg))) ) (off Lea) ) ) - Arg - M ) + (head 6 Arg) + (head 6 M) ) + (prinst "push" "%rbp") + (prinst "mov" "%rsp" "%rbp") + (when (nth Arg 7) # Maximally 6 args in registers + (prinst "sub" (pack "$" (* 8 (length @))) "%rsp") ) + (prinst "andb" "$~15" "%spl") # Align stack + (let Ofs 0 + (mapc # 'Src' not lea or stack-relative here! + '((Src S) + (unless (and (=0 S) (= "0" Src)) # Keep for 'xor' later + (setq Src + (src + (recur (Src) + (cond + ((= "%rdx" Src) "%r12") + ((atom Src) Src) + (T (cons (recurse (car Src)) (recurse (cdr Src)))) ) ) + S ) ) ) + (ifn (and (=0 S) (= "0" Src)) + (prinst "movq" Src (pack Ofs "(%rsp)")) + (prinst "xor" "%rax" "%rax") + (prinst "movq" "%rax" (pack Ofs "(%rsp)")) ) + (inc 'Ofs 8) ) + (nth Arg 7) + (nth M 7) ) ) # Don't use SSE registers in varargs for static calls (when (member Adr '("printf" "fprintf" "sprintf" "open" "fcntl")) (prinst "xor" "%al" "%al") ) ) + (prinst "mov" "%rsp" "%rax") # A on arguments + (prinst "push" "%rbp") + (prinst "mov" "%rsp" "%rbp") + (prinst "mov" Arg "%rbx") + (prinst "sub" "%rax" "%rbx") # Size of arguments + (prinst "sub" "%rbx" "%rsp") # Allocate space + (prinst "andb" "$~15" "%spl") # Align stack + (prinst "mov" "%rsp" "%rbx") # E on stack space (prinst "lea" "5f(%rip)" "%r11") (mapc '((R X) (prinl "1:") - (prinst "cmp" "%rsp" Arg) + (prinst "cmp" "%rax" Arg) (prinst "jz" "9f") - (prinst "pop" "%r10") + (prinst "mov" "(%rax)" "%r10") + (prinst "add" "$16" "%rax") (prinst "or" "%r10" "%r10") (prinst "jz" "7f") (prinst "call" "*%r11") - (prinst "add" "$8" "%rsp") (prinst "jmp" "1b") (prinl "5:") (unless (= R "%r9") (prinst "lea" "(5f-5b)(%r11)" "%r11") ) (prinst "shr" "$4" "%r10") (prinst "jc" "3f") - (prinst "testb" "$0x02" "8(%rsp)") + (prinst "testb" "$0x02" "-8(%rax)") (prinst "jz" "2f") (prinst "cvtsi2sd" "%r10" "%xmm7") - (prinst "mov" "8(%rsp)" "%r10") + (prinst "mov" "-8(%rax)" "%r10") (prinst "shr" "$4" "%r10") (prinst "jnc" "1f") (prinst "neg" "%r10") @@ -739,19 +762,19 @@ (prinst "divsd" "%xmm7" X) (prinst "ret") (prinl "2:") - (prinst "cmpq" "$Nil" "8(%rsp)") + (prinst "cmpq" "$Nil" "-8(%rax)") (prinst "mov" "$0x7FF0000000000000" "%r10") (prinst "jnz" "1f") (prinst "mov" "$0xFFF0000000000000" "%r10") (prinl "1:") - (prinst "mov" "%r10" "8(%rsp)") - (prinst "movsd" "8(%rsp)" X) + (prinst "mov" "%r10" "-8(%rax)") + (prinst "movsd" "-8(%rax)" X) (prinst "ret") (prinl "3:") - (prinst "testb" "$0x02" "8(%rsp)") + (prinst "testb" "$0x02" "-8(%rax)") (prinst "jz" "2f") (prinst "cvtsi2ss" "%r10" "%xmm7") - (prinst "mov" "8(%rsp)" "%r10") + (prinst "mov" "-8(%rax)" "%r10") (prinst "shr" "$4" "%r10") (prinst "jnc" "1f") (prinst "neg" "%r10") @@ -760,37 +783,32 @@ (prinst "divss" "%xmm7" X) (prinst "ret") (prinl "2:") - (prinst "cmpq" "$Nil" "8(%rsp)") + (prinst "cmpq" "$Nil" "-8(%rax)") (prinst "mov" "$0x7F800000" "%r10") (prinst "jnz" "1f") (prinst "mov" "$0xFF800000" "%r10") (prinl "1:") - (prinst "mov" "%r10" "8(%rsp)") - (prinst "movss" "8(%rsp)" X) + (prinst "mov" "%r10" "-8(%rax)") + (prinst "movss" "-8(%rax)" X) (prinst "ret") (prinl "7:") - (prinst "pop" R) ) + (prinst "mov" "-8(%rax)" R) ) Reg '("%xmm0" "%xmm1" "%xmm2" "%xmm3" "%xmm4" "%xmm5") ) - (prinst "mov" Arg "%r11") (prinl "1:") - (prinst "cmp" "%rsp" Arg) - (prinst "jz" "1f") - (prinst "sub" "$16" Arg) - (prinst "sub" "$8" "%r11") - (prinst "mov" (pack "8(" Arg ")") "%r10") - (prinst "or" "%r10" "(%r11)") + (prinst "cmp" "%rax" Arg) + (prinst "jz" "9f") + (prinst "mov" "8(%rax)" "%r10") + (prinst "add" "$16" "%rax") + (prinst "mov" "%r10" "(%rbx)") + (prinst "add" "$8" "%rbx") (prinst "jmp 1b") - (prinl "1:") - (prinst "mov" "%r11" "%rsp") (prinl "9:") # Maximally 6 SSE registers in varargs for dynamic calls (prinst "mov" "$6" "%al") ) ) ((get 'call 'asm) Adr A) - (and - (lst? Arg) - (gt0 (- (length Arg) 6)) - (prinst "lea" (pack (* @ 8) "(%rsp)") "%rsp") ) + (prinst "mov" "%rbp" "%rsp") + (prinst "pop" "%rbp") (unless (== 'cc (caadr (memq *Statement *Program))) (prinst "mov" "%r12" "%rdx") (prinst "xor" "%r12" "%r12") ) ) diff --git a/src64/main.l b/src64/main.l @@ -1,4 +1,4 @@ -# 23apr12abu +# 30apr12abu # (c) Software Lab. Alexander Burger (code 'Code) @@ -1459,6 +1459,8 @@ loop ld X S # X on last argument link + push (Link) # Save Link + ld (Link) L lea Y (Z -II) # Limit do cmp X Y # More args? @@ -1534,22 +1536,13 @@ end add X I # Next arg loop - ld X S # Start of args in X - off S 15 # Align stack to cell boundary - ld A S # Keep end of duplicated args in A - ld C L # Top of args - sub C X # Bytes - sub S C # Space for args - movm (S) (X) (L) # Duplicate args + lea X (L -I) # Top of arguments ld Y (Z) # Get function pointer - cc (Y) A # Call C-function - ld S X # Drop duplicated args + cc (Y) X # Call C-function + ld (Link) (L -I) # Restore Link ld E (Z -II) # Get result specification ld C 0 # No pointer yet - push (Link) # Save L - ld (Link) L call natRetACE_CE # Extract return value - pop (Link) ld (Z -II) E # Save result lea Y (Z -III) # Clean up allocated C args do diff --git a/src64/tags b/src64/tags @@ -425,12 +425,12 @@ badFdErrEX err.l 525 badInputErrB err.l 545 balanceCEY sym.l 910 balanceXY sym.l 892 -begString main.l 2310 +begString main.l 2303 binPrintEZ io.l 730 binReadZ_FE io.l 519 blkPeekCEZ db.l 392 blkPokeCEZ db.l 403 -boxE_E main.l 2278 +boxE_E main.l 2271 boxNumA_A gc.l 872 boxNumE_E gc.l 886 boxNum_A gc.l 824 @@ -446,31 +446,31 @@ byteNumBCX_CX io.l 463 byteSymBCX_CX io.l 1291 caseDataA_AC sym.l 3366 caught flow.l 2472 -cbl main.l 1913 -cbl1 main.l 1946 -cbl10 main.l 1982 -cbl11 main.l 1986 -cbl12 main.l 1990 -cbl13 main.l 1994 -cbl14 main.l 1998 -cbl15 main.l 2002 -cbl16 main.l 2006 -cbl17 main.l 2010 -cbl18 main.l 2014 -cbl19 main.l 2018 -cbl2 main.l 1950 -cbl20 main.l 2022 -cbl21 main.l 2026 -cbl22 main.l 2030 -cbl23 main.l 2034 -cbl24 main.l 2038 -cbl3 main.l 1954 -cbl4 main.l 1958 -cbl5 main.l 1962 -cbl6 main.l 1966 -cbl7 main.l 1970 -cbl8 main.l 1974 -cbl9 main.l 1978 +cbl main.l 1906 +cbl1 main.l 1939 +cbl10 main.l 1975 +cbl11 main.l 1979 +cbl12 main.l 1983 +cbl13 main.l 1987 +cbl14 main.l 1991 +cbl15 main.l 1995 +cbl16 main.l 1999 +cbl17 main.l 2003 +cbl18 main.l 2007 +cbl19 main.l 2011 +cbl2 main.l 1943 +cbl20 main.l 2015 +cbl21 main.l 2019 +cbl22 main.l 2023 +cbl23 main.l 2027 +cbl24 main.l 2031 +cbl3 main.l 1947 +cbl4 main.l 1951 +cbl5 main.l 1955 +cbl6 main.l 1959 +cbl7 main.l 1963 +cbl8 main.l 1967 +cbl9 main.l 1971 cellErrAX err.l 438 cellErrEX err.l 440 charSymACX_CX io.l 1256 @@ -534,7 +534,7 @@ ctOpenEXY io.l 1670 currFdX_C io.l 1333 currFd_C io.l 1337 cutLocalCX flow.l 2824 -dateXYZ_E main.l 2425 +dateXYZ_E main.l 2418 dbAEX db.l 1331 dbFetchEX db.l 1319 dbFileBlkY_AC db.l 246 @@ -564,9 +564,9 @@ doAnd flow.l 1613 doAny io.l 3965 doAppend subr.l 1338 doApply apply.l 713 -doArg main.l 2372 -doArgs main.l 2348 -doArgv main.l 2992 +doArg main.l 2365 +doArgs main.l 2341 +doArgv main.l 2985 doArrow subr.l 3916 doAs flow.l 139 doAsoq subr.l 3008 @@ -602,7 +602,7 @@ doCall flow.l 3079 doCar subr.l 5 doCase flow.l 1954 doCatch flow.l 2456 -doCd main.l 2747 +doCd main.l 2740 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 4381 -doCmd main.l 2974 +doCmd main.l 2967 doCnt apply.l 1413 doCo flow.l 2537 doCol sym.l 3051 @@ -637,9 +637,9 @@ doConnect net.l 224 doCons subr.l 747 doCopy subr.l 1225 doCtl io.l 4254 -doCtty main.l 2772 +doCtty main.l 2765 doCut sym.l 1922 -doDate main.l 2486 +doDate main.l 2479 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 2905 +doDir main.l 2898 doDiv big.l 2513 doDm flow.l 545 doDo flow.l 2130 @@ -671,7 +671,7 @@ doExtern sym.l 1023 doExtra flow.l 1258 doExtract apply.l 1218 doFifo sym.l 2088 -doFile main.l 2852 +doFile main.l 2845 doFill subr.l 3243 doFilter apply.l 1161 doFin subr.l 2033 @@ -712,7 +712,7 @@ doIfn flow.l 1854 doIn io.l 4194 doInc big.l 2256 doIndex subr.l 2637 -doInfo main.l 2809 +doInfo main.l 2802 doIntern sym.l 998 doIpid flow.l 3198 doIsa flow.l 961 @@ -730,7 +730,7 @@ doLieu db.l 1157 doLine io.l 3699 doLines io.l 3852 doLink subr.l 1172 -doLisp main.l 2044 +doLisp main.l 2037 doList subr.l 887 doListen net.l 157 doLit flow.l 150 @@ -776,7 +776,7 @@ doNand flow.l 1648 doNative main.l 1376 doNeed subr.l 919 doNew flow.l 835 -doNext main.l 2355 +doNext main.l 2348 doNil flow.l 1731 doNond flow.l 1931 doNor flow.l 1669 @@ -790,7 +790,7 @@ doOnOff sym.l 1738 doOne sym.l 1771 doOpen io.l 4338 doOpid flow.l 3214 -doOpt main.l 3095 +doOpt main.l 3088 doOr flow.l 1629 doOut io.l 4214 doPack sym.l 1270 @@ -824,7 +824,7 @@ doPush sym.l 1813 doPush1 sym.l 1849 doPut sym.l 2835 doPutl sym.l 3113 -doPwd main.l 2736 +doPwd main.l 2729 doQueue sym.l 2045 doQuit main.l 1083 doQuote flow.l 134 @@ -836,7 +836,7 @@ doRd io.l 5163 doRead io.l 2656 doRem big.l 2572 doReplace subr.l 1499 -doRest main.l 2401 +doRest main.l 2394 doReverse subr.l 1678 doRewind io.l 5129 doRollback db.l 1898 @@ -865,7 +865,7 @@ doStem subr.l 1989 doStr io.l 4019 doStrQ sym.l 1136 doStrip subr.l 1576 -doStruct main.l 1835 +doStruct main.l 1828 doSub big.l 2209 doSubQ sym.l 1569 doSum apply.l 1460 @@ -882,7 +882,7 @@ doText sym.l 1398 doThrow flow.l 2482 doTick flow.l 3166 doTill io.l 3610 -doTime main.l 2619 +doTime main.l 2612 doTouch sym.l 1172 doTrace flow.l 2950 doTrim subr.l 1759 @@ -896,9 +896,9 @@ doUp main.l 691 doUppQ sym.l 3393 doUppc sym.l 3460 doUse flow.l 1562 -doUsec main.l 2724 +doUsec main.l 2717 doVal sym.l 1588 -doVersion main.l 3109 +doVersion main.l 3102 doWait io.l 3150 doWhen flow.l 1873 doWhile flow.l 2050 @@ -911,7 +911,7 @@ doYield flow.l 2706 doYoke subr.l 1196 doZap sym.l 1186 doZero sym.l 1756 -endString_E main.l 2321 +endString_E main.l 2314 eofErr err.l 534 eolA_F io.l 3684 equalAE_F main.l 770 @@ -920,15 +920,15 @@ 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 2249 -evCntXY_FE main.l 2247 +evCntEX_FE main.l 2242 +evCntXY_FE main.l 2240 evExprCE_E main.l 1101 evListE_E main.l 1245 evMethodACXYZ_E flow.l 645 -evSymE_E main.l 2224 -evSymX_E main.l 2219 -evSymY_E main.l 2222 -execE main.l 2133 +evSymE_E main.l 2217 +evSymX_E main.l 2212 +evSymY_E main.l 2215 +execE main.l 2126 execErrS main.l 187 extErrEX err.l 434 extNmCE_X db.l 64 @@ -938,7 +938,7 @@ fdRdSetCZL io.l 2718 fdSetCL_X io.l 2706 fdSetC_Y io.l 3309 fdWrSetCZL io.l 2725 -fetchCharC_AC main.l 1878 +fetchCharC_AC main.l 1871 fileObjE_AC db.l 237 fileObjX_AC db.l 211 fillE_FE subr.l 3261 @@ -956,7 +956,7 @@ fmtWordACX_CX big.l 2046 forkErrX err.l 515 forkLispX_FE flow.l 3266 fsyncDB db.l 932 -funqE_FE main.l 2157 +funqE_FE main.l 2150 gc gc.l 65 getAdrZ_A db.l 6 getBinaryZ_FB io.l 447 @@ -998,7 +998,7 @@ isaCE_F flow.l 1012 jnlErrX err.l 618 jnlFileno_A db.l 344 joinLocalCX flow.l 2837 -lisp main.l 2087 +lisp main.l 2080 loadAllX_E main.l 162 loadBEX_E io.l 4072 lockErr err.l 607 @@ -1022,7 +1022,7 @@ methodEY_FCYZ flow.l 791 mkCharA_A sym.l 573 mkStrEZ_A sym.l 650 mkStrE_E sym.l 623 -msec_A main.l 2335 +msec_A main.l 2328 msgErrAX err.l 488 msgErrEX err.l 490 msgErrYX err.l 486 @@ -1031,8 +1031,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 1587 -natRetACE_CE main.l 1686 +natBufACZ_CZ main.l 1580 +natRetACE_CE main.l 1679 needC gc.l 54 needSymAX err.l 323 needSymEX err.l 335 @@ -1088,7 +1088,7 @@ putACE sym.l 2491 putBlockBZ db.l 612 putSrcEC_E flow.l 25 putStdoutB io.l 4625 -putStringB main.l 2298 +putStringB main.l 2291 putTellBZ io.l 996 putUdpBZ net.l 377 rdAtomBY_E io.l 2117 @@ -1125,7 +1125,7 @@ retnc err.l 710 retnz err.l 716 retz err.l 713 rewindLog db.l 928 -runE_E main.l 2145 +runE_E main.l 2138 rwUnlockDbA db.l 269 s_isdirS_F sys/x86-64.linux.code.l 16 selectErrX err.l 558 @@ -1175,8 +1175,8 @@ tellErr err.l 646 tenfoldA_A big.l 157 testEscA_F io.l 2050 throwErrZX flow.l 2507 -tmDateC_E main.l 2415 -tmTimeY_E main.l 2602 +tmDateC_E main.l 2408 +tmTimeY_E main.l 2595 tokenCE_E io.l 2522 trSyncErrX err.l 602 traceCY flow.l 3022 @@ -1217,10 +1217,10 @@ wrOpenEXY io.l 1495 wrSetCL_F io.l 2737 wrSyncErrX err.l 575 wtermsigS_A sys/x86-64.linux.code.l 34 -xCntAX_FA main.l 2269 -xCntCX_FC main.l 2260 -xCntEX_FE main.l 2251 -xSymE_E main.l 2226 +xCntAX_FA main.l 2262 +xCntCX_FC main.l 2253 +xCntEX_FE main.l 2244 +xSymE_E main.l 2219 xoruAE_A big.l 465 yieldErrEX err.l 482 yieldErrX err.l 480 diff --git a/src64/version.l b/src64/version.l @@ -1,6 +1,6 @@ -# 23apr12abu +# 30apr12abu # (c) Software Lab. Alexander Burger -(de *Version 3 1 0 3) +(de *Version 3 1 0 4) # vi:et:ts=3:sw=3