From: Mattias EngdegÄrd Date: Sat, 18 Dec 2021 18:45:38 +0000 (+0100) Subject: Remove incorrect byte-hunk-handler for `eval` X-Git-Tag: emacs-29.0.90~3577^2~17^2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=941d15558f013612689afe9fd2501ce6119a5120;p=emacs.git Remove incorrect byte-hunk-handler for `eval` This optimisation is of very limited utility and miscompiles top-level code having the form (eval 'CODE t) by replacing it with CODE which will then, as things currently stand, be evaluated with dynamic binding. * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Remove. --- diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 644d9f1a470..a98c9197a06 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2677,15 +2677,6 @@ list that represents a doc string reference. (prog1 (byte-compile-keep-pending form) (apply 'make-obsolete (mapcar 'eval (cdr form))))) -;; This handler is not necessary, but it makes the output from dont-compile -;; and similar macros cleaner. -(put 'eval 'byte-hunk-handler 'byte-compile-file-form-eval) -(defun byte-compile-file-form-eval (form) - (if (and (eq (car-safe (nth 1 form)) 'quote) - (equal (nth 2 form) lexical-binding)) - (nth 1 (nth 1 form)) - (byte-compile-keep-pending form))) - (defun byte-compile-file-form-defmumble (name macro arglist body rest) "Process a `defalias' for NAME. If MACRO is non-nil, the definition is known to be a macro.