GNU bug report logs - #11649
Some compilation woes

Previous Next

Package: emacs;

Reported by: Juanma Barranquero <lekktu <at> gmail.com>

Date: Fri, 8 Jun 2012 13:23:02 UTC

Severity: normal

Found in version 24.1.50

Done: Juanma Barranquero <lekktu <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #29 received at 11649 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Juanma Barranquero <lekktu <at> gmail.com>, 11649 <at> debbugs.gnu.org
Subject: Re: bug#11649: 24.1.50; Some compilation woes
Date: Sat, 09 Jun 2012 21:08:41 -0400
> By contrast, on MS-Windows, all of the Lisp files are compiled with
> the bootstrapped Emacs executable, so they all are compiled with the
> interpreted byte compiler.

Ahh... that could explain this high stack use.  That should also impose
a fairly high impact on compilation speed.

>> In toplevel form:
>> textmodes/rst.el:120:1:Error: Invalid byte code in
>> c:/emacs/trunk/lisp/emacs-lisp/cl-macs.elc
>> Checking c:/emacs/trunk/lisp/url...
>> Checking c:/emacs/trunk/lisp/vc...
>> Compiling c:emacs/repo/lisp/vc/pcvs.el...
>> Compiler-macro error: (error "Invalid byte code in
>> c:/emacs/trunk/lisp/emacs-lisp/cl-macs.elc")
>> Compiler-macro error: (error "Invalid byte code in
>> c:/emacs/trunk/lisp/emacs-lisp/cl-macs.elc")
>> etc
> I confirm these.  They also happen on GNU/Linux.  My interpretation of
> this is that some of the files compiled by bootstrap-emacs produce
> invalid .elc files (e.g., cl-macs.elc, cl-lib.elc, and pvcs-util.elc),
> because once they are compiled by the non-bootstrap Emacs executable,
> the errors go away.  Stefan, can you please look into this?

Usually "Invalid byte code in <foo>" happens because <foo> is
byte-compile-dynamic (as is the case for cl-macs) and you try to call
a function from it after byte-compiling a new version of the file.
More specifically, the scenario is:
1- load cl-macs.elc.
2- don't call function <bla>.
3- change cl-macs.elc.
4- call <bla> which is dynamically loaded from cl-macs.elc.
5- now the offset loaded at point 1 is not valid any more, so you get an
   error: you need to re-load cl-macs.elc.
If the above cannot be explained by this scenario, we apparently have
a serious new bug.


        Stefan




This bug report was last modified 13 years and 57 days ago.

Previous Next


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