[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/elisp-benchmarks fe6aa3e 2/2: * Use the Emacs native co
From: |
Andrea Corallo |
Subject: |
[elpa] externals/elisp-benchmarks fe6aa3e 2/2: * Use the Emacs native compiler if available |
Date: |
Tue, 19 May 2020 10:43:03 -0400 (EDT) |
branch: externals/elisp-benchmarks
commit fe6aa3ec9ca5f7568d7a1e5005382343b3bd9143
Author: Andrea Corallo <address@hidden>
Commit: Andrea Corallo <address@hidden>
* Use the Emacs native compiler if available
* elisp-benchmarks.el: Update version.
(elisp-benchmarks-run): Use native compiler if available.
---
elisp-benchmarks.el | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/elisp-benchmarks.el b/elisp-benchmarks.el
index 5ac9b44..9e70620 100644
--- a/elisp-benchmarks.el
+++ b/elisp-benchmarks.el
@@ -4,7 +4,7 @@
;; Author: Andrea Corallo <address@hidden>
;; Maintainer: Andrea Corallo <address@hidden>
-;; Version: 1.4
+;; Version: 1.5
;; Keywords: languages, lisp
;; Package-Type: multi
;; Created: 2019-01-12
@@ -85,6 +85,10 @@ RECOMPILE all the benchmark folder when non nil."
repeat runs
for i from 1
named test-loop
+ with native-comp = (boundp 'comp-ctxt) ; FIXME when possible
+ with compile-function = (if native-comp
+ #'native-compile
+ #'byte-compile-file)
with res = (make-hash-table :test #'equal)
with sources = (directory-files elb-bench-directory t "\\.el$")
with tests = (if selector
@@ -93,9 +97,20 @@ RECOMPILE all the benchmark folder when non nil."
collect (file-name-base f))
(mapcar #'file-name-base sources))
initially
- (if recompile
- (mapc (lambda (f) (byte-compile-file f t)) sources)
- (mapc #'load (mapcar #'file-name-sans-extension sources)))
+ (when native-comp
+ (require 'comp)
+ (setf comp-speed 3))
+ ;; Compile
+ (when recompile
+ (mapc (lambda (f)
+ (message "Compiling... %s" f)
+ (funcall compile-function f t))
+ sources))
+ ;; Load
+ (mapc #'load (mapcar (if native-comp
+ #'comp-output-filename
+ #'file-name-sans-extension)
+ sources))
(cl-loop for test in tests
do (puthash test () res))
do