branch: externals/ergoemacs-mode commit 12a1552bdbedd7dfe522321026cb46ddd76eb64a Author: Matthew Fidler <514778+mattfid...@users.noreply.github.com> Commit: Matthew Fidler <514778+mattfid...@users.noreply.github.com>
Remove ergoemacs-timing --- ergoemacs-component.el | 25 ++++--- ergoemacs-key-description.el | 31 ++++----- ergoemacs-lib.el | 13 +--- ergoemacs-macros.el | 7 -- ergoemacs-map-properties.el | 43 ++++++------ ergoemacs-map.el | 2 - ergoemacs-mode.el | 153 ++++++++++++++++--------------------------- 7 files changed, 100 insertions(+), 174 deletions(-) diff --git a/ergoemacs-component.el b/ergoemacs-component.el index d4c38f0..8997af9 100644 --- a/ergoemacs-component.el +++ b/ergoemacs-component.el @@ -54,7 +54,6 @@ (defvar ergoemacs-translation-hash) (declare-function ergoemacs--emacs-state "ergoemacs-mode") -(declare-function ergoemacs-timing-- "ergoemacs-mode") (declare-function ergoemacs-mode--setup-hash-tables--setq "ergoemacs-mode") (declare-function ergoemacs-mode-clear-cache "ergoemacs-mode") @@ -401,19 +400,17 @@ The keymap to translate is TRANSLATE-MAP, otherwise it is the ret) (t (setq ergoemacs-component-struct--get-keymap (make-sparse-keymap)) - (ergoemacs-timing translate-keymap - (ergoemacs-timing (intern (format "translate-keymap-%s" (ergoemacs-component-struct-name map))) - (ergoemacs-map-keymap - (lambda (key item) - (if (consp key) - (ergoemacs-warn "Keymap range currently not supported %s,%s" key item) - (unless (eq item 'ergoemacs-prefix) - (ergoemacs :define-key - ergoemacs-component-struct--get-keymap - (ergoemacs-translate - key just-first-keys variable-modifiers - variable-prefixes cur-layout layout-from) item)))) - cmap))) + (ergoemacs-map-keymap + (lambda (key item) + (if (consp key) + (ergoemacs-warn "Keymap range currently not supported %s,%s" key item) + (unless (eq item 'ergoemacs-prefix) + (ergoemacs :define-key + ergoemacs-component-struct--get-keymap + (ergoemacs-translate + key just-first-keys variable-modifiers + variable-prefixes cur-layout layout-from) item)))) + cmap) (setq ret (copy-keymap ergoemacs-component-struct--get-keymap)) (ergoemacs ret :label (list (or lookup-key (ergoemacs (ergoemacs :global-map) :key-hash)) (intern (format "%s%s" (ergoemacs-component-struct-name map) (or (ergoemacs-component-struct-version map) ""))) (intern cur-layout))) (puthash (list lookup-key (intern cur-layout)) ret hash) diff --git a/ergoemacs-key-description.el b/ergoemacs-key-description.el index 982f70b..0bd9acd 100644 --- a/ergoemacs-key-description.el +++ b/ergoemacs-key-description.el @@ -57,8 +57,6 @@ (defvar ergoemacs-display-without-brackets nil "Display the key without brackets.") -(declare-function ergoemacs-timing-- "ergoemacs-mode") - (declare-function ergoemacs-translate--escape-to-meta "ergoemacs-translate") (declare-function ergoemacs-translate--event-modifiers "ergoemacs-translate") (declare-function ergoemacs-translate--event-basic-type "ergoemacs-translate") @@ -499,21 +497,20 @@ When HELP is non-nil, insert and add help cross-refences." (let ((map (or (and (symbolp map) (symbol-value map)) (and (consp map) (eq (car map) 'keymap) map))) ret) - (ergoemacs-timing describe-keymap - (setq ret - (ergoemacs-cache (intern (format "describe-keymap-ret%s" (mapconcat (lambda(x) (md5 (format "%s" x))) (ergoemacs map :key-hash) "_"))) - (ergoemacs-map-keymap - (lambda (cur-key item) - (unless (eq item 'ergoemacs-prefix) - (cond - ((consp cur-key)) - ((memq (elt cur-key 0) ergoemacs-describe-keymap--ignore)) - ((consp item)) - ((not item)) - (t - (push (cons cur-key item) ret))))) - map) - ret))) + (setq ret + (ergoemacs-cache (intern (format "describe-keymap-ret%s" (mapconcat (lambda(x) (md5 (format "%s" x))) (ergoemacs map :key-hash) "_"))) + (ergoemacs-map-keymap + (lambda (cur-key item) + (unless (eq item 'ergoemacs-prefix) + (cond + ((consp cur-key)) + ((memq (elt cur-key 0) ergoemacs-describe-keymap--ignore)) + ((consp item)) + ((not item)) + (t + (push (cons cur-key item) ret))))) + map) + ret)) (setq ret (append (list nil t) (sort ret (lambda(e1 e2) (ergoemacs :key-lessp (car e1) (car e2)))))) (if help (insert (ergoemacs-cache (intern (format "describe-keymap-help%s" (mapconcat (lambda(x) (md5 (format "%s" x))) (ergoemacs map :key-hash) "_"))) diff --git a/ergoemacs-lib.el b/ergoemacs-lib.el index b1198bb..da15845 100644 --- a/ergoemacs-lib.el +++ b/ergoemacs-lib.el @@ -41,7 +41,6 @@ (defvar ergoemacs-mode-names) (defvar ergoemacs-require) (defvar ergoemacs-theme-hash) -(defvar ergoemacs-timing-hash) (defvar ergoemacs-dir) @@ -327,17 +326,7 @@ to the `warn' function." (defvar ergoemacs-mn-len nil) (defvar ergoemacs-mx-len nil) -(defcustom ergoemacs-timing-find-regexp - (concat"^\\s-*(ergoemacs-timing" find-function-space-re "%s\\(\\s-\\|$\\)") - "The regexp used by `ergoemacs-timing-find-no-select' to search for a timing definition. -Note it must contain a `%s' at the place where `format' should -insert the face name." - :type 'regexp - :group 'find-function - :version "22.1") - -(unless (assoc 'ergoemacs-timing find-function-regexp-alist) - (push (cons 'ergoemacs-timing 'ergoemacs-timing-find-regexp) find-function-regexp-alist)) + (provide 'ergoemacs-lib) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/ergoemacs-macros.el b/ergoemacs-macros.el index 2e3dca3..6bd8fae 100644 --- a/ergoemacs-macros.el +++ b/ergoemacs-macros.el @@ -284,13 +284,6 @@ When arg1 can be a property. The following properties are supported: (or (ergoemacs-map--cache-- --hash-key) (ergoemacs-map--cache-- --hash-key (progn ,@body))))))) -(defmacro ergoemacs-timing (key &rest body) - "Save the timing using KEY for BODY." - (declare (indent 1)) - (if (listp key) - `(ergoemacs-timing-- ,key (lambda() ,@body)) - `(ergoemacs-timing-- ',key (lambda() ,@body)))) - (defmacro ergoemacs-no-specials (&rest body) "Revert some `ergoemacs-mode' functions to their C defintions in BODY." `(cl-letf (((symbol-function 'read-key-sequence) #'ergoemacs--real-read-key-sequence) diff --git a/ergoemacs-map-properties.el b/ergoemacs-map-properties.el index 31d2969..155c800 100644 --- a/ergoemacs-map-properties.el +++ b/ergoemacs-map-properties.el @@ -60,7 +60,6 @@ (defvar icicle-search-map) (declare-function ergoemacs-command-loop--spinner-display "ergoemacs-command-loop") -(declare-function ergoemacs-timing-- "ergoemacs-mode") (declare-function ergoemacs-map-keymap "ergoemacs-mapkeymap") (declare-function ergoemacs-emacs-exe "ergoemacs-functions") @@ -322,8 +321,7 @@ When AFTER is non-nil, this is a list of keys that changed after (original-global-map (ergoemacs :global-map)) (before-map (make-sparse-keymap)) tmp) - (ergoemacs-timing before-ergoemacs - (unwind-protect + (unwind-protect (progn (setq ergoemacs-map-keymap--load-autoloads-p nil) (ergoemacs-map-keymap @@ -358,7 +356,7 @@ When AFTER is non-nil, this is a list of keys that changed after (lookup-key ergoemacs-map-properties--before-ergoemacs cur-key))))) (ergoemacs :define-key before-map cur-key tmp))))) original-global-map t)) - (setq ergoemacs-map-keymap--load-autoloads-p t))) + (setq ergoemacs-map-keymap--load-autoloads-p t)) (if after (progn (setq ergoemacs-map-properties--after-ergoemacs before-map) @@ -918,8 +916,7 @@ keymaps without any additional keys are not considered empty. Otherwise, erogemacs-mode labeled keymaps without any additional keys are considered empty." (catch 'found-key - (ergoemacs-timing empty-p - (ergoemacs-map-keymap + (ergoemacs-map-keymap (lambda (cur-key item) (unless (and (not labeled-is-keymap-p) (equal cur-key [ergoemacs-labeled])) (if (consp cur-key) @@ -927,7 +924,8 @@ keys are considered empty." (unless (eq item 'ergoemacs-prefix) (when item (throw 'found-key nil)))))) - keymap)) t)) + keymap) + t)) ;;ergoemacs-map-properties--label @@ -970,19 +968,18 @@ KEYMAP can be an `ergoemacs-map-properties--key-struct' of the keymap as well." (let ((where-is-hash (make-hash-table)) (lookup-hash (make-hash-table :test 'equal)) keys tmp) - (ergoemacs-timing where-is-hash - (ergoemacs-map-keymap - (lambda (key item) - (unless (and (vectorp key) (eq (elt key (- (length key) 1)) 'ergoemacs-labeled)) - (cond - ((and (vectorp key) - (commandp item t)) - (push key keys) - (if (setq tmp (ergoemacs-gethash item where-is-hash)) - (push key tmp) - (puthash item (list key) where-is-hash)) - (puthash key item lookup-hash))))) - keymap)) + (ergoemacs-map-keymap + (lambda (key item) + (unless (and (vectorp key) (eq (elt key (- (length key) 1)) 'ergoemacs-labeled)) + (cond + ((and (vectorp key) + (commandp item t)) + (push key keys) + (if (setq tmp (ergoemacs-gethash item where-is-hash)) + (push key tmp) + (puthash item (list key) where-is-hash)) + (puthash key item lookup-hash))))) + keymap) (ergoemacs keymap :extract-keys keys) (ergoemacs keymap :extract-where-is where-is-hash) (ergoemacs keymap :extract-lookup lookup-hash))) @@ -1043,12 +1040,10 @@ keymap." t) (cond ((eq type :flatten) - (ergoemacs-timing flatten-original - (ergoemacs-map-keymap nil ret t))) + (ergoemacs-map-keymap nil ret t)) ((eq type :submaps) (ergoemacs-setcdr (cdr ret) - (cdr (ergoemacs-timing flatten-setcdr - (ergoemacs-map-keymap nil ret :setcdr)))) + (cdr (ergoemacs-map-keymap nil ret :setcdr))) ret) (t ret))))) diff --git a/ergoemacs-map.el b/ergoemacs-map.el index c1f5bf9..ffdcc42 100644 --- a/ergoemacs-map.el +++ b/ergoemacs-map.el @@ -60,8 +60,6 @@ (defvar ergoemacs-component-struct--composed-hook-minibuffer) -(declare-function ergoemacs-timing-- "ergoemacs-mode") - (declare-function ergoemacs-warn "ergoemacs-lib") (declare-function ergoemacs-setcdr "ergoemacs-lib") diff --git a/ergoemacs-mode.el b/ergoemacs-mode.el index 22b919b..52e13ac 100644 --- a/ergoemacs-mode.el +++ b/ergoemacs-mode.el @@ -452,43 +452,6 @@ This is structured by valid keyboard layouts for (defvar ergoemacs-map-properties--label-atoms-maps nil "Known bound keymaps.") -(defvar ergoemacs-timing-hash nil - "Hash table of `ergoemacs-mode' timing.") - -(defvar ergoemacs-timing--locations - '((remove-local-keymap-map-keymap . "ergoemacs-component.el") - (translate-keymap . "ergoemacs-component.el") - (describe-keymap . "ergoemacs-key-description.el") - (before-ergoemacs . "ergoemacs-map-properties.el") - ;; (ergoemacs-map-properties--create-label-function . "ergoemacs-map-properties.el") - (empty-p . "ergoemacs-map-properties.el") - (where-is-hash . "ergoemacs-map-properties.el") - (flatten-original . "ergoemacs-map-properties.el") - (lookup-keymap . "ergoemacs-map.el") - (calculate-ergoemacs-remap . "ergoemacs-map.el") - (calc-remaps . "ergoemacs-map.el") - (calc-passthrough . "ergoemacs-map.el") - (setup-ergoemacs-hash . "ergoemacs-mode.el")) - "Alist of known timing functions.") - -(defun ergoemacs-timing-- (key function) - "Save timing information for KEY by calling FUNCTION." - (let* ((entry-time (current-time)) - (ret (funcall function)) - val time file) - (if (not ergoemacs-timing-hash) - (setq ergoemacs-timing-hash (make-hash-table)) - (if (not (setq val (gethash key ergoemacs-timing-hash))) - (puthash key (vector 1 (setq val (float-time (time-subtract (current-time) entry-time))) - val val (or (and (setq file (assoc key ergoemacs-timing--locations)) (expand-file-name (cdr file) ergoemacs-dir)) - load-file-name buffer-file-name)) ergoemacs-timing-hash) - (cl-incf (aref val 0)) - (cl-incf (aref val 1) (setq time (float-time (time-subtract (current-time) entry-time)))) - (setf (aref val 2) (min time (aref val 2))) - (setf (aref val 3) (max time (aref val 3))) - (puthash key val ergoemacs-timing-hash))) - ret)) - (defvar ergoemacs--component-file-mod-time-list nil) (defun ergoemacs--emacs-state () "Return MD5 represting current Emacs state." @@ -546,58 +509,57 @@ REMOVE removes the cache insead of saving it." (defun ergoemacs-mode--setup-hash-tables (&optional store-p) "Load hash-tables using `persistent-soft' when available. When STORE-P is non-nil, save the tables." - (ergoemacs-timing setup-hash-tables - ;; (when store-p - ;; (setq ergoemacs-map-properties--create-label-function (ergoemacs-map-properties--create-label-function))) - (unless store-p - (ergoemacs-mode--setup-hash-tables--setq - nil - 'ergoemacs--last-start-emacs-state nil) - ;; Check if system state has expired the cache. - (unless (equal ergoemacs--last-start-emacs-state ergoemacs--start-emacs-state) - (ergoemacs-mode-clear-cache t) - (message "Cache reset before loading.") - (setq ergoemacs-map--cache-save t) - (setq ergoemacs--last-start-emacs-state ergoemacs--start-emacs-state) - (ergoemacs-mode--setup-hash-tables--setq - t - 'ergoemacs--last-start-emacs-state ergoemacs--last-start-emacs-state) - (ergoemacs-mode--setup-hash-tables--setq nil 'ergoemacs-require nil))) + ;; (when store-p + ;; (setq ergoemacs-map-properties--create-label-function (ergoemacs-map-properties--create-label-function))) + (unless store-p (ergoemacs-mode--setup-hash-tables--setq - store-p - 'ergoemacs-require nil - 'ergoemacs-component-hash (make-hash-table :test 'equal) - 'ergoemacs-map--hash (make-hash-table :test 'equal) - 'ergoemacs-map-properties--indirect-keymaps (make-hash-table) - 'ergoemacs-map-properties--key-struct (make-hash-table) - 'ergoemacs-map-properties--plist-hash (make-hash-table :test 'equal) - 'ergoemacs-theme-hash (make-hash-table :test 'equal) - 'ergoemacs-translate--event-hash (make-hash-table) - 'ergoemacs-translate--hash (make-hash-table) - 'ergoemacs-translation-hash (make-hash-table) - 'ergoemacs-breadcrumb-hash (make-hash-table) - 'ergoemacs-map-properties--get-or-generate-map-key most-negative-fixnum - 'ergoemacs-map-properties--before-ergoemacs nil - 'ergoemacs-map-properties--label-atoms-maps nil - ) - (when (and store-p (featurep 'persistent-soft)) - (persistent-soft-flush (ergoemacs-mode--pcache-repository)) - (with-temp-buffer - (insert-file-contents (concat pcache-directory (ergoemacs-mode--pcache-repository))) - (persistent-soft-location-destroy (ergoemacs-mode--pcache-repository)) - (goto-char (point-min)) - (while (re-search-forward " +$" nil t) - (replace-match "")) - (goto-char (point-min)) - ;; Add utf-8-emacs coding to the top. - (insert ";; -*- coding: utf-8-emacs -*-\n") - (goto-char (point-max)) - ;; Update timestamp. - (when (re-search-backward ":timestamp +[0-9.]+" nil t) - (replace-match (format ":timestamp %s" (float-time (current-time))))) - (write-region (point-min) (point-max) - (concat pcache-directory (ergoemacs-mode--pcache-repository)) - nil 1))))) + nil + 'ergoemacs--last-start-emacs-state nil) + ;; Check if system state has expired the cache. + (unless (equal ergoemacs--last-start-emacs-state ergoemacs--start-emacs-state) + (ergoemacs-mode-clear-cache t) + (message "Cache reset before loading.") + (setq ergoemacs-map--cache-save t) + (setq ergoemacs--last-start-emacs-state ergoemacs--start-emacs-state) + (ergoemacs-mode--setup-hash-tables--setq + t + 'ergoemacs--last-start-emacs-state ergoemacs--last-start-emacs-state) + (ergoemacs-mode--setup-hash-tables--setq nil 'ergoemacs-require nil))) + (ergoemacs-mode--setup-hash-tables--setq + store-p + 'ergoemacs-require nil + 'ergoemacs-component-hash (make-hash-table :test 'equal) + 'ergoemacs-map--hash (make-hash-table :test 'equal) + 'ergoemacs-map-properties--indirect-keymaps (make-hash-table) + 'ergoemacs-map-properties--key-struct (make-hash-table) + 'ergoemacs-map-properties--plist-hash (make-hash-table :test 'equal) + 'ergoemacs-theme-hash (make-hash-table :test 'equal) + 'ergoemacs-translate--event-hash (make-hash-table) + 'ergoemacs-translate--hash (make-hash-table) + 'ergoemacs-translation-hash (make-hash-table) + 'ergoemacs-breadcrumb-hash (make-hash-table) + 'ergoemacs-map-properties--get-or-generate-map-key most-negative-fixnum + 'ergoemacs-map-properties--before-ergoemacs nil + 'ergoemacs-map-properties--label-atoms-maps nil + ) + (when (and store-p (featurep 'persistent-soft)) + (persistent-soft-flush (ergoemacs-mode--pcache-repository)) + (with-temp-buffer + (insert-file-contents (concat pcache-directory (ergoemacs-mode--pcache-repository))) + (persistent-soft-location-destroy (ergoemacs-mode--pcache-repository)) + (goto-char (point-min)) + (while (re-search-forward " +$" nil t) + (replace-match "")) + (goto-char (point-min)) + ;; Add utf-8-emacs coding to the top. + (insert ";; -*- coding: utf-8-emacs -*-\n") + (goto-char (point-max)) + ;; Update timestamp. + (when (re-search-backward ":timestamp +[0-9.]+" nil t) + (replace-match (format ":timestamp %s" (float-time (current-time))))) + (write-region (point-min) (point-max) + (concat pcache-directory (ergoemacs-mode--pcache-repository)) + nil 1)))) (ergoemacs-mode--setup-hash-tables) @@ -616,8 +578,7 @@ When STORE-P is non-nil, save the tables." ergoemacs-macros ergoemacs-calculate-bindings)) (unless (featurep pkg) - (ergoemacs-timing (intern (format "load-%s" pkg)) - (load (symbol-name pkg))))) + (load (symbol-name pkg)))) (require 'unicode-fonts nil t) (defcustom ergoemacs-use-unicode-symbols nil @@ -973,19 +934,15 @@ also perform `outline-next-visible-heading'" (if ergoemacs-mode--fast-p (provide 'ergoemacs-themes) - (ergoemacs-timing ergoemacs-themes - (load "ergoemacs-themes"))) + (load "ergoemacs-themes") + ) (when ergoemacs-use-aliases - (ergoemacs-timing ergoemacs-load-aliases - (ergoemacs-load-aliases))) + (ergoemacs-load-aliases)) -(ergoemacs-timing ergoemacs-mode-intialize-hook - (run-hooks 'ergoemacs-mode-intialize-hook)) +(run-hooks 'ergoemacs-mode-intialize-hook) (setq ergoemacs--load-time (float-time (time-subtract (current-time) ergoemacs--load-time))) -(puthash 'ergoemacs-load-time (vector 1 ergoemacs--load-time ergoemacs--load-time ergoemacs--load-time (or load-file-name buffer-file-name)) - ergoemacs-timing-hash) (provide 'ergoemacs-mode) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;