summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/compiler.tl12
-rw-r--r--share/txr/stdlib/doc-syms.tl5
2 files changed, 15 insertions, 2 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index 88612e60..127d68af 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -506,6 +506,7 @@
(dohash me.(compile oreg env (expand-dohash form)))
(tree-bind me.(comp-tree-bind oreg env form))
(mac-param-bind me.(comp-mac-param-bind oreg env form))
+ (mac-env-param-bind me.(comp-mac-env-param-bind oreg env form))
(tree-case me.(comp-tree-case oreg env form))
(sys:lisp1-value me.(comp-lisp1-value oreg env form))
(dwim me.(comp-dwim oreg env form))
@@ -1498,6 +1499,17 @@
obj-var t nil body)))))
me.(compile oreg env expn)))))
+(defmeth compiler comp-mac-env-param-bind (me oreg env form)
+ (mac-param-bind form (op context menv params obj . body) form
+ (with-gensyms (obj-var form-var)
+ (let ((expn (expand ^(let* ((,obj-var ,obj)
+ (,form-var ,context))
+ ,(expand-bind-mac-params form-var
+ form-var
+ params menv
+ obj-var t nil body)))))
+ me.(compile oreg env expn)))))
+
(defmeth compiler comp-tree-case (me oreg env form)
(mac-param-bind form (op obj . cases) form
(let* ((ncases (len cases))
diff --git a/share/txr/stdlib/doc-syms.tl b/share/txr/stdlib/doc-syms.tl
index b980e6b3..64ad54dd 100644
--- a/share/txr/stdlib/doc-syms.tl
+++ b/share/txr/stdlib/doc-syms.tl
@@ -931,7 +931,7 @@
("o-rdwr" "N-034BF6C9")
("len" "N-03AD172A")
("progn" "N-03F7A8B8")
- ("tree-bind" "N-00A580D9")
+ ("tree-bind" "N-021A9008")
("tb" "N-02AB6E53")
("rpos" "N-01F68300")
("buf-get-int" "N-03C7C985")
@@ -1150,6 +1150,7 @@
("make-random-state" "N-032BEE6C")
("dir-name" "N-02C01721")
("rfind-if" "N-0301CDB6")
+ ("mac-env-param-bind" "N-021A9008")
("scan" "N-03E989D0")
("vmin" "N-01812D70")
("copy-list" "N-006ED237")
@@ -1712,7 +1713,7 @@
("indent-foff" "N-00512FDD")
("env-fbindings" "N-0018DCDC")
("keep-if*" "N-01413802")
- ("mac-param-bind" "N-00A580D9")
+ ("mac-param-bind" "N-021A9008")
("ignerr" "N-007287AC")
(":match" "N-03B92C0D")
("set-max-length" "N-031FA9E5")