From 41e856b539eab6080eeacd313c7f201dc3955d8c Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 19 Oct 2014 22:36:22 -0400 Subject: * lisp/emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg case. Fixes: debbugs:18767 --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/bytecomp.el | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'lisp') diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6b0c8a67b79..1a458522079 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-10-20 Stefan Monnier + + * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg + case (bug#18767). + 2014-10-15 Alan Mackenzie * cus-edit.el (custom-command-apply): Specify the return value in 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.\"" (byte-defop-compiler cons 2) (byte-defop-compiler aref 2) (byte-defop-compiler set 2) -(byte-defop-compiler (= byte-eqlsign) 2-and) -(byte-defop-compiler (< byte-lss) 2-and) -(byte-defop-compiler (> byte-gtr) 2-and) -(byte-defop-compiler (<= byte-leq) 2-and) -(byte-defop-compiler (>= byte-geq) 2-and) +(byte-defop-compiler (= byte-eqlsign) 2) ;; -and bug#18767 +(byte-defop-compiler (< byte-lss) 2) ;; -and bug#18767 +(byte-defop-compiler (> byte-gtr) 2) ;; -and bug#18767 +(byte-defop-compiler (<= byte-leq) 2) ;; -and bug#18767 +(byte-defop-compiler (>= byte-geq) 2) ;; -and bug#18767 (byte-defop-compiler get 2) (byte-defop-compiler nth 2) (byte-defop-compiler substring 2-3) @@ -3332,6 +3332,7 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\"" (defun byte-compile-and-folded (form) "Compile calls to functions like `<='. These implicitly `and' together a bunch of two-arg bytecodes." + ;; FIXME: bug#18767 means we can't do it this way! (let ((l (length form))) (cond ((< l 3) (byte-compile-form `(progn ,(nth 1 form) t))) -- cgit v1.2.1