all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ken Raeburn <raeburn@raeburn.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: build broken: no defun org-float-time.  Who's guilty, and what does he propose?
Date: Tue, 8 Sep 2009 14:32:28 -0400	[thread overview]
Message-ID: <11A3C60B-86D3-4DA8-9C68-46CBCF23DDB0@raeburn.org> (raw)
In-Reply-To: <83k5092urt.fsf@gnu.org>

On Sep 8, 2009, at 13:47, Eli Zaretskii wrote:
>> From: Ken Raeburn <raeburn@raeburn.org>
>> Date: Tue, 8 Sep 2009 03:54:28 -0400
>> Cc: emacs-devel@gnu.org
>>
>> On Sep 7, 2009, at 23:20, Eli Zaretskii wrote:
>>>> But if a minor comment change is made in the compiler source,  
>>>> must we
>>>> recompile everything?
>>>
>>> Yes, why not?
>>
>> Excessive time spent rebuilding things that aren't going to change?
>
> This is why we want to avoid it as much as possible.  What I asked is
> why do you think we might be able to get away without it.

Ah.  Well, in the abstract, if it really is just a comment change (or  
whitespace change, or minor coding change that the optimizer boils  
down to the same byte code as the previous version), it won't affect  
the operation of the compiler and thus won't affect the result.

Concretely, there are ways we can check for that -- see if the "real"  
content of the .elc file for the compiler source has changed, by which  
I mean stuff other than the compilation info at the front.  We could  
compare most of the file content with the previous version, or get rid  
of those comments and compare entire files, and retain the old file  
versions and old timestamps on unchanged files for further dependency  
checks, if we keep relying on make to do the grunt work.  I think  
GCC's build system has some mechanisms for doing that sort of thing,  
though it's a bit awkward.

Bypassing make, or at least its timestamp checking as the primary  
mechanism, we could compute and record md5 (or sha1, or sha2) sums of  
the important parts of the files, and compare them to see if things  
have changed in any way we care about.  (E.g., foobar.elc could  
include in its compilation-info comments, "foobar.el:47ecb138...  
subr.elc:3feb9814... quux.elc:4857fabd...".  For performance, it could  
even cache its own md5 sum so we don't have to keep recomputing it.)   
The recompilation command could check the dependencies against the  
recorded sums, and if they all match, just update the timestamp on the  
output file, to keep make from re-invoking that compilation command.   
Touching subr.el could still cause a cascade of recompilation  
commands, but they'd just be updating timestamps.

Ken




  reply	other threads:[~2009-09-08 18:32 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-07  9:28 build broken: no defun org-float-time. Who's guilty, and what does he propose? Alan Mackenzie
2009-09-07  9:47 ` Andreas Schwab
2009-09-07  9:52 ` joakim
2009-09-07 10:09   ` Lennart Borgman
2009-09-07 11:37     ` joakim
2009-09-07 10:30   ` Jan D.
2009-09-07 17:42     ` Eli Zaretskii
2009-09-07 17:59       ` Ken Raeburn
2009-09-07 18:32         ` Drew Adams
2009-09-07 18:42           ` Lennart Borgman
2009-09-07 19:22             ` Ken Raeburn
2009-09-07 19:03         ` Glenn Morris
2009-09-07 19:20           ` Drew Adams
2009-09-07 20:08           ` Eli Zaretskii
2009-09-07 21:43             ` more reliable `make' Glenn Morris
2009-09-08 16:46               ` Stefan Monnier
2009-09-10  6:28                 ` Glenn Morris
2009-09-10 13:37                   ` Stefan Monnier
2009-09-07 20:59           ` build broken: no defun org-float-time. Who's guilty, and what does he propose? joakim
2009-09-07 21:39             ` Glenn Morris
2009-09-07 21:55               ` joakim
2009-09-07 21:13           ` Alan Mackenzie
2009-09-08 16:48             ` Stefan Monnier
2009-09-08 18:17               ` build broken: no defun org-float-time. A workaround Alan Mackenzie
2009-09-08 19:08                 ` Ken Raeburn
2009-09-07 20:06         ` build broken: no defun org-float-time. Who's guilty, and what does he propose? Eli Zaretskii
2009-09-07 23:39           ` Ken Raeburn
2009-09-08  2:41             ` Stephen J. Turnbull
2009-09-08  3:20             ` Eli Zaretskii
2009-09-08  7:54               ` Ken Raeburn
2009-09-08 17:47                 ` Eli Zaretskii
2009-09-08 18:32                   ` Ken Raeburn [this message]
2009-09-08 17:01           ` Stefan Monnier
2009-09-08 17:51             ` Eli Zaretskii
2009-09-09  3:14               ` Stefan Monnier
2009-09-08  2:37       ` Stephen J. Turnbull
2009-09-08  3:14         ` Eli Zaretskii
2009-09-08 17:11   ` Stefan Monnier
2009-09-07 10:05 ` Miles Bader
2009-09-07 11:15   ` joakim
2009-09-07 13:35   ` Alan Mackenzie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=11A3C60B-86D3-4DA8-9C68-46CBCF23DDB0@raeburn.org \
    --to=raeburn@raeburn.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.