GNU bug report logs -
#13021
24.2.90; compile eval-after-load form
Previous Next
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
severity: wishlist
I think it is a good idea to compile the form that is passed to
eval-after-load. The advantage is that one gets compiler warnings and
errors and the form itself is executed faster.
This is what I use:
(defmacro eal (package &rest forms)
(declare (indent 1) (debug t))
`(,(if (if (symbolp package)
(require package nil t)
(load package t t))
'progn
(message "eal: cannot find %s" package)
'with-no-warnings)
(eval-after-load ',package
`(funcall (function ,(lambda () ,@forms))))))
This is what Michael (Heerdegen) uses:
(defun-safe init-file-eval-after-load (file &rest forms)
"Like `eval-after-load', but byte-compile FORMS before eval."
(eval-after-load file `(let ((byte-compile-log-buffer "*Warnings*")
(byte-compile-current-form
(format "`init-file-eval-after-load': %s" ',file)))
(funcall (byte-compile (lambda () ,@forms))))))
Could vanilla eval-after-load be modified so it compiles the form? I am
thinking of an optional third parameter, one that allows to either keep
the current behaviour (default), load the package & compile the form at
compile time or compile the form at run-time before evaling.
WDYT?
Christopher
This bug report was last modified 12 years and 27 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.