summaryrefslogtreecommitdiff
path: root/lisp/loadup.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/loadup.el')
-rw-r--r--lisp/loadup.el21
1 files changed, 17 insertions, 4 deletions
diff --git a/lisp/loadup.el b/lisp/loadup.el
index 21c64a8c3b4..5c16464282b 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -67,6 +67,10 @@
(let ((dir (car load-path)))
;; We'll probably overflow the pure space.
(setq purify-flag nil)
+ ;; Value of max-lisp-eval-depth when compiling initially.
+ ;; During bootstrapping the byte-compiler is run interpreted when
+ ;; compiling itself, which uses a lot more stack than usual.
+ (setq max-lisp-eval-depth 2200)
(setq load-path (list (expand-file-name "." dir)
(expand-file-name "emacs-lisp" dir)
(expand-file-name "language" dir)
@@ -74,10 +78,6 @@
(expand-file-name "textmodes" dir)
(expand-file-name "vc" dir)))))
-;; Prevent build-time PATH getting stored in the binary.
-;; Mainly cosmetic, but helpful for Guix. (Bug#20330)
-(setq exec-path nil)
-
(if (eq t purify-flag)
;; Hash consing saved around 11% of pure space in my tests.
(setq purify-flag (make-hash-table :test 'equal :size 80000)))
@@ -157,9 +157,16 @@
;; 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.
+(load "obarray") ;abbrev.el is implemented in terms of obarrays.
(load "abbrev") ;lisp-mode.el and simple.el use define-abbrev-table.
(load "simple")
@@ -420,6 +427,12 @@ lost after dumping")))
(message "Pure-hashed: %d strings, %d vectors, %d conses, %d bytecodes, %d others"
strings vectors conses bytecodes others)))
+;; Prevent build-time PATH getting stored in the binary.
+;; Mainly cosmetic, but helpful for Guix. (Bug#20330)
+;; Do this here, rather than earlier, so that the above code
+;; can invoke Git commands and the like.
+(setq exec-path nil)
+
;; Avoid error if user loads some more libraries now and make sure the
;; hash-consing hash table is GC'd.
(setq purify-flag nil)