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 4d29882843181540b46c5d89c9fc70869fe79343
parent e9e7939ac56e338a6abf53f21d00c79acdfd4849
Author: Commit-Bot <unknown>
Date:   Fri, 11 Jun 2010 10:35:58 +0000

Automatic commit from picoLisp.tgz, From: Fri, 11 Jun 2010 10:35:58 GMT
Diffstat:
Mlib/tags | 22+++++++++++-----------
Msrc64/flow.l | 27+++++++++++++++------------
2 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/lib/tags b/lib/tags @@ -1,5 +1,5 @@ -! (2858 . "@src64/flow.l") -$ (2960 . "@src64/flow.l") +! (2861 . "@src64/flow.l") +$ (2963 . "@src64/flow.l") % (2253 . "@src64/big.l") & (2474 . "@src64/big.l") * (2072 . "@src64/big.l") @@ -46,7 +46,7 @@ bool (1743 . "@src64/flow.l") box (841 . "@src64/flow.l") box? (999 . "@src64/sym.l") by (1553 . "@src64/apply.l") -bye (3435 . "@src64/flow.l") +bye (3438 . "@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 (3091 . "@src64/flow.l") +call (3094 . "@src64/flow.l") car (5 . "@src64/subr.l") case (1984 . "@src64/flow.l") catch (2484 . "@src64/flow.l") @@ -113,7 +113,7 @@ diff (2563 . "@src64/subr.l") dir (2507 . "@src64/main.l") dm (561 . "@src64/flow.l") do (2158 . "@src64/flow.l") -e (2921 . "@src64/flow.l") +e (2924 . "@src64/flow.l") echo (4183 . "@src64/io.l") env (605 . "@src64/main.l") eof (3323 . "@src64/io.l") @@ -138,7 +138,7 @@ flip (1686 . "@src64/subr.l") flush (4849 . "@src64/io.l") fold (3345 . "@src64/sym.l") for (2247 . "@src64/flow.l") -fork (3258 . "@src64/flow.l") +fork (3261 . "@src64/flow.l") format (1772 . "@src64/big.l") free (2034 . "@src64/db.l") from (3342 . "@src64/io.l") @@ -165,12 +165,12 @@ inc (1939 . "@src64/big.l") index (2611 . "@src64/subr.l") info (2411 . "@src64/main.l") intern (875 . "@src64/sym.l") -ipid (3203 . "@src64/flow.l") +ipid (3206 . "@src64/flow.l") isa (978 . "@src64/flow.l") job (1448 . "@src64/flow.l") journal (977 . "@src64/db.l") key (3173 . "@src64/io.l") -kill (3235 . "@src64/flow.l") +kill (3238 . "@src64/flow.l") last (2031 . "@src64/subr.l") length (2687 . "@src64/subr.l") let (1498 . "@src64/flow.l") @@ -233,7 +233,7 @@ on (1583 . "@src64/sym.l") onOff (1613 . "@src64/sym.l") one (1646 . "@src64/sym.l") open (4114 . "@src64/io.l") -opid (3219 . "@src64/flow.l") +opid (3222 . "@src64/flow.l") opt (2697 . "@src64/main.l") or (1659 . "@src64/flow.l") out (4008 . "@src64/io.l") @@ -311,13 +311,13 @@ super (1237 . "@src64/flow.l") sym (3804 . "@src64/io.l") sym? (2408 . "@src64/subr.l") sync (3026 . "@src64/io.l") -sys (3062 . "@src64/flow.l") +sys (3065 . "@src64/flow.l") t (1770 . "@src64/flow.l") tail (1898 . "@src64/subr.l") tell (3096 . "@src64/io.l") text (1272 . "@src64/sym.l") throw (2510 . "@src64/flow.l") -tick (3171 . "@src64/flow.l") +tick (3174 . "@src64/flow.l") till (3409 . "@src64/io.l") time (2221 . "@src64/main.l") touch (1049 . "@src64/sym.l") diff --git a/src64/flow.l b/src64/flow.l @@ -2818,21 +2818,24 @@ end ld (EnvBind) C # Store back link in coroutine's env pop Y # Restore taget coroutine - ld X (Z II) # Get segment + ld X (Z II) # Get 'seg' ld (X -II) S # Save stack pointer save (EnvCo) (EnvMid) (X (pack -II "-(EnvMid-EnvCo)")) # Save environment null Y # Target coroutine? - jnz resumeCoroutine # Yes - ld S Z # Set stack pointer - load (EnvCo) (EnvMid) (Z III) # Restore environment - pop (EnvCo7) # Restore coroutine link - pop (StkLimit) # 'lim' - add S (pack I "+(EnvMid-EnvCo)") # Clean up - pop L - pop Z - pop Y - pop X - ret + if z # No + ld S Z # Set stack pointer + load (EnvCo) (EnvMid) (Z III) # Restore environment + pop (EnvCo7) # Restore coroutine link + pop (StkLimit) # 'lim' + add S (pack I "+(EnvMid-EnvCo)") # Clean up + pop L + pop Z + pop Y + pop X + ret + end + ld (Z II) Y # Set new 'seg' + jmp resumeCoroutine # Resume (code 'cutLocalCX 0) do