summaryrefslogtreecommitdiff
path: root/lisp/loadup.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2016-05-25 22:58:18 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2016-05-25 22:58:18 -0400
commite971ce6de27f982720ef312637e1d40da80e8d1f (patch)
tree6ddb289c64ff223328de649b4411c7398bb4bc72 /lisp/loadup.el
parent1ee91bf89176251f6e399c8436dca0248cdd6f6b (diff)
downloademacs-e971ce6de27f982720ef312637e1d40da80e8d1f.tar.gz
Make autoloads populate a new definition-prefixes table
* lisp/subr.el (definition-prefixes): New hash table. (register-definition-prefixes): New function. * lisp/emacs-lisp/autoload.el (autoload-compute-prefixes): New var. (autoload--split-prefixes-1, autoload--split-prefixes) (autoload--make-defs-autoload): New functions. (autoload-defs-autoload-max-size, autoload-popular-prefixes): New vars. (autoload-generate-file-autoloads): Obey autoload-compute-prefixes. (update-directory-autoloads): Don't touch loaddefs.el if the set of autoloads hasn't changed (i.e. if only the timestamp would change). * lisp/loadup.el: Purify definition-prefixes. * lisp/w32-fns.el: Keep name space clean. (w32-set-default-process-coding-system): Rename from set-default-process-coding-system. (w32-set-system-coding-system): Rename from set-w32-system-coding-system.
Diffstat (limited to 'lisp/loadup.el')
-rw-r--r--lisp/loadup.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/lisp/loadup.el b/lisp/loadup.el
index 53fc2215a90..db3c36d1f01 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -161,6 +161,12 @@
;; In case loaddefs hasn't been generated yet.
(file-error (load "ldefs-boot.el")))
+(let ((new (make-hash-table :test 'equal)))
+ ;; Now that loaddefs has populated definition-prefixes, purify its contents.
+ (maphash (lambda (k v) (puthash (purecopy k) (purecopy v) new))
+ definition-prefixes)
+ (setq definition-prefixes new))
+
(load "emacs-lisp/nadvice")
(load "emacs-lisp/cl-preloaded")
(load "minibuffer") ;After loaddefs, for define-minor-mode.