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 099e01a3d7daa1c949ed243c5448581259b3fb12
parent 4341994fd4dfee4abee60c10afde5656f0929084
Author: Alexander Burger <abu@software-lab.de>
Date:   Sat, 27 Oct 2012 12:00:04 +0200

Error frame handling in coroutines
Diffstat:
Mlib/map | 24++++++++++++------------
Msrc64/flow.l | 8+++++++-
Msrc64/tags | 38+++++++++++++++++++-------------------
3 files changed, 38 insertions(+), 32 deletions(-)

diff --git a/lib/map b/lib/map @@ -1,5 +1,5 @@ -! (2848 . "@src64/flow.l") -$ (2950 . "@src64/flow.l") +! (2854 . "@src64/flow.l") +$ (2956 . "@src64/flow.l") % (2572 . "@src64/big.l") & (2807 . "@src64/big.l") * (2389 . "@src64/big.l") @@ -46,7 +46,7 @@ bool (1713 . "@src64/flow.l") box (824 . "@src64/flow.l") box? (1122 . "@src64/sym.l") by (1669 . "@src64/apply.l") -bye (3427 . "@src64/flow.l") +bye (3433 . "@src64/flow.l") caaaar (271 . "@src64/subr.l") caaadr (288 . "@src64/subr.l") caaar (99 . "@src64/subr.l") @@ -61,7 +61,7 @@ caddar (409 . "@src64/subr.l") cadddr (435 . "@src64/subr.l") caddr (156 . "@src64/subr.l") cadr (45 . "@src64/subr.l") -call (3079 . "@src64/flow.l") +call (3085 . "@src64/flow.l") car (5 . "@src64/subr.l") case (1954 . "@src64/flow.l") catch (2456 . "@src64/flow.l") @@ -114,7 +114,7 @@ diff (2589 . "@src64/subr.l") dir (2903 . "@src64/main.l") dm (545 . "@src64/flow.l") do (2130 . "@src64/flow.l") -e (2911 . "@src64/flow.l") +e (2917 . "@src64/flow.l") echo (4409 . "@src64/io.l") env (599 . "@src64/main.l") eof (3524 . "@src64/io.l") @@ -140,7 +140,7 @@ flip (1699 . "@src64/subr.l") flush (5118 . "@src64/io.l") fold (3512 . "@src64/sym.l") for (2219 . "@src64/flow.l") -fork (3253 . "@src64/flow.l") +fork (3259 . "@src64/flow.l") format (2089 . "@src64/big.l") free (2055 . "@src64/db.l") from (3543 . "@src64/io.l") @@ -168,12 +168,12 @@ inc (2256 . "@src64/big.l") index (2637 . "@src64/subr.l") info (2805 . "@src64/main.l") intern (998 . "@src64/sym.l") -ipid (3198 . "@src64/flow.l") +ipid (3204 . "@src64/flow.l") isa (961 . "@src64/flow.l") job (1418 . "@src64/flow.l") journal (971 . "@src64/db.l") key (3376 . "@src64/io.l") -kill (3230 . "@src64/flow.l") +kill (3236 . "@src64/flow.l") last (2044 . "@src64/subr.l") le0 (2693 . "@src64/big.l") length (2741 . "@src64/subr.l") @@ -238,7 +238,7 @@ on (1708 . "@src64/sym.l") onOff (1738 . "@src64/sym.l") one (1771 . "@src64/sym.l") open (4335 . "@src64/io.l") -opid (3214 . "@src64/flow.l") +opid (3220 . "@src64/flow.l") opt (3094 . "@src64/main.l") or (1629 . "@src64/flow.l") out (4211 . "@src64/io.l") @@ -317,13 +317,13 @@ sym (4005 . "@src64/io.l") sym? (2434 . "@src64/subr.l") symbols (942 . "@src64/sym.l") sync (3188 . "@src64/io.l") -sys (3050 . "@src64/flow.l") +sys (3056 . "@src64/flow.l") t (1740 . "@src64/flow.l") tail (1911 . "@src64/subr.l") tell (3260 . "@src64/io.l") text (1398 . "@src64/sym.l") throw (2482 . "@src64/flow.l") -tick (3166 . "@src64/flow.l") +tick (3172 . "@src64/flow.l") till (3610 . "@src64/io.l") time (2615 . "@src64/main.l") touch (1172 . "@src64/sym.l") @@ -350,7 +350,7 @@ wr (5243 . "@src64/io.l") xchg (1663 . "@src64/sym.l") xor (1690 . "@src64/flow.l") x| (2887 . "@src64/big.l") -yield (2706 . "@src64/flow.l") +yield (2709 . "@src64/flow.l") yoke (1196 . "@src64/subr.l") zap (1186 . "@src64/sym.l") zero (1756 . "@src64/sym.l") diff --git a/src64/flow.l b/src64/flow.l @@ -1,4 +1,4 @@ -# 02oct12abu +# 27oct12abu # (c) Software Lab. Alexander Burger (code 'redefMsgEC) @@ -2594,6 +2594,9 @@ ld X EnvOutFrames # Pointer to output frames ld C (Z (pack III "+(EnvOutFrames-EnvCo)")) # Local output frames call joinLocalCX # Join locals + ld X EnvErrFrames # Pointer to error frames + ld C (Z (pack III "+(EnvErrFrames-EnvCo)")) # Local error frames + call joinLocalCX # Join locals ld X EnvCtlFrames # Pointer to control frames ld C (Z (pack III "+(EnvCtlFrames-EnvCo)")) # Local control frames call joinLocalCX # Join locals @@ -2771,6 +2774,9 @@ ld X EnvCtlFrames # Pointer to control frames ld C (Z (pack III "+(EnvCtlFrames-EnvCo)")) # Local control frames call cutLocalCX # Cut off locals + ld X EnvErrFrames # Pointer to error frames + ld C (Z (pack III "+(EnvErrFrames-EnvCo)")) # Local error frames + call cutLocalCX # Cut off locals ld X EnvOutFrames # Pointer to output frames ld C (Z (pack III "+(EnvOutFrames-EnvCo)")) # Local output frames call cutLocalCX # Cut off locals diff --git a/src64/tags b/src64/tags @@ -438,10 +438,10 @@ boxNum_C gc.l 836 boxNum_E gc.l 848 boxNum_X gc.l 860 brkErrX err.l 500 -brkLoadE_E flow.l 2856 +brkLoadE_E flow.l 2862 bufAoAC_C db.l 956 bufStringE_SZ io.l 1143 -byeE flow.l 3439 +byeE flow.l 3445 byteNumBCX_CX io.l 464 byteSymBCX_CX io.l 1292 caseDataA_AC sym.l 3366 @@ -531,7 +531,7 @@ cons_Z gc.l 518 ctOpenEXY io.l 1671 currFdX_C io.l 1334 currFd_C io.l 1338 -cutLocalCX flow.l 2824 +cutLocalCX flow.l 2830 dateXYZ_E main.l 2421 dbAEX db.l 1331 dbFetchEX db.l 1319 @@ -579,9 +579,9 @@ doBitXor big.l 2887 doBool flow.l 1713 doBox flow.l 824 doBoxQ sym.l 1122 -doBreak flow.l 2848 +doBreak flow.l 2854 doBy apply.l 1669 -doBye flow.l 3427 +doBye flow.l 3433 doCaaaar subr.l 271 doCaaadr subr.l 288 doCaaar subr.l 99 @@ -596,7 +596,7 @@ doCaddar subr.l 409 doCadddr subr.l 435 doCaddr subr.l 156 doCadr subr.l 45 -doCall flow.l 3079 +doCall flow.l 3085 doCar subr.l 5 doCase flow.l 1954 doCatch flow.l 2456 @@ -651,7 +651,7 @@ doDir main.l 2903 doDiv big.l 2513 doDm flow.l 545 doDo flow.l 2130 -doE flow.l 2911 +doE flow.l 2917 doEcho io.l 4409 doEnv main.l 599 doEof io.l 3524 @@ -681,7 +681,7 @@ doFlip subr.l 1699 doFlush io.l 5118 doFold sym.l 3512 doFor flow.l 2219 -doFork flow.l 3253 +doFork flow.l 3259 doFormat big.l 2089 doFree db.l 2055 doFrom io.l 3543 @@ -712,12 +712,12 @@ doInc big.l 2256 doIndex subr.l 2637 doInfo main.l 2805 doIntern sym.l 998 -doIpid flow.l 3198 +doIpid flow.l 3204 doIsa flow.l 961 doJob flow.l 1418 doJournal db.l 971 doKey io.l 3376 -doKill flow.l 3230 +doKill flow.l 3236 doLast subr.l 2044 doLe subr.l 2237 doLe0 big.l 2693 @@ -787,7 +787,7 @@ doOn sym.l 1708 doOnOff sym.l 1738 doOne sym.l 1771 doOpen io.l 4335 -doOpid flow.l 3214 +doOpid flow.l 3220 doOpt main.l 3094 doOr flow.l 1629 doOut io.l 4211 @@ -872,17 +872,17 @@ doSym io.l 4005 doSymQ subr.l 2434 doSymbols sym.l 942 doSync io.l 3188 -doSys flow.l 3050 +doSys flow.l 3056 doT flow.l 1740 doTail subr.l 1911 doTell io.l 3260 doText sym.l 1398 doThrow flow.l 2482 -doTick flow.l 3166 +doTick flow.l 3172 doTill io.l 3610 doTime main.l 2615 doTouch sym.l 1172 -doTrace flow.l 2950 +doTrace flow.l 2956 doTrim subr.l 1759 doTry flow.l 1168 doType flow.l 914 @@ -905,7 +905,7 @@ doWith flow.l 1321 doWr io.l 5243 doXchg sym.l 1663 doXor flow.l 1690 -doYield flow.l 2706 +doYield flow.l 2709 doYoke subr.l 1196 doZap sym.l 1186 doZero sym.l 1756 @@ -941,7 +941,7 @@ fileObjE_AC db.l 237 fileObjX_AC db.l 211 fillE_FE subr.l 3261 findSymX_E sym.l 257 -finishE flow.l 3451 +finishE flow.l 3457 firstByteA_B sym.l 673 firstCharE_A sym.l 688 fishAXY apply.l 1640 @@ -952,7 +952,7 @@ fmtNumAE_E big.l 1797 fmtScaleCX_CX big.l 2061 fmtWordACX_CX big.l 2046 forkErrX err.l 521 -forkLispX_FE flow.l 3266 +forkLispX_FE flow.l 3272 fsyncDB db.l 932 funqE_FE main.l 2153 gc gc.l 65 @@ -995,7 +995,7 @@ isLifeE_F db.l 525 isaCE_F flow.l 1012 jnlErrX err.l 624 jnlFileno_A db.l 344 -joinLocalCX flow.l 2837 +joinLocalCX flow.l 2843 lisp main.l 2083 loadAllX_E main.l 162 loadBEX_E io.l 4072 @@ -1178,7 +1178,7 @@ tmDateC_E main.l 2411 tmTimeY_E main.l 2598 tokenCE_E io.l 2522 trSyncErrX err.l 608 -traceCY flow.l 3022 +traceCY flow.l 3028 trimE_E subr.l 1769 truncErrX err.l 598 truncLog db.l 947