diff options
author | Phillip Lord <phillip.lord@russet.org.uk> | 2016-10-27 08:07:05 +0100 |
---|---|---|
committer | Phillip Lord <phillip.lord@russet.org.uk> | 2016-12-13 22:15:32 +0000 |
commit | c27b645956a11fab1dd8fa189254d525390958f5 (patch) | |
tree | a32dc7bbc8758a5656b2be8f712614a9085592d6 /lisp | |
parent | 9e6618becaa15b104f18d54371f35f065f430f81 (diff) | |
download | emacs-c27b645956a11fab1dd8fa189254d525390958f5.tar.gz emacs-c27b645956a11fab1dd8fa189254d525390958f5.tar.bz2 emacs-c27b645956a11fab1dd8fa189254d525390958f5.zip |
Replace ldefs-boot with a much smaller file
* Makefile.in (bootstrap-build,generate-ldefs-boot): New targets.
(bootstrap): Depend on bootstrap-build.
* admin/ldefs-clean.el: New file.
* lisp/Makefile.in (compile-first): Depend on loaddefs.el
* lisp/ldefs-boot.el: Remove.
* lisp/ldefs-boot-auto.el: New file.
* lisp/ldefs-boot-manual.el: New file.
* lisp/loadup.el: Load ldefs-boot-manual.el.
* src/emacs.c (generating_ldefs_boot): New variable.
(main): Check whether we are generating ldefs.
* src/eval.c (autoload-do-load): Dump autoload forms to stderr when
requested.
* src/lisp.h (generating_ldefs_boot): New variable.
* admin/gitmerge.el, admin/make-tarball.txt, admin/notes/copyright,
lisp/Makefile.in, lisp/cus-dep.el, lisp/emacs-lisp/elint.el,
lisp/finder.el, lisp/loadup.el, msdos/mainmake.v2: Update reference to
ldefs-boot.
* admin/update_autogen: Alter mechanism for ldefs-boot generation.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/Makefile.in | 6 | ||||
-rw-r--r-- | lisp/cus-dep.el | 2 | ||||
-rw-r--r-- | lisp/emacs-lisp/elint.el | 2 | ||||
-rw-r--r-- | lisp/finder.el | 4 | ||||
-rw-r--r-- | lisp/ldefs-boot-auto.el | 125 | ||||
-rw-r--r-- | lisp/ldefs-boot-manual.el | 19 | ||||
-rw-r--r-- | lisp/loadup.el | 24 |
7 files changed, 164 insertions, 18 deletions
diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 12bb9c7a3ce..34f2b2c8cfc 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -230,7 +230,7 @@ FORCE: tagsfiles = $(shell find ${srcdir} -name '*.el') tagsfiles := $(filter-out ${srcdir}/%loaddefs.el,${tagsfiles}) -tagsfiles := $(filter-out ${srcdir}/ldefs-boot.el,${tagsfiles}) +tagsfiles := $(filter-out ${srcdir}/ldefs-boot%.el,${tagsfiles}) tagsfiles := $(filter-out ${srcdir}/eshell/esh-groups.el,${tagsfiles}) ETAGS = ../lib-src/etags${EXEEXT} @@ -283,7 +283,7 @@ $(THEFILE)c: .PHONY: compile-first compile-main compile compile-always -compile-first: $(COMPILE_FIRST) +compile-first: loaddefs.el $(COMPILE_FIRST) # In 'compile-main' we could directly do # ... | xargs $(MAKE) @@ -450,7 +450,7 @@ check-declare: check-defun-dups: sed -n -e '/^(defun /s/\(.\)(.*/\1/p' \ $$(find . -name '*.el' -print | \ - grep -Ev '(loaddefs|ldefs-boot)\.el') | sort | uniq -d + grep -Ev '(loaddefs|ldefs-boot*)\.el') | sort | uniq -d # Dependencies diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el index b31c60f98eb..90da4a8aa0e 100644 --- a/lisp/cus-dep.el +++ b/lisp/cus-dep.el @@ -33,7 +33,7 @@ ;; See finder-no-scan-regexp in finder.el. (defvar custom-dependencies-no-scan-regexp "\\(^\\.#\\|\\(loaddefs\\|\ -ldefs-boot\\|cus-load\\|finder-inf\\|esh-groups\\|subdirs\\)\\.el$\\)" +ldefs-boot.*\\|cus-load\\|finder-inf\\|esh-groups\\|subdirs\\)\\.el$\\)" "Regexp matching file names not to scan for `custom-make-dependencies'.") (require 'autoload) diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el index 7f0f947ec04..ab0a54c540e 100644 --- a/lisp/emacs-lisp/elint.el +++ b/lisp/emacs-lisp/elint.el @@ -105,7 +105,7 @@ are as follows, and suppress messages about the indicated features: :version "23.2" :group 'elint) -(defcustom elint-directory-skip-re "\\(ldefs-boot\\|loaddefs\\)\\.el\\'" +(defcustom elint-directory-skip-re "\\(ldefs-boot.*\\|loaddefs\\)\\.el\\'" "If nil, a regexp matching files to skip when linting a directory." :type '(choice (const :tag "Lint all files" nil) (regexp :tag "Regexp to skip")) diff --git a/lisp/finder.el b/lisp/finder.el index da537a59cc1..e6d666a5173 100644 --- a/lisp/finder.el +++ b/lisp/finder.el @@ -130,8 +130,8 @@ Keywords and package names both should be symbols.") ;; useful, and because in parallel builds of Emacs they may get ;; modified while we are trying to read them. ;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-01/msg00469.html -;; ldefs-boot is not auto-generated, but has nothing useful. -(defvar finder-no-scan-regexp "\\(^\\.#\\|\\(loaddefs\\|ldefs-boot\\|\ +;; ldefs-boot-* are not auto-generated during build, but has nothing useful. +(defvar finder-no-scan-regexp "\\(^\\.#\\|\\(loaddefs\\|ldefs-boot-.*\\|\ cus-load\\|finder-inf\\|esh-groups\\|subdirs\\|leim-list\\)\\.el$\\)" "Regexp matching file names not to scan for keywords.") diff --git a/lisp/ldefs-boot-auto.el b/lisp/ldefs-boot-auto.el new file mode 100644 index 00000000000..914fec8e1e1 --- /dev/null +++ b/lisp/ldefs-boot-auto.el @@ -0,0 +1,125 @@ +;; This file is autogenerated by admin/ldefs-clean.el +;; Do not edit +(autoload 'Info-directory "info" nil nil nil) +(autoload 'Info-index "info" nil nil nil) +(autoload 'View-exit-and-edit "view" nil nil nil) +(autoload 'add-change-log-entry "add-log" nil nil nil) +(autoload 'add-log-current-defun "add-log" nil nil nil) +(autoload 'batch-byte-compile "bytecomp" nil nil nil) +(autoload 'browse-url "browse-url" nil nil nil) +(autoload 'buffer-face-mode "face-remap" nil nil nil) +(autoload 'byte-compile "bytecomp" nil nil nil) +(autoload 'byte-compile-disable-warning "bytecomp" nil nil nil) +(autoload 'byte-compile-enable-warning "bytecomp" nil nil nil) +(autoload 'byte-compile-file "bytecomp" nil nil nil) +(autoload 'byte-compile-inline-expand "byte-opt" nil nil nil) +(autoload 'byte-compile-unfold-lambda "byte-opt" nil nil nil) +(autoload 'byte-optimize-form "byte-opt" nil nil nil) +(autoload 'byte-optimize-lapcode "byte-opt" nil nil nil) +(autoload 'byte-recompile-directory "bytecomp" nil nil nil) +(autoload 'char-displayable-p "mule-util" nil nil nil) +(autoload 'color-name-to-rgb "color" nil nil nil) +(autoload 'comint-redirect-results-list-from-process "comint" nil nil nil) +(autoload 'comint-redirect-send-command-to-process "comint" nil nil nil) +(autoload 'compilation-mode "compile" nil nil nil) +(autoload 'compilation-shell-minor-mode "compile" nil nil nil) +(autoload 'compilation-start "compile" nil nil nil) +(autoload 'create-image "image" nil nil nil) +(autoload 'custom-save-all "cus-edit" nil nil nil) +(autoload 'customize-face "cus-edit" nil nil nil) +(autoload 'customize-group "cus-edit" nil nil nil) +(autoload 'customize-option "cus-edit" nil nil nil) +(autoload 'customize-set-variable "cus-edit" nil nil nil) +(autoload 'debug "debug" nil nil nil) +(autoload 'define-ccl-program "ccl" nil nil t) +(autoload 'define-derived-mode "derived" nil nil t) +(autoload 'define-minor-mode "easy-mmode" nil nil t) +(autoload 'delete-extract-rectangle "rect" nil nil nil) +(autoload 'describe-char "descr-text" nil nil nil) +(autoload 'describe-function "help-fns" nil nil nil) +(autoload 'describe-function-1 "help-fns" nil nil nil) +(autoload 'describe-package "package" nil nil nil) +(autoload 'describe-variable "help-fns" nil nil nil) +(autoload 'desktop-save "desktop" nil nil nil) +(autoload 'diff-mode "diff-mode" nil nil nil) +(autoload 'dired "dired" nil nil nil) +(autoload 'dired-mode "dired" nil nil nil) +(autoload 'dired-noselect "dired" nil nil nil) +(autoload 'display-call-tree "bytecomp" nil nil nil) +(autoload 'display-warning "warnings" nil nil nil) +(autoload 'easy-menu-create-menu "easymenu" nil nil nil) +(autoload 'ediff-patch-file "ediff" nil nil nil) +(autoload 'edit-kbd-macro "edmacro" nil nil nil) +(autoload 'extract-rectangle "rect" nil nil nil) +(autoload 'find-definition-noselect "find-func" nil nil nil) +(autoload 'find-function-search-for-symbol "find-func" nil nil nil) +(autoload 'find-lisp-object-file-name "help-fns" nil nil nil) +(autoload 'find-variable-noselect "find-func" nil nil nil) +(autoload 'format-kbd-macro "edmacro" nil nil nil) +(autoload 'goto-address-mode "goto-addr" nil nil nil) +(autoload 'grep-compute-defaults "grep" nil nil nil) +(autoload 'help-C-file-name "help-fns" nil nil nil) +(autoload 'help-buffer "help-mode" nil nil nil) +(autoload 'help-insert-xref-button "help-mode" nil nil nil) +(autoload 'help-make-xrefs "help-mode" nil nil nil) +(autoload 'help-mode "help-mode" nil nil nil) +(autoload 'help-setup-xref "help-mode" nil nil nil) +(autoload 'help-with-tutorial "tutorial" nil nil nil) +(autoload 'help-xref-button "help-mode" nil nil nil) +(autoload 'hi-lock-face-buffer "hi-lock" nil nil nil) +(autoload 'image-type-available-p "image" nil nil nil) +(autoload 'info "info" nil nil nil) +(autoload 'info-emacs-manual "info" nil nil nil) +(autoload 'insert-image "image" nil nil nil) +(autoload 'insert-rectangle "rect" nil nil nil) +(autoload 'isearch-process-search-multibyte-characters "isearch-x" nil nil nil) +(autoload 'jka-compr-uninstall "jka-compr" nil nil nil) +(autoload 'log-edit "log-edit" nil nil nil) +(autoload 'log-view-mode "log-view" nil nil nil) +(autoload 'lookup-nested-alist "mule-util" nil nil nil) +(autoload 'make-display-table "disp-table" nil nil nil) +(autoload 'make-glyph-code "disp-table" nil nil nil) +(autoload 'multi-isearch-buffers "misearch" nil nil nil) +(autoload 'multi-isearch-buffers-regexp "misearch" nil nil nil) +(autoload 'multi-isearch-files "misearch" nil nil nil) +(autoload 'multi-isearch-files-regexp "misearch" nil nil nil) +(autoload 'open-network-stream "network-stream" nil nil nil) +(autoload 'package-initialize "package" nil nil nil) +(autoload 'parse-time-string "parse-time" nil nil nil) +(autoload 'pp "pp" nil nil nil) +(autoload 'pp-buffer "pp" nil nil nil) +(autoload 'read-kbd-macro "edmacro" nil nil nil) +(autoload 'regexp-opt "regexp-opt" nil nil nil) +(autoload 'rx "rx" nil nil t) +(autoload 'seconds-to-string "time-date" nil nil nil) +(autoload 'seconds-to-time "time-date" nil nil nil) +(autoload 'server-start "server" nil nil nil) +(autoload 'set-nested-alist "mule-util" nil nil nil) +(autoload 'smerge-mode "smerge-mode" nil nil nil) +(autoload 'smerge-start-session "smerge-mode" nil nil nil) +(autoload 'standard-display-8bit "disp-table" nil nil nil) +(autoload 'tags-query-replace "etags" nil nil nil) +(autoload 'tags-search "etags" nil nil nil) +(autoload 'text-scale-increase "face-remap" nil nil nil) +(autoload 'thing-at-point "thingatpt" nil nil nil) +(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 'truncate-string-to-width "mule-util" nil nil nil) +(autoload 'url-handler-mode "url-handlers" nil nil nil) +(autoload 'variable-at-point "help-fns" nil nil nil) +(autoload 'vc-register "vc" nil nil nil) +(autoload 'vc-responsible-backend "vc" nil nil nil) +(autoload 'vc-transfer-file "vc" nil nil nil) +(autoload 'view-buffer "view" nil nil nil) +(autoload 'view-buffer-other-window "view" nil nil nil) +(autoload 'view-file "view" nil nil nil) +(autoload 'view-mode-enter "view" nil nil nil) +(autoload 'visit-tags-table "etags" nil nil nil) +(autoload 'warn "warnings" nil nil nil) +(autoload 'wdired-change-to-wdired-mode "wdired" nil nil nil) +(autoload 'widget-value "wid-edit" nil nil nil) +;; Local Variables: +;; no-byte-compile: t +;; no-update-autoloads: t +;; End: diff --git a/lisp/ldefs-boot-manual.el b/lisp/ldefs-boot-manual.el new file mode 100644 index 00000000000..183703d25e8 --- /dev/null +++ b/lisp/ldefs-boot-manual.el @@ -0,0 +1,19 @@ +;; These appear to be necessary as they are used elsewhere in macro definitions. +(load "emacs-lisp/gv.el") +(load "emacs-lisp/nadvice.el") +(load "emacs-lisp/inline.el") + +;; This variable is used by bytecomp.el +(defvar warning-series nil) + +;; This variable is used by emacs-lisp-mode which is used heavily +;; during the byte-compile phase +(defvar electric-pair-text-pairs '((34 . 34))) + + +(load "ldefs-boot-auto.el") + +;; Local Variables: +;; no-byte-compile: t +;; no-update-autoloads: t +;; End: diff --git a/lisp/loadup.el b/lisp/loadup.el index 5c16464282b..e9dd683b283 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -143,19 +143,21 @@ (load "button") ;; We don't want to store loaddefs.el in the repository because it is -;; a generated file; but it is required in order to compile the lisp files. -;; When bootstrapping, we cannot generate loaddefs.el until an -;; emacs binary has been built. We therefore compromise and keep -;; ldefs-boot.el in the repository. This does not need to be updated -;; as often as the real loaddefs.el would. Bootstrap should always -;; work with ldefs-boot.el. Therefore, Whenever a new autoload cookie -;; gets added that is necessary during bootstrapping, ldefs-boot.el -;; should be updated by overwriting it with an up-to-date copy of -;; loaddefs.el that is uncorrupted by local changes. -;; autogen/update_autogen can be used to periodically update ldefs-boot. +;; a generated file; but it is required in order to compile the lisp +;; files. When bootstrapping, we cannot generate loaddefs.el until an +;; emacs binary has been built. We therefore support the build with +;; two files, ldefs-boot-manual.el and ldefs-boot-auto.el, which +;; contain the autoloads that are actually called during bootstrap. +;; These do not need to be updated as often as the real loaddefs.el +;; would. Bootstrap should always work with ldefs-boot-manual.el. +;; Therefore, Whenever a new autoload cookie gets added that is +;; necessary during bootstrapping, ldefs-boot-auto.el should be +;; updated using the "generate-ldefs-boot" make target. +;; autogen/update_autogen can be used to periodically update +;; ldefs-boot. (condition-case nil (load "loaddefs.el") ;; In case loaddefs hasn't been generated yet. - (file-error (load "ldefs-boot.el"))) + (file-error (load "ldefs-boot-manual.el"))) (let ((new (make-hash-table :test 'equal))) ;; Now that loaddefs has populated definition-prefixes, purify its contents. |