|
From: | Howard Chu |
Subject: | Re: [RFC]serialize the output of parallel make? |
Date: | Fri, 30 Jul 2010 03:16:56 -0700 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; rv:1.9.3a6pre) Gecko/20100708 Firefox 3.6 |
Chiheng Xu wrote:
On Fri, Jul 30, 2010 at 6:01 PM, Howard Chu<address@hidden> wrote:Chiheng Xu wrote:On Fri, Jul 30, 2010 at 5:35 PM, Eli Zaretskii<address@hidden> wrote:I asked for an example. Could you please show a "messy" output and the output you'd like to have after "serialization"? TIAserially make : execute A, B, C programs, they print: A: Hello, I'm A, I am from Earth. B: The moon is my home. C: Welcome to Mars, It's an amazing planet. parallely make : the output of A, B, C programs interleave : C: Welcome to B: The moon is my A: Hello, I'm A, I am from Earth.home.Mars, It's an amazing planet.This seems like quite an extreme example. stdout is line buffered by default, so individual lines would get written atomically unless the programs you're running are doing weird things with their output. In the common case interleaving like this doesn't happen within lines, it only happens between lines of multi-line output. stderr may skew things since it's usually nonbuffered, but again, that's not the common case.I use "make -j 4" to build and test gcc, the situation above is very common.
Then it means you're getting a lot of diagnostics written to stderr, and you should probably look into why you're getting so many. I routinely do large builds with "make -j24" on a 16 core server and the output doesn't have problems like that. If you're getting lots of diagnostics while building gcc, then you're probably going to wind up with a broken compiler when it's done.
Garbage-in-garbage-out. Prettying up the make output isn't going to solve that. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/
[Prev in Thread] | Current Thread | [Next in Thread] |