* May I commit this change to loading.texi (re eval-after-load)?
@ 2007-02-03 16:11 Alan Mackenzie
2007-02-04 17:03 ` Richard Stallman
0 siblings, 1 reply; 3+ messages in thread
From: Alan Mackenzie @ 2007-02-03 16:11 UTC (permalink / raw)
To: Richard Stallman, emacs-devel
Hi, Richard and Emacs!
On Wednesday 2006-05-24, I committed an enhancement to `eval-after-load'.
In my confusion at the time (my PC had died), I didn't get around to
committing the corresponding amendment to loading.texi. I would like to
commit that change (see below) now. Is that OK?
This is the change to the code:
#########################################################################
2006-05-24 Alan Mackenzie <acm@muc.de>
* startup.el (command-line): For names of preloaded files, don't
append ".elc" (now done in Fload), and call file-truename
on the lisp directory.
* subr.el (eval-after-load): Fix the doc-string. Allow FILE to
match ANY loaded file with the right name, not just those in
load-path. Put a regexp matching the file name into
after-load-alist, rather than the name itself.
* subr.el (load-history-regexp, load-history-filename-element)
(do-after-load-evaluation): New functions.
* international/mule.el (load-with-code-conversion): Do the
eval-after-load stuff by calling do-after-load-evaluation.
2006-05-24 Alan Mackenzie <acm@muc.de>
* lread.c (Vload_history): Enhance doc-string to say that the file
is the absolute truename of the loaded file.
* lread.c (Vafter_load_alist): doc-string: state that an element
now has a regexp to match file names, not a file name as such.
* lread.c (readevalloop): Call file-truename on the name for
load-history, except at preloading time.
* lread.c (Fload): At preloading time, preserve the extension of
the filename which goes into load-history. New var hist_file_name.
* lread.c (Fload): Do eval-after-load stuff by calling the lisp
function do-after-load-evaluation.
#########################################################################
Here is my proposed change to the Elisp manual:
2007-02-03 Alan Mackenzie <acm@muc.de>
* loading.texi (Hooks for Loading): Make the description of
`eval-after-load' more detailed, and amend the description of
after-load-alist, in accordance with changes from 2006-05.
Index: loading.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/lispref/loading.texi,v
retrieving revision 1.69
diff -c -r1.69 loading.texi
*** loading.texi 16 Jan 2007 03:28:53 -0000 1.69
--- loading.texi 3 Feb 2007 15:42:04 -0000
***************
*** 903,916 ****
loaded, by calling @code{eval-after-load}.
@defun eval-after-load library form
! This function arranges to evaluate @var{form} at the end of loading the
! library @var{library}, if and when @var{library} is loaded. If
@var{library} is already loaded, it evaluates @var{form} right away.
! If @var{library} is a string, it must exactly match the argument of
! @code{load} used to load the library. To get the proper results when an
! installed library is found by searching @code{load-path}, you should not
! include any directory names in @var{library}.
@var{library} can also be a feature (i.e.@: a symbol), in which case
@var{form} is evaluated when @code{(provide @var{library})} is called.
--- 903,930 ----
loaded, by calling @code{eval-after-load}.
@defun eval-after-load library form
! This function arranges to evaluate @var{form} at the end of loading
! the file @var{library}, each time @var{library} is loaded. If
@var{library} is already loaded, it evaluates @var{form} right away.
+ Don't forget to quote @var{form}!
! Normally you just give a bare file name for @var{library}, like this:
!
! @example
! (eval-after-load "edebug" '(def-edebug-spec c-point t))
! @end example
!
! To restrict which files can trigger the evaluation, include a
! directory or an extension or both in @var{library}. Only a file whose
! absolute true name (i.e. the name with all symbolic links chased out)
! matches all the given name components will match. In the following
! example, @file{my_inst.elc} or @file{my_inst.elc.gz} in some directory
! @code{..../foo/bar} will trigger the evaluation, but not
! @file{my_inst.el}:
!
! @example
! (eval-after-load "foo/bar/my_inst.elc" @dots{})
! @end example
@var{library} can also be a feature (i.e.@: a symbol), in which case
@var{form} is evaluated when @code{(provide @var{library})} is called.
***************
*** 932,950 ****
programs meant for wider use.
@defvar after-load-alist
! This variable holds an alist of expressions to evaluate if and when
! particular libraries are loaded. Each element looks like this:
@example
! (@var{filename} @var{forms}@dots{})
@end example
! The function @code{load} checks @code{after-load-alist} in order to
! implement @code{eval-after-load}.
@end defvar
- @c Emacs 19 feature
-
@ignore
arch-tag: df731f89-0900-4389-a436-9105241b6f7a
@end ignore
--- 946,965 ----
programs meant for wider use.
@defvar after-load-alist
! This variable, an alist built by @code{eval-after-load}, holds the
! expressions to evaluate when particular libraries are loaded. Each
! element looks like this:
@example
! (@var{regexp-or-feature} @var{forms}@dots{})
@end example
! The key @var{regexp-or-feature} is either a regular expression or a
! symbol, and the value is a list of forms. The forms are evaluated when
! the key matches the the absolute true name of the file being
! @code{load}ed or the symbol being @code{provide}d.
@end defvar
@ignore
arch-tag: df731f89-0900-4389-a436-9105241b6f7a
@end ignore
--
Alan Mackenzie (Ittersbach, Germany)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: May I commit this change to loading.texi (re eval-after-load)?
2007-02-03 16:11 May I commit this change to loading.texi (re eval-after-load)? Alan Mackenzie
@ 2007-02-04 17:03 ` Richard Stallman
2007-02-04 19:00 ` Alan Mackenzie
0 siblings, 1 reply; 3+ messages in thread
From: Richard Stallman @ 2007-02-04 17:03 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: emacs-devel
! Normally you just give a bare file name for @var{library}, like this:
That's not clear, because "bare file name" is not a term we use.
You need to spell out what you mean here.
Only a file whose
! absolute true name (i.e. the name with all symbolic links chased out)
Please put a comma after "i.e.". It always needs one.
Please fix those two points and then install your change.
Thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: May I commit this change to loading.texi (re eval-after-load)?
2007-02-04 17:03 ` Richard Stallman
@ 2007-02-04 19:00 ` Alan Mackenzie
0 siblings, 0 replies; 3+ messages in thread
From: Alan Mackenzie @ 2007-02-04 19:00 UTC (permalink / raw)
To: Richard Stallman; +Cc: emacs-devel
Hi, Richard!
On Sun, Feb 04, 2007 at 12:03:19PM -0500, Richard Stallman wrote:
> ! Normally you just give a bare file name for @var{library}, like this:
> That's not clear, because "bare file name" is not a term we use.
> You need to spell out what you mean here.
DONE.
> Only a file whose
> ! absolute true name (i.e. the name with all symbolic links chased out)
> Please put a comma after "i.e.". It always needs one.
DONE.
> Please fix those two points and then install your change.
DONE.
> Thanks.
--
Alan Mackenzie (Ittersbach, Germany)
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-02-04 19:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-03 16:11 May I commit this change to loading.texi (re eval-after-load)? Alan Mackenzie
2007-02-04 17:03 ` Richard Stallman
2007-02-04 19:00 ` Alan Mackenzie
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.