bug-make
[Top][All Lists]
Advanced

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

[bug #40225] Deterministic output ordering


From: Paul D. Smith
Subject: [bug #40225] Deterministic output ordering
Date: Sun, 24 Nov 2013 04:05:42 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36

Update of bug #40225 (project make):

           Triage Status:                    None => Major Effort           

    _______________________________________________________

Follow-up Comment #5:

I don't think Frank's suggestion below will work (or maybe I misunderstood
it).  It's not enough to remember the order in which target recipes were
started, because in parallel builds the order of starting targets can be
different.  Consider a makefile like:


foo: slow fast
slow: slower
fast: faster


In a serial make the targets are run as slower -> slow -> faster -> fast ->
foo, so that's the order in which we'd always want to see the output.

But in parallel make with -j2 for example, the targets will be run as slower
-> faster -> fast -> slow -> foo.

What we'd need to do is remember the order in which make _would_ have built
the targets, if running in a serial way.  In order for that to work, we'd need
to keep an ordered list of the targets we visit as we walk the dependency
graph, and we'd need to convince ourselves that even with parallelism enabled
we will walk the graph the same way without skipping any nodes (that is, we
need to be sure that we won't jump to another branch of the graph because we
know that this branch is blocked by a target currently being built).

These changes would need to be made above the job layer, in remake.c which is
where the dependency graph is walked.  Frank is correct that we'd need to
separate the output dump function out and hoist it up a layer, so that it
could be done in the proper order.

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?40225>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

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