summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/emacs-lisp/byte-opt.el7
2 files changed, 12 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 843de781e06..50fd8376e45 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2000-11-14 Gerd Moellmann <gerd@gnu.org>
+
+ * emacs-lisp/byte-opt.el (byte-compile-unfold-lambda): Don't
+ recursively optimize body because that can lead to infinite
+ recursion; see comment there.
+
2000-11-13 Eli Zaretskii <eliz@is.elta.co.il>
* faces.el (face-spec-set-match-display): Revert the change from
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index c3c8e677239..da695386604 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -340,7 +340,12 @@
(byte-compile-warn
"Attempt to open-code `%s' with too many arguments" name))
form)
- (setq body (mapcar 'byte-optimize-form body))
+
+ ;; The following leads to infinite recursion when loading a
+ ;; file containing `(defsubst f () (f))', and then trying to
+ ;; byte-compile that file.
+ ;(setq body (mapcar 'byte-optimize-form body)))
+
(let ((newform
(if bindings
(cons 'let (cons (nreverse bindings) body))