1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/efa8f1377817/
Changeset: efa8f1377817
User: kehoea
Date: 2017-10-29 13:59:44+00:00
Summary: #'cl-macro-expand-all; delay symbol macro shadowing until all args
processed, let
lisp/ChangeLog addition:
2017-10-29 Aidan Kehoe <kehoea(a)parhasard.net>
* cl-extra.el (cl-macroexpand-all):
When processing a let binding, and an existing symbol macro has
the same symbol name as the let binding, delay shadowing until all
bindings are processed.
tests/ChangeLog addition:
2017-10-29 Aidan Kehoe <kehoea(a)parhasard.net>
* automated/lisp-tests.el:
Test the SHADOW argument to symbol-macrolet.
Affected #: 4 files
diff -r 450ec5be18d1431b8a6f8377d836a2bc86f59f59 -r
efa8f1377817cf7f529bbd39b58857c7675c59ad lisp/ChangeLog
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2017-10-29 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * cl-extra.el (cl-macroexpand-all):
+ When processing a let binding, and an existing symbol macro has
+ the same symbol name as the let binding, delay shadowing until all
+ bindings are processed.
+
2017-10-12 Aidan Kehoe <kehoea(a)parhasard.net>
* frame.el (frame-utmost-window-2): Made into a label.
diff -r 450ec5be18d1431b8a6f8377d836a2bc86f59f59 -r
efa8f1377817cf7f529bbd39b58857c7675c59ad lisp/cl-extra.el
--- a/lisp/cl-extra.el
+++ b/lisp/cl-extra.el
@@ -523,7 +523,7 @@
(push `(,eq-hash . nil) env)
;; `let'; delay until all bindings
;; processed.
- (push `(,eq-hash . nil) env))
+ (push `(,eq-hash . nil) shadows))
;; Don't shadow it.
(setq symbol (car acons))
(unless (symbolp symbol) (setq letf t)))
diff -r 450ec5be18d1431b8a6f8377d836a2bc86f59f59 -r
efa8f1377817cf7f529bbd39b58857c7675c59ad tests/ChangeLog
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,8 @@
+2017-10-29 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * automated/lisp-tests.el:
+ Test the SHADOW argument to symbol-macrolet.
+
2017-10-29 Aidan Kehoe <kehoea(a)parhasard.net>
* automated/mule-tests.el:
diff -r 450ec5be18d1431b8a6f8377d836a2bc86f59f59 -r
efa8f1377817cf7f529bbd39b58857c7675c59ad tests/automated/lisp-tests.el
--- a/tests/automated/lisp-tests.el
+++ b/tests/automated/lisp-tests.el
@@ -3034,6 +3034,21 @@
(Assert (equal '([symbol expansion] [copy expansion] [third expansion])
(test-symbol-macrolet))))
+;; And test it with the SHADOW argument.
+
+(Assert (eql (let ((hello 20) (everyone 5))
+ (symbol-macrolet ((hello everyone))
+ (let ((hello (+ hello 5)))
+ hello)))
+ 10))
+
+(Assert (eql (let ((hello 20) (everyone 5))
+ (symbol-macrolet ((hello everyone t))
+ (let ((hello (+ hello 5))
+ (there (+ hello 10)))
+ (+ hello there))))
+ 25))
+
;; Basic tests of #'apply-partially.
(let* ((four 4)
(times-four (apply-partially '* four))
Repository URL:
https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from
bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.