Subject: 25.0.95; eval-after-load for features
From: "Roland Winkler" <[email-masked]>
To: [email-masked]
Date: Tue, 6 Sep 2016 10:11:47 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

cat > foo.el <<EOF
(eval-after-load 'foo
  (message "feature foo loaded: %s" (featurep 'foo)))
EOF

emacs -Q -l foo.el

According to the doc string of eval-after-load:

  Alternatively, FILE can be a feature (i.e. a symbol), in which case FORM
  is evaluated at the end of any file that ‘provide’s this feature.

So I would expect that the above form is not run because the file
foo.el does not provide the feature foo.  Yet the algorithm
underlying eval-after-load compares the symbol foo with the string
"foo.el" and this is sufficient to evaluate the form.

I think that the behavior described in the docstring would be
useful: my init.el is broken into smaller files which have the same
names as the features they refer to.  So I suggest to change the
behavior of eval-after-load instead of fixing its docstring.  But
there might also be other issues that I am not aware of.

In GNU Emacs 25.0.95.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2016-07-15 built on lukas
Windowing system distributor 'The X.Org Foundation', version 11.0.11600000
System Description:	Ubuntu 14.04.5 LTS