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 0b4b6aaebdd24fabf293534e3b2c62703f39c3ec
parent 6029b7106dc88b9d9b8e0745b95d8fdb241de451
Author: Alexander Burger <abu@software-lab.de>
Date:   Wed, 24 Aug 2011 14:59:37 +0200

Bad pil64 'exec' error handling
Diffstat:
Mlib/tags | 140++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc64/io.l | 8+++++---
Msrc64/main.l | 5++---
3 files changed, 77 insertions(+), 76 deletions(-)

diff --git a/lib/tags b/lib/tags @@ -25,16 +25,16 @@ $ (2953 . "@src64/flow.l") >> (2625 . "@src64/big.l") abs (2729 . "@src64/big.l") accept (139 . "@src64/net.l") -adr (595 . "@src64/main.l") -alarm (472 . "@src64/main.l") +adr (594 . "@src64/main.l") +alarm (471 . "@src64/main.l") all (780 . "@src64/sym.l") and (1616 . "@src64/flow.l") -any (3940 . "@src64/io.l") +any (3942 . "@src64/io.l") append (1338 . "@src64/subr.l") apply (713 . "@src64/apply.l") -arg (2311 . "@src64/main.l") -args (2287 . "@src64/main.l") -argv (2931 . "@src64/main.l") +arg (2310 . "@src64/main.l") +args (2286 . "@src64/main.l") +argv (2930 . "@src64/main.l") as (144 . "@src64/flow.l") asoq (3005 . "@src64/subr.l") assoc (2970 . "@src64/subr.l") @@ -65,7 +65,7 @@ call (3082 . "@src64/flow.l") car (5 . "@src64/subr.l") case (1957 . "@src64/flow.l") catch (2459 . "@src64/flow.l") -cd (2686 . "@src64/main.l") +cd (2685 . "@src64/main.l") cdaaar (464 . "@src64/subr.l") cdaadr (487 . "@src64/subr.l") cdaar (179 . "@src64/subr.l") @@ -82,13 +82,13 @@ cdddr (245 . "@src64/subr.l") cddr (79 . "@src64/subr.l") cdr (17 . "@src64/subr.l") chain (1141 . "@src64/subr.l") -char (3422 . "@src64/io.l") +char (3424 . "@src64/io.l") chop (1101 . "@src64/sym.l") circ (816 . "@src64/subr.l") circ? (2402 . "@src64/subr.l") clip (1799 . "@src64/subr.l") -close (4345 . "@src64/io.l") -cmd (2913 . "@src64/main.l") +close (4347 . "@src64/io.l") +cmd (2912 . "@src64/main.l") cnt (1413 . "@src64/apply.l") co (2540 . "@src64/flow.l") commit (1495 . "@src64/db.l") @@ -98,10 +98,10 @@ cond (1911 . "@src64/flow.l") connect (201 . "@src64/net.l") cons (747 . "@src64/subr.l") copy (1225 . "@src64/subr.l") -ctl (4223 . "@src64/io.l") -ctty (2711 . "@src64/main.l") +ctl (4225 . "@src64/io.l") +ctty (2710 . "@src64/main.l") cut (1805 . "@src64/sym.l") -date (2425 . "@src64/main.l") +date (2424 . "@src64/main.l") dbck (2104 . "@src64/db.l") de (529 . "@src64/flow.l") dec (2323 . "@src64/big.l") @@ -111,24 +111,24 @@ del (1860 . "@src64/sym.l") delete (1401 . "@src64/subr.l") delq (1452 . "@src64/subr.l") diff (2589 . "@src64/subr.l") -dir (2844 . "@src64/main.l") +dir (2843 . "@src64/main.l") dm (541 . "@src64/flow.l") do (2133 . "@src64/flow.l") e (2914 . "@src64/flow.l") -echo (4376 . "@src64/io.l") -env (607 . "@src64/main.l") -eof (3499 . "@src64/io.l") -eol (3490 . "@src64/io.l") -err (4203 . "@src64/io.l") -errno (1375 . "@src64/main.l") +echo (4378 . "@src64/io.l") +env (606 . "@src64/main.l") +eof (3501 . "@src64/io.l") +eol (3492 . "@src64/io.l") +err (4205 . "@src64/io.l") +errno (1374 . "@src64/main.l") eval (180 . "@src64/flow.l") -ext (5104 . "@src64/io.l") +ext (5106 . "@src64/io.l") ext? (1042 . "@src64/sym.l") extern (908 . "@src64/sym.l") extra (1259 . "@src64/flow.l") extract (1218 . "@src64/apply.l") fifo (1971 . "@src64/sym.l") -file (2791 . "@src64/main.l") +file (2790 . "@src64/main.l") fill (3240 . "@src64/subr.l") filter (1161 . "@src64/apply.l") fin (2033 . "@src64/subr.l") @@ -137,13 +137,13 @@ find (1322 . "@src64/apply.l") fish (1613 . "@src64/apply.l") flg? (2445 . "@src64/subr.l") flip (1699 . "@src64/subr.l") -flush (5079 . "@src64/io.l") +flush (5081 . "@src64/io.l") fold (3381 . "@src64/sym.l") for (2222 . "@src64/flow.l") fork (3256 . "@src64/flow.l") format (2089 . "@src64/big.l") free (2046 . "@src64/db.l") -from (3518 . "@src64/io.l") +from (3520 . "@src64/io.l") full (1075 . "@src64/subr.l") fun? (742 . "@src64/sym.l") gc (432 . "@src64/gc.l") @@ -155,24 +155,24 @@ glue (1242 . "@src64/sym.l") gt0 (2716 . "@src64/big.l") hash (2974 . "@src64/big.l") head (1820 . "@src64/subr.l") -heap (527 . "@src64/main.l") -hear (3203 . "@src64/io.l") +heap (526 . "@src64/main.l") +hear (3205 . "@src64/io.l") host (184 . "@src64/net.l") id (1025 . "@src64/db.l") idx (2045 . "@src64/sym.l") if (1797 . "@src64/flow.l") if2 (1816 . "@src64/flow.l") ifn (1857 . "@src64/flow.l") -in (4163 . "@src64/io.l") +in (4165 . "@src64/io.l") inc (2256 . "@src64/big.l") index (2637 . "@src64/subr.l") -info (2748 . "@src64/main.l") +info (2747 . "@src64/main.l") intern (883 . "@src64/sym.l") ipid (3201 . "@src64/flow.l") isa (956 . "@src64/flow.l") job (1421 . "@src64/flow.l") journal (968 . "@src64/db.l") -key (3351 . "@src64/io.l") +key (3353 . "@src64/io.l") kill (3233 . "@src64/flow.l") last (2044 . "@src64/subr.l") le0 (2691 . "@src64/big.l") @@ -180,14 +180,14 @@ length (2741 . "@src64/subr.l") let (1471 . "@src64/flow.l") let? (1532 . "@src64/flow.l") lieu (1154 . "@src64/db.l") -line (3674 . "@src64/io.l") -lines (3827 . "@src64/io.l") +line (3676 . "@src64/io.l") +lines (3829 . "@src64/io.l") link (1172 . "@src64/subr.l") -lisp (1983 . "@src64/main.l") +lisp (1982 . "@src64/main.l") list (887 . "@src64/subr.l") listen (151 . "@src64/net.l") lit (155 . "@src64/flow.l") -load (4140 . "@src64/io.l") +load (4142 . "@src64/io.l") lock (1182 . "@src64/db.l") loop (2165 . "@src64/flow.l") low? (3253 . "@src64/sym.l") @@ -222,10 +222,10 @@ n== (2087 . "@src64/subr.l") nT (2198 . "@src64/subr.l") name (502 . "@src64/sym.l") nand (1651 . "@src64/flow.l") -native (1383 . "@src64/main.l") +native (1382 . "@src64/main.l") need (919 . "@src64/subr.l") new (830 . "@src64/flow.l") -next (2294 . "@src64/main.l") +next (2293 . "@src64/main.l") nil (1734 . "@src64/flow.l") nond (1934 . "@src64/flow.l") nor (1672 . "@src64/flow.l") @@ -237,55 +237,55 @@ offset (2677 . "@src64/subr.l") on (1591 . "@src64/sym.l") onOff (1621 . "@src64/sym.l") one (1654 . "@src64/sym.l") -open (4307 . "@src64/io.l") +open (4309 . "@src64/io.l") opid (3217 . "@src64/flow.l") -opt (3034 . "@src64/main.l") +opt (3033 . "@src64/main.l") or (1632 . "@src64/flow.l") -out (4183 . "@src64/io.l") +out (4185 . "@src64/io.l") pack (1152 . "@src64/sym.l") pair (2394 . "@src64/subr.l") pass (754 . "@src64/apply.l") pat? (728 . "@src64/sym.l") path (1244 . "@src64/io.l") -peek (3406 . "@src64/io.l") +peek (3408 . "@src64/io.l") pick (1369 . "@src64/apply.l") -pipe (4244 . "@src64/io.l") -poll (3295 . "@src64/io.l") +pipe (4246 . "@src64/io.l") +poll (3297 . "@src64/io.l") pool (648 . "@src64/db.l") pop (1781 . "@src64/sym.l") port (5 . "@src64/net.l") -pr (5187 . "@src64/io.l") +pr (5189 . "@src64/io.l") pre? (1419 . "@src64/sym.l") -prin (5003 . "@src64/io.l") -prinl (5017 . "@src64/io.l") -print (5043 . "@src64/io.l") -println (5074 . "@src64/io.l") -printsp (5059 . "@src64/io.l") +prin (5005 . "@src64/io.l") +prinl (5019 . "@src64/io.l") +print (5045 . "@src64/io.l") +println (5076 . "@src64/io.l") +printsp (5061 . "@src64/io.l") prior (2713 . "@src64/subr.l") prog (1752 . "@src64/flow.l") prog1 (1760 . "@src64/flow.l") prog2 (1777 . "@src64/flow.l") prop (2807 . "@src64/sym.l") -protect (517 . "@src64/main.l") +protect (516 . "@src64/main.l") prove (3527 . "@src64/subr.l") push (1696 . "@src64/sym.l") push1 (1732 . "@src64/sym.l") put (2724 . "@src64/sym.l") putl (2988 . "@src64/sym.l") -pwd (2675 . "@src64/main.l") +pwd (2674 . "@src64/main.l") queue (1928 . "@src64/sym.l") -quit (1090 . "@src64/main.l") +quit (1089 . "@src64/main.l") quote (139 . "@src64/flow.l") rand (3001 . "@src64/big.l") range (997 . "@src64/subr.l") rank (3033 . "@src64/subr.l") -raw (450 . "@src64/main.l") -rd (5121 . "@src64/io.l") -read (2631 . "@src64/io.l") +raw (449 . "@src64/main.l") +rd (5123 . "@src64/io.l") +read (2633 . "@src64/io.l") replace (1499 . "@src64/subr.l") -rest (2340 . "@src64/main.l") +rest (2339 . "@src64/main.l") reverse (1678 . "@src64/subr.l") -rewind (5087 . "@src64/io.l") +rewind (5089 . "@src64/io.l") rollback (1889 . "@src64/db.l") rot (848 . "@src64/subr.l") run (311 . "@src64/flow.l") @@ -296,34 +296,34 @@ send (1128 . "@src64/flow.l") seq (1081 . "@src64/db.l") set (1490 . "@src64/sym.l") setq (1523 . "@src64/sym.l") -sigio (488 . "@src64/main.l") +sigio (487 . "@src64/main.l") size (2806 . "@src64/subr.l") -skip (3476 . "@src64/io.l") +skip (3478 . "@src64/io.l") sort (3962 . "@src64/subr.l") sp? (719 . "@src64/sym.l") -space (5021 . "@src64/io.l") +space (5023 . "@src64/io.l") split (1592 . "@src64/subr.l") -stack (556 . "@src64/main.l") +stack (555 . "@src64/main.l") state (2001 . "@src64/flow.l") stem (1989 . "@src64/subr.l") -str (3994 . "@src64/io.l") +str (3996 . "@src64/io.l") str? (1021 . "@src64/sym.l") strip (1576 . "@src64/subr.l") sub? (1452 . "@src64/sym.l") sum (1460 . "@src64/apply.l") super (1215 . "@src64/flow.l") -sym (3980 . "@src64/io.l") +sym (3982 . "@src64/io.l") sym? (2434 . "@src64/subr.l") -sync (3163 . "@src64/io.l") +sync (3165 . "@src64/io.l") sys (3053 . "@src64/flow.l") t (1743 . "@src64/flow.l") tail (1911 . "@src64/subr.l") -tell (3235 . "@src64/io.l") +tell (3237 . "@src64/io.l") text (1280 . "@src64/sym.l") throw (2485 . "@src64/flow.l") tick (3169 . "@src64/flow.l") -till (3585 . "@src64/io.l") -time (2558 . "@src64/main.l") +till (3587 . "@src64/io.l") +time (2557 . "@src64/main.l") touch (1057 . "@src64/sym.l") trim (1759 . "@src64/subr.l") try (1169 . "@src64/flow.l") @@ -332,19 +332,19 @@ udp (268 . "@src64/net.l") unify (3935 . "@src64/subr.l") unless (1893 . "@src64/flow.l") until (2077 . "@src64/flow.l") -up (698 . "@src64/main.l") +up (697 . "@src64/main.l") upp? (3268 . "@src64/sym.l") uppc (3332 . "@src64/sym.l") use (1565 . "@src64/flow.l") -usec (2663 . "@src64/main.l") +usec (2662 . "@src64/main.l") val (1471 . "@src64/sym.l") -version (3048 . "@src64/main.l") -wait (3125 . "@src64/io.l") +version (3047 . "@src64/main.l") +wait (3127 . "@src64/io.l") when (1876 . "@src64/flow.l") while (2053 . "@src64/flow.l") wipe (3128 . "@src64/sym.l") with (1322 . "@src64/flow.l") -wr (5204 . "@src64/io.l") +wr (5206 . "@src64/io.l") xchg (1546 . "@src64/sym.l") xor (1693 . "@src64/flow.l") x| (2885 . "@src64/big.l") diff --git a/src64/io.l b/src64/io.l @@ -1,4 +1,4 @@ -# 18aug11abu +# 24aug11abu # (c) Software Lab. Alexander Burger # Close file descriptor @@ -1469,7 +1469,8 @@ ld4 (S 4) # Close write pipe call closeAX end - cc execvp((S 8) &(S 8)) # Execute program + add S I # Drop 'pipe' structure + cc execvp((S) S) # Execute program jmp execErrS # Error if failed end cc setpgid(A 0) # Set process group @@ -1601,7 +1602,8 @@ ld4 (S) # Close read pipe call closeAX end - cc execvp((S 8) &(S 8)) # Execute program + add S I # Drop 'pipe' structure + cc execvp((S) S) # Execute program jmp execErrS # Error if failed end cc setpgid(A 0) # Set process group diff --git a/src64/main.l b/src64/main.l @@ -1,4 +1,4 @@ -# 20jun11abu +# 24aug11abu # (c) Software Lab. Alexander Burger (code 'Code) @@ -186,8 +186,7 @@ (code 'execErrS) cc fprintf((stderr) ExecErr (S)) - ld E 127 - jmp finishE + cc exit(127) # Install interrupting signal (code 'iSignalCE)