From 6d850b50c536d558252017d4daea5d5718dcc8b2 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Mon, 18 May 2020 19:04:07 +0100 Subject: [PATCH] * Make the Evil happy (Bug#41374) * lisp/emacs-lisp/comp.el (comp-never-optimize-functions): Blacklist all primitives advised by evil-mode from trampoline optimization. (comp-call-optim-form-call): Prevent trampoline optimization for recursive calls at speed 2 to respect elisp original semantic. --- lisp/emacs-lisp/comp.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 662cfe2d4e8..cd1e4dbd92e 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -103,7 +103,10 @@ Skip if any is matching." macroexpand scroll-down scroll-up narrow-to-region widen rename-buffer make-indirect-buffer delete-file top-level abort-recursive-edit ;; For user convenience - yes-or-no-p) + yes-or-no-p + ;; Make the Evil happy :/ + read-key-sequence select-window set-window-buffer split-window-internal + use-global-map use-local-map) "Primitive functions for which we do not perform trampoline optimization. This is especially useful for primitives known to be advised or redefined when compilation is performed at `comp-speed' > 0." @@ -1983,10 +1986,9 @@ Backward propagate array placement properties." (fill-args args maxarg)))) `(,call-type ,callee ,@args))) ;; Intra compilation unit procedure call optimization. - ;; Attention speed 3 triggers that for non self calls too!! - ((or (eq callee self) - (and (>= comp-speed 3) - callee-in-unit)) + ;; Attention speed 3 triggers this for non self calls too!! + ((and (>= comp-speed 3) + callee-in-unit) (let* ((func-args (comp-func-args callee-in-unit)) (nargs (comp-nargs-p func-args)) (call-type (if nargs 'direct-callref 'direct-call)) -- 2.39.5