bug-make
[Top][All Lists]
Advanced

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

Re: [bug #40225] Deterministic output ordering


From: Frank Heckenbach
Subject: Re: [bug #40225] Deterministic output ordering
Date: Fri, 11 Oct 2013 05:10:40 +0200

Edward Welbourne wrote:

> Then commit all the log files to git and use git show to find out which
> of them have changed since the last build.  (I trust you can all work
> out the equivalent steps for *your* preferred SCM system.)  This only
> has to happen on the server that builds from clean on a regular basis.

Or just use diff?

> In particular, note that diffing build logs is only useful for a
> build-from-clean such as a build server does; for incremental builds,
> deterministic ordering would merely interfere with the immediacy of
> seeing my stuipid mistakes so that I can start fixing them while the
> rest of the build runs, ready for the next incremental.

Of course, for similar reasons we now have different levels of
output-sync, and that's why I think ordering can be seen as yet
another one of those levels.

Tim Murphy wrote:

> The idea of diffing 2 builds is truly a cool one - especially when
> they're huge - but I'd rather it was done according to keys or other
> factors e.g. target name.
> I'd like to compare the time it took to build various targets and find
> out why a target took so much longer in the new build. I'd like to
> know "what errors did this build gain compared to the last one" or
> "what errors were fixed?" Another is: what targets didn't get produced
> that could have been?

I'm not sure I understand the last point (with pattern rules, there
are potentially infinitely many target that could have been
produced, but aren't needed), but otherwise, sure, these are all
interesting features. However, I do think they fall in different
groups. The original request was about ordering the existing output
produced by the commands. What you describe is additional metadata
that make itself would have to generate.

Again, I'm not denying the latter could be useful. Paul once
mentioned the idea of creating a '"machine interface" mode for make,
as some other GNU CLI tools like GDB, etc. have.' Perhaps some of
those metadata (run time, targets, dependencies ...) could be
produced in this mode as well.

On the other hand, ordering commands' output seems quite a different
thing (at least implementation-wise), and since we've just
implemented output-sync and still know how it works ;), now might be
a good time ...

Paul Smith wrote:

> > $(wildcard ...)
>
> Anyway, that's up to the makefile author to deal with.

So we agree here.

About the feasibility, of course my suggestion is probably missing
some details, but it still doesn't seem that difficult to me. Do you
see any fundamental problem? Of course, normally this would be the
time for me to provide a reference implementation, but as I said,
I (or my clients) don't have a really big need for the feature right
now ...



reply via email to

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