aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2014-10-20 20:23:50 +0100
committerGlenn Morris2014-10-20 20:23:50 +0100
commitd20b72d9fa987ea9a511c6bed909c09929dc78f8 (patch)
treec22a63e39e951d5dc084341cbefacadc3de0f214
parent83bad90efe943e7c88431b7a71bc1d5cf1304c92 (diff)
downloademacs-d20b72d9fa987ea9a511c6bed909c09929dc78f8.tar.gz
emacs-d20b72d9fa987ea9a511c6bed909c09929dc78f8.zip
Restore temporarily reverted bytecomp change
* lisp/emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg case. Fixes: debbugs:18767
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/emacs-lisp/bytecomp.el11
2 files changed, 11 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4c9b60ea4cd..c1a57cf373e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12014-10-20 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg
4 case (bug#18767).
5
12014-10-20 Glenn Morris <rgm@gnu.org> 62014-10-20 Glenn Morris <rgm@gnu.org>
2 7
3 * Version 24.4 released. 8 * Version 24.4 released.
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index e5f8a8cc22a..69c4e0f1628 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -3261,11 +3261,11 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
3261(byte-defop-compiler cons 2) 3261(byte-defop-compiler cons 2)
3262(byte-defop-compiler aref 2) 3262(byte-defop-compiler aref 2)
3263(byte-defop-compiler set 2) 3263(byte-defop-compiler set 2)
3264(byte-defop-compiler (= byte-eqlsign) 2-and) 3264(byte-defop-compiler (= byte-eqlsign) 2) ;; -and bug#18767
3265(byte-defop-compiler (< byte-lss) 2-and) 3265(byte-defop-compiler (< byte-lss) 2) ;; -and bug#18767
3266(byte-defop-compiler (> byte-gtr) 2-and) 3266(byte-defop-compiler (> byte-gtr) 2) ;; -and bug#18767
3267(byte-defop-compiler (<= byte-leq) 2-and) 3267(byte-defop-compiler (<= byte-leq) 2) ;; -and bug#18767
3268(byte-defop-compiler (>= byte-geq) 2-and) 3268(byte-defop-compiler (>= byte-geq) 2) ;; -and bug#18767
3269(byte-defop-compiler get 2) 3269(byte-defop-compiler get 2)
3270(byte-defop-compiler nth 2) 3270(byte-defop-compiler nth 2)
3271(byte-defop-compiler substring 2-3) 3271(byte-defop-compiler substring 2-3)
@@ -3332,6 +3332,7 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
3332(defun byte-compile-and-folded (form) 3332(defun byte-compile-and-folded (form)
3333 "Compile calls to functions like `<='. 3333 "Compile calls to functions like `<='.
3334These implicitly `and' together a bunch of two-arg bytecodes." 3334These implicitly `and' together a bunch of two-arg bytecodes."
3335 ;; FIXME: bug#18767 means we can't do it this way!
3335 (let ((l (length form))) 3336 (let ((l (length form)))
3336 (cond 3337 (cond
3337 ((< l 3) (byte-compile-form `(progn ,(nth 1 form) t))) 3338 ((< l 3) (byte-compile-form `(progn ,(nth 1 form) t)))