GNU bug report logs - #3756
eval-after-load 'ffap vs provide at start of file

Previous Next

Package: emacs;

Reported by: Kevin Ryde <user42 <at> zip.com.au>

Date: Sun, 5 Jul 2009 00:55:06 UTC

Severity: normal

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 3756 in the body.
You can then email your comments to 3756 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#3756; Package emacs. (Sun, 05 Jul 2009 00:55:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kevin Ryde <user42 <at> zip.com.au>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Sun, 05 Jul 2009 00:55:07 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Kevin Ryde <user42 <at> zip.com.au>
To: bug-gnu-emacs <at> gnu.org
Subject: eval-after-load 'ffap vs provide at start of file
Date: Sun, 05 Jul 2009 10:48:24 +1000
Starting from emacs -Q, evaluating

    (progn
      (eval-after-load 'ffap
        '(setq ffap-newsgroup-heads (remove "misc" ffap-newsgroup-heads)))
      (require 'ffap))

gets an error

    void-variable ffap-newsgroup-heads

where I hoped the eval-after-load meant after ffap is available and
therefore its various variables exist.

It looks like ffap.el has (provide 'ffap) near the start of the file,
instead of at the end.  The end is usual so that eval-after-load can be
used on a feature symbol as above, is it?


In GNU Emacs 22.3.1 (i486-pc-linux-gnu, GTK+ Version 2.14.7)
 of 2009-03-31 on raven, modified by Debian
configured using `configure  '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs22:/etc/emacs:/usr/local/share/emacs/22.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/22.3/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/22.3/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_AU
  locale-coding-system: iso-8859-1
  default-enable-multibyte-characters: t




Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#3756; Package emacs. (Sun, 05 Jul 2009 02:25:06 GMT) Full text and rfc822 format available.

Message #8 received at 3756 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: Kevin Ryde <user42 <at> zip.com.au>
Cc: 3756 <at> debbugs.gnu.org
Subject: Re: bug#3756: eval-after-load 'ffap vs provide at start of file
Date: Sat, 04 Jul 2009 22:18:18 -0400
Kevin Ryde wrote:

> It looks like ffap.el has (provide 'ffap) near the start of the file,
> instead of at the end.  The end is usual so that eval-after-load can be
> used on a feature symbol as above, is it?

I don't see why the ffap one shouldn't be at the end, but as discussed
in the context of this very example last month, you cannot rely on
provide always being at the end of a file:

http://lists.gnu.org/archive/html/emacs-devel/2009-06/msg00202.html

I'll mention something about this in the doc of eval-after-load.



Reply sent to Glenn Morris <rgm <at> gnu.org>:
You have taken responsibility. (Mon, 06 Jul 2009 01:00:06 GMT) Full text and rfc822 format available.

Notification sent to Kevin Ryde <user42 <at> zip.com.au>:
bug acknowledged by developer. (Mon, 06 Jul 2009 01:00:06 GMT) Full text and rfc822 format available.

Message #13 received at 3756-done <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: 3756-done <at> debbugs.gnu.org
Subject: Re: bug#3756: eval-after-load 'ffap vs provide at start of file
Date: Sun, 05 Jul 2009 20:52:14 -0400
Doc fix for eval-after-load; ffap provide moved to end for 23.2.



Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#3756; Package emacs. (Tue, 07 Jul 2009 22:10:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kevin Ryde <user42 <at> zip.com.au>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Tue, 07 Jul 2009 22:10:04 GMT) Full text and rfc822 format available.

Message #18 received at 3756 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Kevin Ryde <user42 <at> zip.com.au>
To: Glenn Morris <rgm <at> gnu.org>
Cc: 3756 <at> debbugs.gnu.org
Subject: Re: bug#3756: eval-after-load 'ffap vs provide at start of file
Date: Wed, 08 Jul 2009 08:02:50 +1000
[Message part 1 (text/plain, inline)]
Glenn Morris <rgm <at> gnu.org> writes:
>
> http://lists.gnu.org/archive/html/emacs-devel/2009-06/msg00202.html

I didn't see that.  Doing provide when a feature is not yet ready for
use would seem fairly dubious though, in normal circumstances.

> I'll mention something about this in the doc of eval-after-load.

provide could cross-reference eval-after-load, if that helped remind to
take care with what point it's called, perhaps per below.


[loading.texi.provide-xref-eval-after-load.diff (text/x-diff, inline)]
*** loading.texi	17 Mar 2009 10:34:05 +1100	1.10
--- loading.texi	08 Jul 2009 07:40:12 +1000	
***************
*** 733,742 ****
  associated with @var{feature} are or will be available for other Lisp
  programs.
  
! The direct effect of calling @code{provide} is to add @var{feature} to
! the front of the list @code{features} if it is not already in the list.
! The argument @var{feature} must be a symbol.  @code{provide} returns
! @var{feature}.
  
  If provided, @var{subfeatures} should be a list of symbols indicating
  a set of specific subfeatures provided by this version of
--- 733,743 ----
  associated with @var{feature} are or will be available for other Lisp
  programs.
  
! The direct effect of calling @code{provide} is if not already in
! @var{features} then to add @var{feature} to the front of that list and
! call any @code{eval-after-load} code waiting for it (@pxref{Hooks for
! Loading}).  The argument @var{feature} must be a symbol.
! @code{provide} returns @var{feature}.
  
  If provided, @var{subfeatures} should be a list of symbols indicating
  a set of specific subfeatures provided by this version of

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#3756; Package emacs. (Sat, 11 Jul 2009 19:45:04 GMT) Full text and rfc822 format available.

Message #21 received at 3756 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: Kevin Ryde <user42 <at> zip.com.au>
Cc: 3756 <at> debbugs.gnu.org
Subject: Re: bug#3756: eval-after-load 'ffap vs provide at start of file
Date: Sat, 11 Jul 2009 15:39:37 -0400
Thanks; added.



bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> emacsbugs.donarmstrong.com. (Sun, 09 Aug 2009 14:24:13 GMT) Full text and rfc822 format available.

This bug report was last modified 16 years and 10 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.