diff options
author | Andrea Corallo <akrl@sdf.org> | 2020-05-18 19:04:07 +0100 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2020-05-18 19:19:05 +0100 |
commit | 6d850b50c536d558252017d4daea5d5718dcc8b2 (patch) | |
tree | e9241b5ae0a421ea37597c67d499573b1425b39d /lisp/emacs-lisp/comp.el | |
parent | cd4ef52c8673a76c6fcb0efd7d2c74778522038c (diff) | |
download | emacs-6d850b50c536d558252017d4daea5d5718dcc8b2.tar.gz emacs-6d850b50c536d558252017d4daea5d5718dcc8b2.tar.bz2 emacs-6d850b50c536d558252017d4daea5d5718dcc8b2.zip |
* 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.
Diffstat (limited to 'lisp/emacs-lisp/comp.el')
-rw-r--r-- | lisp/emacs-lisp/comp.el | 12 |
1 files 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)) |