emacs-devel
[Top][All Lists]
Advanced

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

Re: Skipping unexec via a big .elc file


From: Ken Raeburn
Subject: Re: Skipping unexec via a big .elc file
Date: Mon, 6 Feb 2017 10:20:59 -0500

And now I’ve got a *possible* explanation for why I’m seeing differences in 
some .elc files.

It appears that the .elc output can vary depending on whether other loaded Lisp 
code was compiled or not.

I found differences in diary-lib.elc between two of my build trees 
(raeburn-startup branch, and the branch point).  In the first function I looked 
at, the differences came down to this:

335     constant  (12 31 -1)   constant  (12 31 -1)
336     dup                    dup                  
337     varbind   date         varbind    date      
339     dup                    varbind    date      
340     varbind   date         constant  (12 31 -1)
342     car                    car                  
343     unbind    1            unbind     1

The constant here comes from calendar-absolute-from-gregorian, a defsubst in 
calendar.el.  I tried with one source base (at the branch point), compiling 
diary-lib.el with calendar.elc present, and again with calendar.elc missing so 
that calendar.el would get used.  The generated .elc files showed the same 
differences.

This is arguably a bug, but not one added by the big-elc changes.

I almost always build with a make option like “-j4”, so the timing of byte 
compilations of different files relative to one another isn’t entirely 
predictable.  This *could* account for a lot of differences I’m seeing.  It’s 
not a sure thing that this sort of thing is the only cause of differences; I’ll 
have to do a fully serialized bootstrap of both versions of the code to see.

Ken


reply via email to

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