--- Begin Message ---
Subject: |
after-load-functions: files are not absolute, some are missed |
Date: |
Thu, 17 Sep 2009 19:02:51 -0400 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
In the current CVS trunk, I found myself having a (slight) need for a
list of the dumped lisp files. I thought a simple patch like the
following would work, but it has some problems:
i) the file names stored are not absolute, though the doc of
after-load-functions says they should be. (It's actually better in
this case that they are non-absolute, but it conflicts with the doc.)
ii) some files are missing. It turns out it is the non-compiled ones
loaded after the setting of load-source-file-function. If this is
non-nil, looks like Fload returns before running `after-load-functions'?
*** loadup.el 15 Sep 2009 03:46:08 -0000 1.184
--- loadup.el 17 Sep 2009 22:57:00 -0000
***************
*** 64,69 ****
--- 64,79 ----
;; implemented in subr.el.
(add-hook 'after-load-functions '(lambda (f) (garbage-collect)))
+ (defvar dumped-lisp-files nil
+ "List of Lisp files dumped with (i.e., compiled into) this Emacs.")
+
+ (or dumped-lisp-files
+ (progn
+ (setq dumped-lisp-files '("subr" "emacs-lisp/backquote"
+ "emacs-lisp/byte-run"))
+ (add-hook 'after-load-functions
+ '(lambda (f) (add-to-list 'dumped-lisp-files f)))))
+
;; We specify .el in case someone compiled version.el by mistake.
(load "version.el")
***************
*** 318,323 ****
--- 328,335 ----
(equal (nth 4 command-line-args) "bootstrap"))
(setcdr load-path nil))
+ (remove-hook 'after-load-functions
+ '(lambda (f) (add-to-list 'dumped-lisp-files f)))
(remove-hook 'after-load-functions '(lambda (f) (garbage-collect)))
(setq inhibit-load-charset-map nil)
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#4473: after-load-functions: files are not absolute, some are missed |
Date: |
Fri, 18 Sep 2009 02:25:23 -0400 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Juanma Barranquero wrote:
> During preloading, the file name recorded is relative to the main Lisp
> directory. These file names are converted to absolute at startup.
>
> So perhaps the docstring of `after-load-functions' should be fixed to
> note this discrepancy.
Bah, it's a fairly obscure use case, that turns out not to even be
necessary in this case. So probably not worth mentioning.
Thanks for setting me straight.
--- End Message ---