;; 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")
+(load "version")
(load "widget")
(load "custom")
(load "emacs-lisp/map-ynp")
-(load "cus-start")
(load "international/mule")
(load "international/mule-conf")
(load "env")
(load "format")
(load "bindings")
+(load "cus-start")
(load "window") ; Needed here for `replace-buffer-in-windows'.
(setq load-source-file-function 'load-with-code-conversion)
(load "files")
(load "rfn-eshadow")
(load "menu-bar")
-(load "paths.el") ;Don't get confused if someone compiled paths by mistake.
+(load "paths")
(load "emacs-lisp/lisp")
(load "textmodes/page")
(load "register")
(load "emacs-lisp/lisp-mode")
(load "textmodes/text-mode")
(load "textmodes/fill")
+(load "newcomment")
(load "replace")
+(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")
;For other systems, you must edit ../src/Makefile.in.
(load "site-load" t)
+;; ¡¡¡ Big Ugly Hack !!!
+;; src/boostrap-emacs is mostly used to compile .el files, so it needs
+;; macroexp, bytecomp, cconv, and byte-opt to be fast. Generally this is done
+;; by compiling those files first, but this only makes a difference if those
+;; files are not preloaded. As it so happens, macroexp.el tends to be
+;; accidentally preloaded in src/boostrap-emacs because cl.el and cl-macs.el
+;; require it. So lets unload it here, if needed, to make sure the
+;; byte-compiled version is used.
+(if (or (not (fboundp 'macroexpand-all))
+ (byte-code-function-p (symbol-function 'macroexpand-all)))
+ nil
+ (fmakunbound 'macroexpand-all)
+ (setq features (delq 'macroexp features))
+ (autoload 'macroexpand-all "macroexp"))
+
;; Determine which last version number to use
;; based on the executables that now exist.
(if (and (or (equal (nth 3 command-line-args) "dump")
(versions (mapcar (function (lambda (name)
(string-to-number (substring name (length base)))))
files)))
+ (setq emacs-bzr-version (condition-case nil (emacs-bzr-get-version)
+ (error nil)))
;; `emacs-version' is a constant, so we shouldn't change it with `setq'.
(defconst emacs-version
(format "%s.%d"
;; At this point, we're ready to resume undo recording for scratch.
(buffer-enable-undo "*scratch*")
+(when (hash-table-p purify-flag)
+ (let ((strings 0)
+ (vectors 0)
+ (bytecodes 0)
+ (conses 0)
+ (others 0))
+ (maphash (lambda (k v)
+ (cond
+ ((stringp k) (setq strings (1+ strings)))
+ ((vectorp k) (setq vectors (1+ vectors)))
+ ((consp k) (setq conses (1+ conses)))
+ ((byte-code-function-p v) (setq bytecodes (1+ bytecodes)))
+ (t (setq others (1+ others)))))
+ purify-flag)
+ (message "Pure-hashed: %d strings, %d vectors, %d conses, %d bytecodes, %d others"
+ strings vectors conses bytecodes others)))
+
;; Avoid error if user loads some more libraries now and make sure the
;; hash-consing hash table is GC'd.
(setq purify-flag nil)