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 033b424031b01c59fe59052112cd7228c27485f0
parent 613d7b543aa68a614b089b62be8a54375e7594ef
Author: Alexander Burger <abu@software-lab.de>
Date:   Thu, 21 Apr 2011 14:39:08 +0200

Bug in 'replace': Crashed for an odd number of 'any' arguments
Diffstat:
MCHANGES | 1+
Mlib/tags | 102++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc64/subr.l | 12++++++++----
3 files changed, 60 insertions(+), 55 deletions(-)

diff --git a/CHANGES b/CHANGES @@ -1,5 +1,6 @@ * XXjun11 picoLisp-3.0.7 64-bit version for PowerPC (ppc64) + Bug in 'replace' (64-bit) Moved temporary directories to ~/.pil/tmp/ Moved line editor history to ~/.pil/history diff --git a/lib/tags b/lib/tags @@ -6,22 +6,22 @@ $ (2953 . "@src64/flow.l") */ (2446 . "@src64/big.l") + (2171 . "@src64/big.l") - (2209 . "@src64/big.l") --> (3909 . "@src64/subr.l") +-> (3913 . "@src64/subr.l") / (2511 . "@src64/big.l") : (2896 . "@src64/sym.l") :: (2920 . "@src64/sym.l") ; (2822 . "@src64/sym.l") -< (2203 . "@src64/subr.l") -<= (2233 . "@src64/subr.l") -<> (2140 . "@src64/subr.l") -= (2111 . "@src64/subr.l") -=0 (2169 . "@src64/subr.l") +< (2207 . "@src64/subr.l") +<= (2237 . "@src64/subr.l") +<> (2144 . "@src64/subr.l") += (2115 . "@src64/subr.l") +=0 (2173 . "@src64/subr.l") =: (2851 . "@src64/sym.l") -== (2055 . "@src64/subr.l") +== (2059 . "@src64/subr.l") ==== (965 . "@src64/sym.l") -=T (2177 . "@src64/subr.l") -> (2263 . "@src64/subr.l") ->= (2293 . "@src64/subr.l") +=T (2181 . "@src64/subr.l") +> (2267 . "@src64/subr.l") +>= (2297 . "@src64/subr.l") >> (2625 . "@src64/big.l") abs (2729 . "@src64/big.l") accept (139 . "@src64/net.l") @@ -36,10 +36,10 @@ arg (2267 . "@src64/main.l") args (2243 . "@src64/main.l") argv (2887 . "@src64/main.l") as (144 . "@src64/flow.l") -asoq (3001 . "@src64/subr.l") -assoc (2966 . "@src64/subr.l") +asoq (3005 . "@src64/subr.l") +assoc (2970 . "@src64/subr.l") at (2101 . "@src64/flow.l") -atom (2381 . "@src64/subr.l") +atom (2385 . "@src64/subr.l") bind (1354 . "@src64/flow.l") bit? (2746 . "@src64/big.l") bool (1716 . "@src64/flow.l") @@ -85,8 +85,8 @@ chain (1141 . "@src64/subr.l") char (3415 . "@src64/io.l") chop (1091 . "@src64/sym.l") circ (816 . "@src64/subr.l") -circ? (2398 . "@src64/subr.l") -clip (1795 . "@src64/subr.l") +circ? (2402 . "@src64/subr.l") +clip (1799 . "@src64/subr.l") close (4338 . "@src64/io.l") cmd (2869 . "@src64/main.l") cnt (1413 . "@src64/apply.l") @@ -110,7 +110,7 @@ default (1659 . "@src64/sym.l") del (1850 . "@src64/sym.l") delete (1401 . "@src64/subr.l") delq (1452 . "@src64/subr.l") -diff (2585 . "@src64/subr.l") +diff (2589 . "@src64/subr.l") dir (2800 . "@src64/main.l") dm (541 . "@src64/flow.l") do (2133 . "@src64/flow.l") @@ -129,14 +129,14 @@ extra (1259 . "@src64/flow.l") extract (1218 . "@src64/apply.l") fifo (1961 . "@src64/sym.l") file (2747 . "@src64/main.l") -fill (3236 . "@src64/subr.l") +fill (3240 . "@src64/subr.l") filter (1161 . "@src64/apply.l") -fin (2029 . "@src64/subr.l") +fin (2033 . "@src64/subr.l") finally (2516 . "@src64/flow.l") find (1322 . "@src64/apply.l") fish (1613 . "@src64/apply.l") -flg? (2441 . "@src64/subr.l") -flip (1695 . "@src64/subr.l") +flg? (2445 . "@src64/subr.l") +flip (1699 . "@src64/subr.l") flush (5074 . "@src64/io.l") fold (3341 . "@src64/sym.l") for (2222 . "@src64/flow.l") @@ -153,7 +153,7 @@ getd (740 . "@src64/sym.l") getl (3030 . "@src64/sym.l") glue (1232 . "@src64/sym.l") gt0 (2716 . "@src64/big.l") -head (1816 . "@src64/subr.l") +head (1820 . "@src64/subr.l") heap (531 . "@src64/main.l") hear (3196 . "@src64/io.l") host (184 . "@src64/net.l") @@ -164,7 +164,7 @@ if2 (1816 . "@src64/flow.l") ifn (1857 . "@src64/flow.l") in (4156 . "@src64/io.l") inc (2256 . "@src64/big.l") -index (2633 . "@src64/subr.l") +index (2637 . "@src64/subr.l") info (2704 . "@src64/main.l") intern (873 . "@src64/sym.l") ipid (3201 . "@src64/flow.l") @@ -173,9 +173,9 @@ job (1421 . "@src64/flow.l") journal (968 . "@src64/db.l") key (3344 . "@src64/io.l") kill (3233 . "@src64/flow.l") -last (2040 . "@src64/subr.l") +last (2044 . "@src64/subr.l") le0 (2691 . "@src64/big.l") -length (2737 . "@src64/subr.l") +length (2741 . "@src64/subr.l") let (1471 . "@src64/flow.l") let? (1532 . "@src64/flow.l") lieu (1154 . "@src64/db.l") @@ -191,7 +191,7 @@ lock (1182 . "@src64/db.l") loop (2165 . "@src64/flow.l") low? (3213 . "@src64/sym.l") lowc (3243 . "@src64/sym.l") -lst? (2411 . "@src64/subr.l") +lst? (2415 . "@src64/subr.l") lt0 (2680 . "@src64/big.l") lup (2224 . "@src64/sym.l") made (1107 . "@src64/subr.l") @@ -204,21 +204,21 @@ mapcon (1041 . "@src64/apply.l") maplist (933 . "@src64/apply.l") maps (790 . "@src64/apply.l") mark (1963 . "@src64/db.l") -match (3121 . "@src64/subr.l") -max (2323 . "@src64/subr.l") +match (3125 . "@src64/subr.l") +max (2327 . "@src64/subr.l") maxi (1511 . "@src64/apply.l") -member (2451 . "@src64/subr.l") -memq (2473 . "@src64/subr.l") +member (2455 . "@src64/subr.l") +memq (2477 . "@src64/subr.l") meta (3133 . "@src64/sym.l") meth (1084 . "@src64/flow.l") method (1048 . "@src64/flow.l") -min (2352 . "@src64/subr.l") +min (2356 . "@src64/subr.l") mini (1562 . "@src64/apply.l") mix (1260 . "@src64/subr.l") -mmeq (2501 . "@src64/subr.l") -n0 (2185 . "@src64/subr.l") -n== (2083 . "@src64/subr.l") -nT (2194 . "@src64/subr.l") +mmeq (2505 . "@src64/subr.l") +n0 (2189 . "@src64/subr.l") +n== (2087 . "@src64/subr.l") +nT (2198 . "@src64/subr.l") name (497 . "@src64/sym.l") nand (1651 . "@src64/flow.l") native (1387 . "@src64/main.l") @@ -230,9 +230,9 @@ nond (1934 . "@src64/flow.l") nor (1672 . "@src64/flow.l") not (1724 . "@src64/flow.l") nth (685 . "@src64/subr.l") -num? (2422 . "@src64/subr.l") +num? (2426 . "@src64/subr.l") off (1596 . "@src64/sym.l") -offset (2673 . "@src64/subr.l") +offset (2677 . "@src64/subr.l") on (1581 . "@src64/sym.l") onOff (1611 . "@src64/sym.l") one (1644 . "@src64/sym.l") @@ -242,7 +242,7 @@ opt (2990 . "@src64/main.l") or (1632 . "@src64/flow.l") out (4176 . "@src64/io.l") pack (1142 . "@src64/sym.l") -pair (2390 . "@src64/subr.l") +pair (2394 . "@src64/subr.l") pass (754 . "@src64/apply.l") pat? (718 . "@src64/sym.l") path (1237 . "@src64/io.l") @@ -260,13 +260,13 @@ prinl (5012 . "@src64/io.l") print (5038 . "@src64/io.l") println (5069 . "@src64/io.l") printsp (5054 . "@src64/io.l") -prior (2709 . "@src64/subr.l") +prior (2713 . "@src64/subr.l") prog (1752 . "@src64/flow.l") prog1 (1760 . "@src64/flow.l") prog2 (1777 . "@src64/flow.l") prop (2779 . "@src64/sym.l") protect (521 . "@src64/main.l") -prove (3523 . "@src64/subr.l") +prove (3527 . "@src64/subr.l") push (1686 . "@src64/sym.l") push1 (1722 . "@src64/sym.l") put (2696 . "@src64/sym.l") @@ -277,18 +277,18 @@ quit (1094 . "@src64/main.l") quote (139 . "@src64/flow.l") rand (2973 . "@src64/big.l") range (997 . "@src64/subr.l") -rank (3029 . "@src64/subr.l") +rank (3033 . "@src64/subr.l") raw (454 . "@src64/main.l") rd (5116 . "@src64/io.l") read (2624 . "@src64/io.l") replace (1499 . "@src64/subr.l") rest (2296 . "@src64/main.l") -reverse (1674 . "@src64/subr.l") +reverse (1678 . "@src64/subr.l") rewind (5082 . "@src64/io.l") rollback (1888 . "@src64/db.l") rot (848 . "@src64/subr.l") run (311 . "@src64/flow.l") -sect (2537 . "@src64/subr.l") +sect (2541 . "@src64/subr.l") seed (2958 . "@src64/big.l") seek (1275 . "@src64/apply.l") send (1128 . "@src64/flow.l") @@ -296,27 +296,27 @@ seq (1081 . "@src64/db.l") set (1480 . "@src64/sym.l") setq (1513 . "@src64/sym.l") sigio (492 . "@src64/main.l") -size (2802 . "@src64/subr.l") +size (2806 . "@src64/subr.l") skip (3469 . "@src64/io.l") -sort (3958 . "@src64/subr.l") +sort (3962 . "@src64/subr.l") sp? (709 . "@src64/sym.l") space (5016 . "@src64/io.l") -split (1588 . "@src64/subr.l") +split (1592 . "@src64/subr.l") stack (560 . "@src64/main.l") state (2001 . "@src64/flow.l") -stem (1985 . "@src64/subr.l") +stem (1989 . "@src64/subr.l") str (3987 . "@src64/io.l") str? (1011 . "@src64/sym.l") -strip (1572 . "@src64/subr.l") +strip (1576 . "@src64/subr.l") sub? (1442 . "@src64/sym.l") sum (1460 . "@src64/apply.l") super (1215 . "@src64/flow.l") sym (3973 . "@src64/io.l") -sym? (2430 . "@src64/subr.l") +sym? (2434 . "@src64/subr.l") sync (3156 . "@src64/io.l") sys (3053 . "@src64/flow.l") t (1743 . "@src64/flow.l") -tail (1907 . "@src64/subr.l") +tail (1911 . "@src64/subr.l") tell (3228 . "@src64/io.l") text (1270 . "@src64/sym.l") throw (2485 . "@src64/flow.l") @@ -324,11 +324,11 @@ tick (3169 . "@src64/flow.l") till (3578 . "@src64/io.l") time (2514 . "@src64/main.l") touch (1047 . "@src64/sym.l") -trim (1755 . "@src64/subr.l") +trim (1759 . "@src64/subr.l") try (1169 . "@src64/flow.l") type (909 . "@src64/flow.l") udp (268 . "@src64/net.l") -unify (3931 . "@src64/subr.l") +unify (3935 . "@src64/subr.l") unless (1893 . "@src64/flow.l") until (2077 . "@src64/flow.l") up (702 . "@src64/main.l") diff --git a/src64/subr.l b/src64/subr.l @@ -1,4 +1,4 @@ -# 03mar11abu +# 21apr11abu # (c) Software Lab. Alexander Burger # (car 'var) -> any @@ -1512,13 +1512,17 @@ ld X (X CDR) # 'anyN' args? atom X while z # Yes - ld E (X) # Eval next arg + ld E (X) # Eval next two args eval+ - push E # and save it + push E # Save first + ld X (X CDR) + ld E (X) # Eval second + eval+ + push E # Save second loop ld X L # X above 'any1' - lea C (S -I) # C on end of 'any' items link + ld C S # C below end of 'any' items call cons_Z # Build first result cell do sub X II # Try next 'any' pair