commit 662edcf44c7f123e33e220e9ee4fa87fc926d28b
parent 04fced5627613e3b95297f0d5eee6fb069c93671
Author: Commit-Bot <unknown>
Date: Thu, 5 Aug 2010 11:00:52 +0000
Automatic commit from picoLisp.tgz, From: Thu, 05 Aug 2010 11:00:52 GMT
Diffstat:
M | lib/tags | | | 34 | +++++++++++++++++----------------- |
M | src64/main.l | | | 43 | ++++++++++++++++++++++--------------------- |
2 files changed, 39 insertions(+), 38 deletions(-)
diff --git a/lib/tags b/lib/tags
@@ -32,9 +32,9 @@ and (1643 . "@src64/flow.l")
any (3792 . "@src64/io.l")
append (1329 . "@src64/subr.l")
apply (597 . "@src64/apply.l")
-arg (2241 . "@src64/main.l")
-args (2217 . "@src64/main.l")
-argv (2862 . "@src64/main.l")
+arg (2242 . "@src64/main.l")
+args (2218 . "@src64/main.l")
+argv (2863 . "@src64/main.l")
as (146 . "@src64/flow.l")
asoq (2942 . "@src64/subr.l")
assoc (2907 . "@src64/subr.l")
@@ -65,7 +65,7 @@ call (3102 . "@src64/flow.l")
car (5 . "@src64/subr.l")
case (1984 . "@src64/flow.l")
catch (2484 . "@src64/flow.l")
-cd (2617 . "@src64/main.l")
+cd (2618 . "@src64/main.l")
cdaaar (464 . "@src64/subr.l")
cdaadr (487 . "@src64/subr.l")
cdaar (179 . "@src64/subr.l")
@@ -87,7 +87,7 @@ chop (1093 . "@src64/sym.l")
circ (816 . "@src64/subr.l")
clip (1786 . "@src64/subr.l")
close (4180 . "@src64/io.l")
-cmd (2844 . "@src64/main.l")
+cmd (2845 . "@src64/main.l")
cnt (1297 . "@src64/apply.l")
co (2566 . "@src64/flow.l")
commit (1503 . "@src64/db.l")
@@ -98,9 +98,9 @@ connect (201 . "@src64/net.l")
cons (747 . "@src64/subr.l")
copy (1216 . "@src64/subr.l")
ctl (4120 . "@src64/io.l")
-ctty (2642 . "@src64/main.l")
+ctty (2643 . "@src64/main.l")
cut (1797 . "@src64/sym.l")
-date (2356 . "@src64/main.l")
+date (2357 . "@src64/main.l")
dbck (2092 . "@src64/db.l")
de (549 . "@src64/flow.l")
dec (2323 . "@src64/big.l")
@@ -110,7 +110,7 @@ del (1852 . "@src64/sym.l")
delete (1392 . "@src64/subr.l")
delq (1443 . "@src64/subr.l")
diff (2563 . "@src64/subr.l")
-dir (2775 . "@src64/main.l")
+dir (2776 . "@src64/main.l")
dm (561 . "@src64/flow.l")
do (2158 . "@src64/flow.l")
e (2932 . "@src64/flow.l")
@@ -126,7 +126,7 @@ extern (900 . "@src64/sym.l")
extra (1284 . "@src64/flow.l")
extract (1102 . "@src64/apply.l")
fifo (1963 . "@src64/sym.l")
-file (2722 . "@src64/main.l")
+file (2723 . "@src64/main.l")
fill (3177 . "@src64/subr.l")
filter (1045 . "@src64/apply.l")
fin (2020 . "@src64/subr.l")
@@ -163,7 +163,7 @@ ifn (1884 . "@src64/flow.l")
in (4016 . "@src64/io.l")
inc (2256 . "@src64/big.l")
index (2611 . "@src64/subr.l")
-info (2679 . "@src64/main.l")
+info (2680 . "@src64/main.l")
intern (875 . "@src64/sym.l")
ipid (3214 . "@src64/flow.l")
isa (978 . "@src64/flow.l")
@@ -221,7 +221,7 @@ nand (1678 . "@src64/flow.l")
native (1366 . "@src64/main.l")
need (918 . "@src64/subr.l")
new (852 . "@src64/flow.l")
-next (2224 . "@src64/main.l")
+next (2225 . "@src64/main.l")
nil (1761 . "@src64/flow.l")
nond (1961 . "@src64/flow.l")
nor (1699 . "@src64/flow.l")
@@ -235,7 +235,7 @@ onOff (1613 . "@src64/sym.l")
one (1646 . "@src64/sym.l")
open (4142 . "@src64/io.l")
opid (3230 . "@src64/flow.l")
-opt (2965 . "@src64/main.l")
+opt (2966 . "@src64/main.l")
or (1659 . "@src64/flow.l")
out (4036 . "@src64/io.l")
pack (1144 . "@src64/sym.l")
@@ -268,7 +268,7 @@ push (1688 . "@src64/sym.l")
push1 (1724 . "@src64/sym.l")
put (2698 . "@src64/sym.l")
putl (2950 . "@src64/sym.l")
-pwd (2606 . "@src64/main.l")
+pwd (2607 . "@src64/main.l")
queue (1920 . "@src64/sym.l")
quit (1075 . "@src64/main.l")
quote (141 . "@src64/flow.l")
@@ -279,7 +279,7 @@ raw (465 . "@src64/main.l")
rd (4953 . "@src64/io.l")
read (2530 . "@src64/io.l")
replace (1490 . "@src64/subr.l")
-rest (2270 . "@src64/main.l")
+rest (2271 . "@src64/main.l")
reverse (1665 . "@src64/subr.l")
rewind (4919 . "@src64/io.l")
rollback (1885 . "@src64/db.l")
@@ -320,7 +320,7 @@ text (1272 . "@src64/sym.l")
throw (2510 . "@src64/flow.l")
tick (3182 . "@src64/flow.l")
till (3437 . "@src64/io.l")
-time (2489 . "@src64/main.l")
+time (2490 . "@src64/main.l")
touch (1049 . "@src64/sym.l")
trim (1746 . "@src64/subr.l")
try (1191 . "@src64/flow.l")
@@ -333,9 +333,9 @@ up (712 . "@src64/main.l")
upp? (3232 . "@src64/sym.l")
uppc (3296 . "@src64/sym.l")
use (1592 . "@src64/flow.l")
-usec (2594 . "@src64/main.l")
+usec (2595 . "@src64/main.l")
val (1463 . "@src64/sym.l")
-version (2979 . "@src64/main.l")
+version (2980 . "@src64/main.l")
wait (3016 . "@src64/io.l")
when (1903 . "@src64/flow.l")
while (2080 . "@src64/flow.l")
diff --git a/src64/main.l b/src64/main.l
@@ -1920,30 +1920,31 @@
(code 'doLisp 2)
push X
push Y
- push Z
- ld X (E CDR) # Get tag
- call evSymX_E # Evaluate to a symbol
- ld Y Lisp # Search lisp callback definitions
- ld Z cbl1
+ ld X E
+ ld Y (E CDR) # Get tag
+ call evSymY_E # Evaluate to a symbol
+ ld A Lisp # Search lisp callback definitions
+ ld C cbl1
do
- cmp E (Y) # Found tag?
+ cmp E (A) # Found tag?
jeq 10 # Yes
- add Y II # Next entry
- add Z "cbl2-cbl1"
- cmp Y LispEnd
+ add A II # Next entry
+ add C "cbl2-cbl1"
+ cmp A LispEnd
until eq
- ld Y Lisp # Not found, search for empty slot
- ld Z cbl1
+ ld A Lisp # Not found, search for empty slot
+ ld C cbl1
do
- cmp (Y I) Nil # Empty?
+ cmp (A I) Nil # Empty?
if eq # Yes
- ld (Y) E # Store tag
-10 ld X (X CDR) # X on 'fun'
- ld E (X) # Eval 'fun'
+10 push C # Save function pointer
+ push A # And callback entry
+ ld (A) E # Store tag
+ ld E ((Y CDR)) # Eval 'fun'
eval
- ld (Y I) E # Store in slot
- ld E Z
- pop Z
+ pop A
+ ld (A I) E # Store in slot
+ pop E # Get function pointer
pop Y
pop X
test E (hex "F000000000000000") # Fit in short number?
@@ -1952,9 +1953,9 @@
or E CNT
ret
end
- add Y II # Next entry
- add Z "cbl2-cbl1"
- cmp Y LispEnd
+ add A II # Next entry
+ add C "cbl2-cbl1"
+ cmp A LispEnd
until eq
ld Y CbErr
jmp errEXYZ