diff --git a/init.el b/init.el index afda2d3d6..e54173824 100644 --- a/init.el +++ b/init.el @@ -27,35 +27,38 @@ ;; ;;; License: MIT +(defvar doom-gc-cons-threshold (* 8 1024 1024) + "The default value to use for `gc-cons-threshold'.") + + (defvar doom--file-name-handler-alist file-name-handler-alist) - (unless after-init-time - ;; A big contributor to long startup times is the garbage collector, so we - ;; up its memory threshold, temporarily and reset it later in - ;; `doom|finalize'. - (setq gc-cons-threshold 402653184 - gc-cons-percentage 1.0 - ;; consulted on every `require', `load' and various file reading - ;; functions. You get a minor speed up by nooping this. - file-name-handler-alist nil)) + ;; A big contributor to long startup times is the garbage collector, so we up + ;; its memory threshold, temporarily and reset it later in + ;; `doom|disable-startup-optimizations'. + (setq gc-cons-threshold most-positive-fixnum) + ;; This is consulted on every `require', `load' and various file reading + ;; functions. You get a minor speed up by nooping this. + (setq file-name-handler-alist nil)) -(defun doom|finalize () +(defun doom|disable-startup-optimizations () "Resets garbage collection settings to reasonable defaults (if you don't do this, you'll get stuttering and random freezes) and resets `file-name-handler-alist'." (setq file-name-handler-alist doom--file-name-handler-alist - gc-cons-threshold 16777216 - gc-cons-percentage 0.15)) + gc-cons-threshold doom-gc-cons-threshold) + (makunbound 'doom--file-name-handler-alist)) + +(add-hook 'emacs-startup-hook #'doom|disable-startup-optimizations) +(add-hook 'doom-reload-hook #'doom|disable-startup-optimizations) -(add-hook 'emacs-startup-hook #'doom|finalize) -(add-hook 'doom-reload-hook #'doom|finalize) ;; Ensure Doom is always running out of this file's directory -(setq user-emacs-directory (file-name-directory load-file-name) - ;; In noninteractive sessions, we hope that non-byte-compiled files will - ;; take precedence over byte-compiled ones, however, if you're getting odd - ;; recursive load errors, it may help to set this to nil. - load-prefer-newer noninteractive) +(setq user-emacs-directory (file-name-directory load-file-name)) +;; In noninteractive sessions, we hope that non-byte-compiled files will take +;; precedence over byte-compiled ones, however, if you're getting odd recursive +;; load errors, it may help to set this to nil. +(setq load-prefer-newer noninteractive) ;; Let 'er rip! (require 'core (concat user-emacs-directory "core/core"))