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 ed03efde96a4cc693ae3b8ecce1c56c36f7099dc
parent 968a44c022214fe228c5ba101f5de56894ac28ed
Author: Commit-Bot <unknown>
Date:   Sun, 13 Jun 2010 15:52:17 +0000

Automatic commit from picoLisp.tgz, From: Sun, 13 Jun 2010 15:52:17 GMT
Diffstat:
Mdoc64/asm | 6+++---
Mlib/tags | 2+-
Msrc64/gc.l | 38+++++++++++++++++++++-----------------
3 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/doc64/asm b/doc64/asm @@ -1,4 +1,4 @@ -# 02jun10abu +# 13jun10abu # (c) Software Lab. Alexander Burger @@ -103,8 +103,8 @@ sub dst src # Subtract 'src' from 'dst' subc dst src # Subtract 'src' from 'dst' with Carry - inc dst # Increment byte 'dst' [z..] - dec dst # Increment byte 'dst' [z..] + inc dst # Increment 'dst' [z..] + dec dst # Increment 'dst' [z..] not dst # One's complement negation of 'dst' neg dst # Two's complement negation of 'dst' diff --git a/lib/tags b/lib/tags @@ -144,7 +144,7 @@ free (2034 . "@src64/db.l") from (3342 . "@src64/io.l") full (1066 . "@src64/subr.l") fun? (734 . "@src64/sym.l") -gc (442 . "@src64/gc.l") +gc (446 . "@src64/gc.l") ge0 (2374 . "@src64/big.l") get (2750 . "@src64/sym.l") getd (742 . "@src64/sym.l") diff --git a/src64/gc.l b/src64/gc.l @@ -1,4 +1,4 @@ -# 09jun10abu +# 13jun10abu # (c) Software Lab. Alexander Burger # Mark data @@ -150,25 +150,29 @@ shr C 1 # In use? if c # Yes null (Y -II) # Active? - continue z # Yes - push Y - push C - ld Y ((Y -II)) # Else get saved L - do - null Y # End of stack? - while ne # No - ld Z (Y) # Keep end of frame in Z + if z # Yes + ld E (Y -I) # Mark 'tag' + call markE + else + push Y + push C + ld Y ((Y -II)) # Else get saved L do - add Y I # End of frame? - cmp Y Z + null Y # End of stack? while ne # No - ld E (Y) # Next item - call markE # Mark it + ld Z (Y) # Keep end of frame in Z + do + add Y I # End of frame? + cmp Y Z + while ne # No + ld E (Y) # Next item + call markE # Mark it + loop + ld Y (Y) # Next frame loop - ld Y (Y) # Next frame - loop - pop C - pop Y + pop C + pop Y + end continue T end until z