From 0e328d3779d1b51ed3b7316f56735640d726980d Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 15 Sep 2009 03:46:05 +0000 Subject: [PATCH] Use after-load-functions to GC after loading each file. Remove the explicit GC calls that used to be sprinkled around. --- lisp/ChangeLog | 3 +++ lisp/loadup.el | 23 ++++++++--------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5b52b49ef78..df7f76399fd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2009-09-15 Stefan Monnier + * loadup.el: Use after-load-functions to GC after loading each file. + Remove the explicit GC calls that used to be sprinkled around. + * subr.el (after-load-functions): New hook. (do-after-load-evaluation): Run it. Use string-match-p to detect `obsolete' packages, rather than painfully extracting the relevant diff --git a/lisp/loadup.el b/lisp/loadup.el index da7613bee25..63f7972b700 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -60,6 +60,10 @@ (load "emacs-lisp/backquote") (load "subr") +;; Do it after subr, since both after-load-functions and add-hook are +;; implemented in subr.el. +(add-hook 'after-load-functions '(lambda (f) (garbage-collect))) + ;; We specify .el in case someone compiled version.el by mistake. (load "version.el") @@ -82,17 +86,12 @@ (load "button") (load "startup") -(message "Lists of integers (garbage collection statistics) are normal output") -(message "while building Emacs; they do not indicate a problem.") -(message "%s" (garbage-collect)) - (condition-case nil ;; Don't get confused if someone compiled this by mistake. (load "loaddefs.el") ;; In case loaddefs hasn't been generated yet. (file-error (load "ldefs-boot.el"))) -(message "%s" (garbage-collect)) (load "abbrev") ;lisp-mode.el and simple.el use define-abbrev-table. (load "simple") @@ -159,7 +158,6 @@ (load "isearch") (load "rfn-eshadow") -(message "%s" (garbage-collect)) (load "menu-bar") (load "paths.el") ;Don't get confused if someone compiled paths by mistake. (load "emacs-lisp/lisp") @@ -169,7 +167,6 @@ (load "emacs-lisp/lisp-mode") (load "textmodes/text-mode") (load "textmodes/fill") -(message "%s" (garbage-collect)) (load "replace") (load "buff-menu") @@ -187,8 +184,6 @@ (load "term/common-win") (load "term/x-win"))) -(message "%s" (garbage-collect)) - (if (eq system-type 'windows-nt) (progn (load "w32-vars") @@ -219,22 +214,18 @@ (if (fboundp 'atan) ; preload some constants and (progn ; floating pt. functions if we have float support. (load "emacs-lisp/float-sup"))) -(message "%s" (garbage-collect)) (load "vc-hooks") (load "ediff-hook") (if (fboundp 'x-show-tip) (load "tooltip")) -(message "%s" (garbage-collect)) - ;If you want additional libraries to be preloaded and their ;doc strings kept in the DOC file rather than in core, ;you may load them with a "site-load.el" file. ;But you must also cause them to be scanned when the DOC file ;is generated. ;For other systems, you must edit ../src/Makefile.in. -(if (load "site-load" t) - (garbage-collect)) +(load "site-load" t) ;; Determine which last version number to use ;; based on the executables that now exist. @@ -327,11 +318,13 @@ (equal (nth 4 command-line-args) "bootstrap")) (setcdr load-path nil)) +(remove-hook 'after-load-functions '(lambda (f) (garbage-collect))) + (setq inhibit-load-charset-map nil) (clear-charset-maps) (garbage-collect) -;;; At this point, we're ready to resume undo recording for scratch. +;; At this point, we're ready to resume undo recording for scratch. (buffer-enable-undo "*scratch*") (if (null (garbage-collect)) -- 2.11.4.GIT