The Lambda Lab
/
projects
/
scheme.forth.jl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added support for variadic compound procedures.
[scheme.forth.jl.git]
/
defer-is.4th
diff --git
a/defer-is.4th
b/defer-is.4th
index
bf3225a
..
89f07de
100644
(file)
--- a/
defer-is.4th
+++ b/
defer-is.4th
@@
-1,4
+1,4
@@
-\
Add w
ords supporting deferred execution
+\
W
ords supporting deferred execution
: abort-defer
." Tried to execute undefined deferred word." cr abort ;
: abort-defer
." Tried to execute undefined deferred word." cr abort ;
@@
-18,7
+18,7
@@
hide abort-defer
: is immediate
bl word find
: is immediate
bl word find
- 0= abort"
Undefined
deferred word."
+ 0= abort"
Tried to define unknown
deferred word."
state @ 0= if
defer!
state @ 0= if
defer!
@@
-26,3
+26,16
@@
hide abort-defer
['] lit , , ['] defer! ,
then
;
['] lit , , ['] defer! ,
then
;
+
+: :noname
+ here current @ 1+ @ ,
+ current @ 1+ !
+ 0 ,
+ here docol ,
+ [compile] ] ;
+
+
+\ Need this for tail call optimization
+
+: goto-deferred ( cfa -- )
+ R> drop >body @ >body >R ;