emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

erroneous byte-compilation during build process?


From: Stephen Berman
Subject: erroneous byte-compilation during build process?
Date: Tue, 02 May 2006 21:29:14 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

I'm running GNU Emacs 22.0.50.14 (i686-pc-linux-gnu, GTK+ Version
2.8.10) of 2006-04-17.  I think this build produced an erroneous
byte-compiled file.  As usual, I built Emacs after cvs up following
the recommendation in INSTALL.CVS:

$ ./configure --with-x-toolkit=gtk
$ make
$ cd lisp
$ make recompile EMACS=../src/emacs
$ cd ..
$ su
# make install

With my current build, I have had no reproducible crashes or other
serious problems, except that I have occasionally gotten a strange
error while using recentf-mode (if I'm right below, the particulars of
the error are, at least for now, irrelevant).  The error doesn't
usually arise when I use recentf-mode, so I had ignored it till
recently.  But the last time I got the error in ordinary use, I decide
to try to debug it.  I determined that it happens only under certain
conditions, and I traced it to a certain lisp function call, but the
strange thing is, when stepping through with edebug, the error failed
to arise.  Because of this, it occurred to me that the error might not
be in recentf.el but in recentf.elc.  So I made a fresh
byte-compilation of the source file and copied it to the install
directory and loaded recentf, making sure the conditions that give
rise to error were satisfied, and sure enough, the error failed to
occur.  Then I reinstalled the original byte-compiled file and
repeated the test, and got the error again.  So I conclude that the
recentf.elc made by building Emacs is somehow erroneous.

Is my conclusion plausible?  If so, is it cause for concern that there
may be other erroneous byte-compiled files in the installation tree?
And does this indicate a bug in the byte compiler, or could something
else induce the error?  The two recentf.elc files -- the one made by
the build process and the one I byte-compiled from source -- differ in
almost every line, as shown by diff -a, but I don't know what the
differences mean: as far as I can tell, they only differ in cons cells
like this:

19c19
< (defvar recentf-list nil (#$ . 677))
---
> (defvar recentf-list nil (#$ . 671))

I also disassembled the function where the error occurs, once with the
original recentf.elc installed and once with the new byte-compilation
I made, but the outputs were identical.  Does this make sense?  Is
there a way to check the correctness of a byte-compilation of a source
file?

Steve Berman





reply via email to

[Prev in Thread] Current Thread [Next in Thread]