Subject: bug#5068: 23.1; doc of load-history

From: "Drew Adams" <[email-masked]>
Date: Sat, 28 Nov 2009 08:47:23 -0800

Oddly enough, neither the doc string nor the Elisp manual mentions
that `load-history' is in fact a load history. They do not say that
what is in the list is a record of what has _already been_ loaded.
 
If you read the doc, there is no way to know that the files listed in
the variable's list value have already been loaded. It reads like a
declarative statement of the mappings between files and their
contents, without any indication that the files listed have in fact
been loaded.
 
No, that fact is not obvious. Look at the doc string:
 
 "Alist mapping file names to symbols and features."
 
And then it describes the format of the alist. But it doesn't say that
each of the files has actually been loaded. The closest it comes is
this:
 
 "The file name is absolute and is the true file name (i.e. it
  doesn't contain symbolic links) of the loaded file."

This is the closest it comes, because this is the only place where
"loaded" is used.
 
But that statement can be read as meaning that this is the name of
a file that contains the definitions that follow, if and when this
file is ever loaded. The real import of that statement concerns
the nature of the file-name entry (absolute, no symlink).
 
Likewise, the Elisp manual:
 
 "This variable's value is an alist connecting library file names
  with the names of functions and variables they define, the
  features they provide, and the features they require."
 
This is even less correct/complete. It should not be phrased in terms
of "features", "provide", and "require". Many of the entries in
`load-history' are for files that are not `require'd, and have no
features that are `provide'd - buff-menu.elc, for example.
 
Please state explicitly that this variable records the files that have
already been loaded (including preloaded), and the functions etc. that
were defined when they were loaded.

In GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600)
 of 2009-07-29 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.4)'