[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
load-history is incorrect
From: |
Drew Adams |
Subject: |
load-history is incorrect |
Date: |
Thu, 30 Dec 2004 23:00:20 -0800 |
In Emacs 20, each explicit `require' in a library is reflected in the entry
for that library in variable `load-history'.
In Emacs 21, the `load-history' seems to be seriously flawed (unless there
is some change in the semantics that is not reflected by the doc string).
Many explicit requires for a library are not listed in the library's entry
in load-history. This is true for both user libraries and standard,
preloaded libraries.
To pick a library in a virgin emacs (-q), look at the `load-history' entry
for, say, "term/w32-win". In the Emacs 21 file w32-win.el you find these
requires:
(require 'frame)
(require 'mouse)
(require 'scroll-bar)
(require 'faces)
(require 'select)
(require 'menu-bar)
(require 'x-dnd)
(require 'code-pages)
(if (fboundp 'new-fontset)(require 'fontset))
But in `load-history' you find only these requires in the "term/w32-win"
entry:
("term/w32-win"
(require . x-dnd)
(require . code-pages)
(require . fontset)
w32-drag-n-drop-debug w32-drag-n-drop w32-drag-n-drop-other-frame
x-command-line-resources x-handle-switch x-handle-numeric-switch
x-handle-initial-switch x-handle-iconic x-handle-xrm-switch
x-handle-geometry x-handle-name-switch
(defvar . x-display-name)
x-handle-display x-handle-args
(defvar . x-colors)
xw-defined-colors
(defvar . w32-standard-fontset-spec)
x-win-suspend-error internal-face-interactive mouse-set-font)
As another example, look at the entry for library custom - there is no
require for it in load-history, but there is a require in library custom.el.
Load a library that you define that contains several requires, and then look
at load-history. Many, perhaps most, of the requires will not be present.
I don't know what the rule is for the missing requires, but to me this is a
_serious_ problem. I've written code that lists all (i.e. recursive)
dependencies for a library (either as a tree, showing the hierarchy, or as a
flat list with no dups). The code works perfectly in Emacs 20, because the
load-history is correct: all library requires are present. The code doesn't
show complete require lists in Emacs 21 because load-history is incomplete
wrt requires for libraries.
In GNU Emacs 21.3.50.1 (i386-mingw-nt5.1.2600)
of 2004-07-26 on BERATUNG4
configured using `configure --with-gcc
(3.3) --cflags -I../../jpeg-6b-1/include -I../../libpng-1.2.4-1/include -I..
/../tiff-3.5.7/include -I../../xpm-nox-4.2.0/include -I../../zlib-1.1.4-1/in
clude'
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- load-history is incorrect,
Drew Adams <=