Mercurial > hg > xemacs-beta
changeset 5525:2a6a8da4dd7c
Fix a bug in my last commit, symbol macros that expand to themselves hang.
2011-06-19 Aidan Kehoe <kehoea@parhasard.net>
* cl-macs.el (cl-defsubst-expand):
It is occasionally the case that the symbol naming the argument
co-incides with the value that it is replacing; in that case,
using the symbol macro is counterproductive and hangs XEmacs (as
does analogous code in SBCL), so don't.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 19 Jun 2011 19:47:13 +0100 |
parents | e05d98bf9644 |
children | 9a046b2e6494 b3b28406da8c |
files | lisp/ChangeLog lisp/cl-macs.el |
diffstat | 2 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Jun 19 19:15:52 2011 +0100 +++ b/lisp/ChangeLog Sun Jun 19 19:47:13 2011 +0100 @@ -1,3 +1,11 @@ +2011-06-19 Aidan Kehoe <kehoea@parhasard.net> + + * cl-macs.el (cl-defsubst-expand): + It is occasionally the case that the symbol naming the argument + co-incides with the value that it is replacing; in that case, + using the symbol macro is counterproductive and hangs XEmacs (as + does analogous code in SBCL), so don't. + 2011-06-19 Aidan Kehoe <kehoea@parhasard.net> * behavior.el (enable-behavior):
--- a/lisp/cl-macs.el Sun Jun 19 19:15:52 2011 +0100 +++ b/lisp/cl-macs.el Sun Jun 19 19:47:13 2011 +0100 @@ -3223,7 +3223,9 @@ (let* ((symbol-macros nil) (lets (mapcan #'(lambda (argn argv) (if (or simple (cl-const-expr-p argv)) - (progn (push (list argn argv) symbol-macros) + (progn (or (eq argn argv) + (push (list argn argv) + symbol-macros)) (and unsafe (list (list argn argv)))) (list (list argn argv)))) argns argvs)))