From 60cfb90d0161af4fc3219bba00525e7a3473601a Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Thu, 27 Jan 2022 10:39:53 +0100 Subject: [PATCH 1/2] * Have `benchmark-run-compiled' use the native compiler when available * lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): Use native compiler when available. --- lisp/emacs-lisp/benchmark.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/benchmark.el b/lisp/emacs-lisp/benchmark.el index c5f621c6c86..882b1d68c48 100644 --- a/lisp/emacs-lisp/benchmark.el +++ b/lisp/emacs-lisp/benchmark.el @@ -121,7 +121,11 @@ result. The overhead of the `lambda's is accounted for." (unless (or (natnump repetitions) (and repetitions (symbolp repetitions))) (setq forms (cons repetitions forms) repetitions 1)) - `(benchmark-call (byte-compile '(lambda () ,@forms)) ,repetitions)) + `(benchmark-call (,(if (native-comp-available-p) + 'native-compile + 'byte-compile) + '(lambda () ,@forms)) + ,repetitions)) ;;;###autoload (defun benchmark (repetitions form) From d0aac84b2a8d82042475aeeeba465d0d5fd6ad3d Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Thu, 27 Jan 2022 11:47:41 +0100 Subject: [PATCH 2/2] * Fix `startup--honor-delayed-native-compilations' for (bug#53497) * lisp/startup.el (startup--honor-delayed-native-compilations): Don't forget to set `comp--loadable' when `comp--delayed-sources' is empty. --- lisp/startup.el | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lisp/startup.el b/lisp/startup.el index d90e7a7d26e..05d829396d6 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -525,12 +525,16 @@ DIRS are relative." (files &optional recursively load selector)) (defun startup--honor-delayed-native-compilations () "Honor pending delayed deferred native compilations." - (when (and (native-comp-available-p) - comp--delayed-sources) - (require 'comp) - (setq comp--loadable t) - (native--compile-async comp--delayed-sources nil 'late) - (setq comp--delayed-sources nil))) + (if (and (native-comp-available-p) + comp--delayed-sources) + (progn + ;; Require comp before setting `comp--loadable' to break + ;; circularity. + (require 'comp) + (setq comp--loadable t) + (native--compile-async comp--delayed-sources nil 'late) + (setq comp--delayed-sources nil)) + (setq comp--loadable t))) (defvar native-comp-eln-load-path) (defun normal-top-level ()