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 9104a52ccdad51d64b33952e13bc18301f8cfc21
parent 04667ee243aec0e25ae39d097555024e499756ad
Author: Alexander Burger <abu@software-lab.de>
Date:   Fri, 26 Aug 2011 18:58:15 +0200

GC bug in 64-bit bignums
Diffstat:
MCHANGES | 2++
Mlib/tags | 30+++++++++++++++---------------
Msrc64/big.l | 6++++--
3 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/CHANGES b/CHANGES @@ -1,4 +1,6 @@ * XXsep11 picoLisp-3.0.8 + GC bug in 64-bit bignums + Bug in 64-bit 'exec' error handling Bug in 'rand' (64-bit) EOF bug in pipes to stdin 'clause' function diff --git a/lib/tags b/lib/tags @@ -1,13 +1,13 @@ ! (2849 . "@src64/flow.l") $ (2951 . "@src64/flow.l") -% (2570 . "@src64/big.l") -& (2805 . "@src64/big.l") +% (2572 . "@src64/big.l") +& (2807 . "@src64/big.l") * (2389 . "@src64/big.l") */ (2446 . "@src64/big.l") + (2171 . "@src64/big.l") - (2209 . "@src64/big.l") -> (3913 . "@src64/subr.l") -/ (2511 . "@src64/big.l") +/ (2513 . "@src64/big.l") : (2925 . "@src64/sym.l") :: (2949 . "@src64/sym.l") ; (2851 . "@src64/sym.l") @@ -22,8 +22,8 @@ $ (2951 . "@src64/flow.l") =T (2181 . "@src64/subr.l") > (2267 . "@src64/subr.l") >= (2297 . "@src64/subr.l") ->> (2625 . "@src64/big.l") -abs (2729 . "@src64/big.l") +>> (2627 . "@src64/big.l") +abs (2731 . "@src64/big.l") accept (139 . "@src64/net.l") adr (594 . "@src64/main.l") alarm (471 . "@src64/main.l") @@ -41,7 +41,7 @@ assoc (2970 . "@src64/subr.l") at (2099 . "@src64/flow.l") atom (2385 . "@src64/subr.l") bind (1352 . "@src64/flow.l") -bit? (2746 . "@src64/big.l") +bit? (2748 . "@src64/big.l") bool (1714 . "@src64/flow.l") box (819 . "@src64/flow.l") box? (1007 . "@src64/sym.l") @@ -147,13 +147,13 @@ from (3520 . "@src64/io.l") full (1075 . "@src64/subr.l") fun? (742 . "@src64/sym.l") gc (432 . "@src64/gc.l") -ge0 (2705 . "@src64/big.l") +ge0 (2707 . "@src64/big.l") get (2775 . "@src64/sym.l") getd (750 . "@src64/sym.l") getl (3069 . "@src64/sym.l") glue (1242 . "@src64/sym.l") -gt0 (2716 . "@src64/big.l") -hash (2974 . "@src64/big.l") +gt0 (2718 . "@src64/big.l") +hash (2976 . "@src64/big.l") head (1820 . "@src64/subr.l") heap (526 . "@src64/main.l") hear (3205 . "@src64/io.l") @@ -175,7 +175,7 @@ journal (968 . "@src64/db.l") key (3353 . "@src64/io.l") kill (3231 . "@src64/flow.l") last (2044 . "@src64/subr.l") -le0 (2691 . "@src64/big.l") +le0 (2693 . "@src64/big.l") length (2741 . "@src64/subr.l") let (1469 . "@src64/flow.l") let? (1530 . "@src64/flow.l") @@ -193,7 +193,7 @@ loop (2163 . "@src64/flow.l") low? (3252 . "@src64/sym.l") lowc (3282 . "@src64/sym.l") lst? (2415 . "@src64/subr.l") -lt0 (2680 . "@src64/big.l") +lt0 (2682 . "@src64/big.l") lup (2233 . "@src64/sym.l") made (1107 . "@src64/subr.l") make (1088 . "@src64/subr.l") @@ -276,7 +276,7 @@ pwd (2674 . "@src64/main.l") queue (1927 . "@src64/sym.l") quit (1089 . "@src64/main.l") quote (139 . "@src64/flow.l") -rand (3001 . "@src64/big.l") +rand (3003 . "@src64/big.l") range (997 . "@src64/subr.l") rank (3033 . "@src64/subr.l") raw (449 . "@src64/main.l") @@ -290,7 +290,7 @@ rollback (1889 . "@src64/db.l") rot (848 . "@src64/subr.l") run (311 . "@src64/flow.l") sect (2541 . "@src64/subr.l") -seed (2959 . "@src64/big.l") +seed (2961 . "@src64/big.l") seek (1275 . "@src64/apply.l") send (1128 . "@src64/flow.l") seq (1081 . "@src64/db.l") @@ -347,9 +347,9 @@ with (1322 . "@src64/flow.l") wr (5206 . "@src64/io.l") xchg (1545 . "@src64/sym.l") xor (1691 . "@src64/flow.l") -x| (2885 . "@src64/big.l") +x| (2887 . "@src64/big.l") yield (2707 . "@src64/flow.l") yoke (1196 . "@src64/subr.l") zap (1071 . "@src64/sym.l") zero (1638 . "@src64/sym.l") -| (2845 . "@src64/big.l") +| (2847 . "@src64/big.l") diff --git a/src64/big.l b/src64/big.l @@ -1,4 +1,4 @@ -# 19aug11abu +# 26aug11abu # (c) Software Lab. Alexander Burger ### Destructive primitives ### @@ -2489,8 +2489,10 @@ jeq divErrX # Yes ld A E # Last argument call shruA_A # / 2 - ld E (L I) # Product + ld E (L I) # Get product + ld (L I) A # Save halved argument call adduAE_A # Add for rounding + ld (L I) A # Save rounded product ld E (L II) # Last argument call divuAE_A # Divide ld E A # Result