From 20ec37481aaffbcdcc27ba577a4c6a8624572231 Mon Sep 17 00:00:00 2001 From: Hugo Thunnissen Date: Tue, 15 Aug 2023 22:53:19 +0200 Subject: [PATCH] Fix compilation of benchmarks and tests --- benchmarks/parse-file.el | 2 +- benchmarks/splay-tree.el | 80 +++++++++++++++++++++++++------------ compile.bash | 7 +++- test/phpinspect-test-env.el | 1 + test/phpinspect-test.el | 2 +- test/test-buffer.el | 2 +- 6 files changed, 65 insertions(+), 29 deletions(-) diff --git a/benchmarks/parse-file.el b/benchmarks/parse-file.el index e135ce2..89bc6f2 100644 --- a/benchmarks/parse-file.el +++ b/benchmarks/parse-file.el @@ -75,7 +75,7 @@ (message "Incremental parse after buffer edit:") ;; Removes closing curly brace of __construct (goto-char 9062) - (delete-backward-char 1) + (delete-char -1) (garbage-collect) diff --git a/benchmarks/splay-tree.el b/benchmarks/splay-tree.el index ffd8978..99ff38c 100644 --- a/benchmarks/splay-tree.el +++ b/benchmarks/splay-tree.el @@ -25,49 +25,79 @@ (require 'phpinspect-splayt) -(let ((here (file-name-directory (or load-file-name buffer-file-name))) - (tree (phpinspect-make-splayt))) +(let ((tree (phpinspect-make-splayt)) + result) (message "Splay tree 10000 insertions:") (garbage-collect) - (benchmark - 1 '(dotimes (i 10000) - (phpinspect-splayt-insert tree i 'value))) + + (setq result + (benchmark-run 1 + (dotimes (i 10000) + (phpinspect-splayt-insert tree i 'value)))) + + (message "Elapsed time: %f (%f in %d GC's)" + (car result) (caddr result) (cadr result)) (message "Splay tree 10000 lookups:") (garbage-collect) - (benchmark - 1 '(dotimes (i 10000) - (phpinspect-splayt-find tree i))) + (setq result + (benchmark-run 1 + (dotimes (i 10000) + (phpinspect-splayt-find tree i)))) + + (message "Elapsed time: %f (%f in %d GC's)" + (car result) (caddr result) (cadr result)) (message "Splay tree 10000 items traversal:") (garbage-collect) - (benchmark - 1 '(phpinspect-splayt-traverse (i tree) - nil)) + (setq result + (benchmark-run 1 + (phpinspect-splayt-traverse (i tree) + i))) + + (message "Elapsed time: %f (%f in %d GC's)" + (car result) (caddr result) (cadr result)) + (message "Splay tree 10000 items LR traversal:") (garbage-collect) - (benchmark - 1 '(phpinspect-splayt-traverse-lr (i tree) - nil))) + (setq result + (benchmark-run 1 + (phpinspect-splayt-traverse-lr (i tree) + i))) + (message "Elapsed time: %f (%f in %d GC's)" + (car result) (caddr result) (cadr result))) -(let (map) + +(let (map result) (message "Hashtable 10000 insertions:") (garbage-collect) - (benchmark - 1 '(progn - (setq map (make-hash-table :test #'eq :size 10000 :rehash-size 1.5)) - (dotimes (i 10000) - (puthash i 'value map)))) + (setq result + (benchmark-run 1 + (progn + (setq map (make-hash-table :test #'eq :size 10000 :rehash-size 1.5)) + (dotimes (i 10000) + (puthash i 'value map))))) + (message "Elapsed time: %f (%f in %d GC's)" + (car result) (caddr result) (cadr result)) (message "Hashtable 10000 lookups:") (garbage-collect) - (benchmark - 1 '(dotimes (i 10000) - (gethash i map))) + (setq result + (benchmark-run 1 + (dotimes (i 10000) + (gethash i map)))) + + (message "Elapsed time: %f (%f in %d GC's)" + (car result) (caddr result) (cadr result)) + (message "Hashtable 10000 iterations:") (garbage-collect) - (benchmark - 1 '(maphash (lambda (k v) nil) map))) + (setq result + (benchmark-run 1 + (maphash (lambda (k v) k v) map))) + + (message "Elapsed time: %f (%f in %d GC's)" + (car result) (caddr result) (cadr result))) diff --git a/compile.bash b/compile.bash index c8c3c82..e5cecf7 100644 --- a/compile.bash +++ b/compile.bash @@ -4,6 +4,11 @@ for file in ./*.el; do cask emacs -batch -L . --eval '(setq byte-compile-error-on-warn t)' -f batch-byte-compile "$file" || break done +for file in ./**/*.el; do + cask emacs -batch -L . --eval '(setq byte-compile-error-on-warn nil)' -f batch-byte-compile "$file" || break +done + if [[ -z $NO_REMOVE_ELC ]]; then - rm ./*.elc + rm ./**/*.elc + rm *.elc fi diff --git a/test/phpinspect-test-env.el b/test/phpinspect-test-env.el index 6bb0aef..5f8d2e5 100644 --- a/test/phpinspect-test-env.el +++ b/test/phpinspect-test-env.el @@ -2,6 +2,7 @@ (require 'phpinspect-worker) (require 'phpinspect-cache) +(require 'phpinspect-parser) ;; Make sure that the worker is running. TODO: fully encapsulate the worker the ;; data types that are used in tests so that we don't depend on some global diff --git a/test/phpinspect-test.el b/test/phpinspect-test.el index 74435e3..2347013 100644 --- a/test/phpinspect-test.el +++ b/test/phpinspect-test.el @@ -27,7 +27,7 @@ (require 'phpinspect) (require 'phpinspect-test-env - (concat (file-name-directory (or load-file-name buffer-file-name)) + (concat (file-name-directory (or load-file-name buffer-file-name byte-compile-current-file)) "phpinspect-test-env.el")) (ert-deftest phpinspect-get-variable-type-in-block () diff --git a/test/test-buffer.el b/test/test-buffer.el index 5d98719..a697bdd 100644 --- a/test/test-buffer.el +++ b/test/test-buffer.el @@ -27,7 +27,7 @@ (require 'phpinspect-parser) (require 'phpinspect-buffer) (require 'phpinspect-test-env - (concat (file-name-directory (or load-file-name buffer-file-name)) + (concat (file-name-directory (or load-file-name buffer-file-name byte-compile-current-file)) "phpinspect-test-env.el")) (ert-deftest phpinspect-buffer-region-lookups ()