From ad07fe2ca8e3e1e8685248e9ebc144a12bae3a55 Mon Sep 17 00:00:00 2001 From: Phillip Lord Date: Fri, 20 Jan 2017 15:13:27 +0000 Subject: [PATCH] Remove conditional includes from bootstrap Previously, bootstrap-emacs includes optional functionality, depending on the platform which is not needed for bootstrap function. As a result, bootstrap-emacs contains different functions in different circumstances. If ldefs-boot-auto.el is generated, then loaded functions will not be added to ldefs-boot-auto.el, although they may be required during some builds. With this change, bootstrap-emacs should always behave the same way and, therefore, require the same autoloads. * lisp/loadup.el: No longer load optional includes during bootstrap dumping. * lisp/ldefs-boot-auto.el: Regenerate. * lisp/ldefs-boot-manual.el: Add two autoloads. --- lisp/ldefs-boot-auto.el | 8 +++ lisp/ldefs-boot-manual.el | 6 ++ lisp/loadup.el | 122 ++++++++++++++++++++------------------ 3 files changed, 78 insertions(+), 58 deletions(-) diff --git a/lisp/ldefs-boot-auto.el b/lisp/ldefs-boot-auto.el index 020c6707a00..66147173d50 100644 --- a/lisp/ldefs-boot-auto.el +++ b/lisp/ldefs-boot-auto.el @@ -87,7 +87,14 @@ (autoload 'help-xref-button "help-mode" nil nil nil) (autoload 'hi-lock-face-buffer "hi-lock" nil nil nil) (autoload 'html-mode "sgml-mode" nil nil nil) +(autoload 'image-type "image" nil nil nil) +(autoload 'image-type-auto-detected-p "image" nil nil nil) (autoload 'image-type-available-p "image" nil nil nil) +(autoload 'image-type-from-buffer "image" nil nil nil) +(autoload 'image-type-from-data "image" nil nil nil) +(autoload 'image-type-from-file-header "image" nil nil nil) +(autoload 'image-type-from-file-name "image" nil nil nil) +(autoload 'imagemagick-register-types "image" nil nil nil) (autoload 'info "info" nil nil nil) (autoload 'info-complete-symbol "info-look" nil nil nil) (autoload 'info-emacs-manual "info" nil nil nil) @@ -132,6 +139,7 @@ (autoload 'time-to-days "time-date" nil nil nil) (autoload 'timezone-make-date-arpa-standard "timezone" nil nil nil) (autoload 'tmm-menubar "tmm" nil nil nil) +(autoload 'tool-bar-add-item-from-menu "tool-bar" nil nil nil) (autoload 'truncate-string-to-width "mule-util" nil nil nil) (autoload 'ucs-normalize-HFS-NFC-region "ucs-normalize" nil nil nil) (autoload 'ucs-normalize-HFS-NFD-region "ucs-normalize" nil nil nil) diff --git a/lisp/ldefs-boot-manual.el b/lisp/ldefs-boot-manual.el index 183703d25e8..2f6e3fd2094 100644 --- a/lisp/ldefs-boot-manual.el +++ b/lisp/ldefs-boot-manual.el @@ -10,6 +10,12 @@ ;; during the byte-compile phase (defvar electric-pair-text-pairs '((34 . 34))) +;; These two autoloads are needed for files.el. They are only used on +;; their respective platforms so do not get added to +;; ldefs-boot-auto.el when it is generated on a different platform. +(autoload 'dos-convert-standard-filename "dos-fns.el" nil nil nil) +(autoload 'w32-convert-standard-filename "w32-fns.el" nil nil nil) + (load "ldefs-boot-auto.el") diff --git a/lisp/loadup.el b/lisp/loadup.el index ecb72840c43..9fe52fb6e20 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -230,8 +230,11 @@ (load "jit-lock") (load "mouse") -(if (boundp 'x-toolkit-scroll-bars) - (load "scroll-bar")) + +(unless (equal (member "bootstrap" command-line-args) '("bootstrap")) + (if (boundp 'x-toolkit-scroll-bars) + (load "scroll-bar"))) + (load "select") (load "emacs-lisp/timer") (load "isearch") @@ -253,61 +256,62 @@ (load "emacs-lisp/tabulated-list") (load "buff-menu") -(if (fboundp 'x-create-frame) - (progn - (load "fringe") - ;; Needed by `imagemagick-register-types' - (load "emacs-lisp/regexp-opt") - (load "image") - (load "international/fontset") - (load "dnd") - (load "tool-bar"))) - -(if (featurep 'dynamic-setting) - (load "dynamic-setting")) - -(if (featurep 'x) - (progn - (load "x-dnd") - (load "term/common-win") - (load "term/x-win"))) - -(if (or (eq system-type 'windows-nt) - (featurep 'w32)) - (progn - (load "term/common-win") - (load "w32-vars") - (load "term/w32-win") - (load "disp-table") - (when (eq system-type 'windows-nt) - (load "w32-fns") +(unless (equal (member "bootstrap" command-line-args) '("bootstrap")) + (if (fboundp 'x-create-frame) + (progn + (load "fringe") + ;; Needed by `imagemagick-register-types' + (load "emacs-lisp/regexp-opt") + (load "image") + (load "international/fontset") + (load "dnd") + (load "tool-bar"))) + + (if (featurep 'dynamic-setting) + (load "dynamic-setting")) + + (if (featurep 'x) + (progn + (load "x-dnd") + (load "term/common-win") + (load "term/x-win"))) + + (if (or (eq system-type 'windows-nt) + (featurep 'w32)) + (progn + (load "term/common-win") + (load "w32-vars") + (load "term/w32-win") + (load "disp-table") + (when (eq system-type 'windows-nt) + (load "w32-fns") + (load "ls-lisp") + (load "dos-w32")))) + (if (eq system-type 'ms-dos) + (progn + (load "dos-w32") + (load "dos-fns") + (load "dos-vars") + ;; Don't load term/common-win: it isn't appropriate for the `pc' + ;; ``window system'', which generally behaves like a terminal. + (load "term/internal") + (load "term/pc-win") (load "ls-lisp") - (load "dos-w32")))) -(if (eq system-type 'ms-dos) - (progn - (load "dos-w32") - (load "dos-fns") - (load "dos-vars") - ;; Don't load term/common-win: it isn't appropriate for the `pc' - ;; ``window system'', which generally behaves like a terminal. - (load "term/internal") - (load "term/pc-win") - (load "ls-lisp") - (load "disp-table"))) ; needed to setup ibm-pc char set, see internal.el -(if (featurep 'ns) - (progn - (load "term/common-win") - ;; Don't load ucs-normalize.el unless uni-*.el files were - ;; already produced, because it needs uni-*.el files that might - ;; not be built early enough during bootstrap. - (when (load-history-filename-element "charprop\\.el") - (load "international/mule-util") - (load "international/ucs-normalize") - (load "term/ns-win")))) -(if (fboundp 'x-create-frame) - ;; Do it after loading term/foo-win.el since the value of the - ;; mouse-wheel-*-event vars depends on those files being loaded or not. - (load "mwheel")) + (load "disp-table"))) ; needed to setup ibm-pc char set, see internal.el + (if (featurep 'ns) + (progn + (load "term/common-win") + ;; Don't load ucs-normalize.el unless uni-*.el files were + ;; already produced, because it needs uni-*.el files that might + ;; not be built early enough during bootstrap. + (when (load-history-filename-element "charprop\\.el") + (load "international/mule-util") + (load "international/ucs-normalize") + (load "term/ns-win")))) + (if (fboundp 'x-create-frame) + ;; Do it after loading term/foo-win.el since the value of the + ;; mouse-wheel-*-event vars depends on those files being loaded or not. + (load "mwheel"))) ;; Preload some constants and floating point functions. (load "emacs-lisp/float-sup") @@ -317,8 +321,10 @@ (load "electric") (load "emacs-lisp/eldoc") (load "cus-start") ;Late to reduce customize-rogue (needs loaddefs.el anyway) -(if (not (eq system-type 'ms-dos)) - (load "tooltip")) + +(unless (equal (member "bootstrap" command-line-args) '("bootstrap")) + (if (not (eq system-type 'ms-dos)) + (load "tooltip"))) ;; This file doesn't exist when building a development version of Emacs ;; from the repository. It is generated just after temacs is built. -- 2.39.2