> GNU Make has supported non-interleaved output since version 4.0
(released in 2013).

Is this with the GNU option --output-sync?

GNU make 4.4.1 interleaves output on macOS by default.

I wish the capability were opt out. Anyone that fixated on performance will 
have bigger problems due to the sheer number of log lines involved, nevermind 
concurrency issues.

Cheers,

Andrew
[email protected]


On Tuesday, October 29th, 2024 at 2:58 PM, Paul Smith <[email protected]> wrote:

> On Tue, 2024-10-29 at 18:54 +0000, Andrew via austin-group-l at The
> Open Group wrote:
> 
> > Ideally, yes.
> > 
> > Not certain that 100% of make environments have that exact command
> > available (e.g. Command Prompt, PowerShell).
> > 
> > It's also more efficient to query an OS API than to create a new
> > process and parse the I/O streams.
> > 
> > I propose attempting to query first, and apply a default of 4 as a
> > fallback.
> 
> 
> I don't think it's correct for the ISO standard to mandate this, at
> least not until/unless there's existing behavior to standardize.
> 
> I'm not willing to support "-j" by itself having this behavior, in GNU
> Make. Many users of GNU Make combine -j alone, which means something
> very different than -jN for some integer N, with the -l option to limit
> the number of parallel jobs by system load rather than some hardcoded
> number. In theory this is a much better/more reliable way to do it.
> 
> We could choose some value N to mean "pick a good default"; maybe
> something like "-j0".
> 
> I have to say that choosing a correct N value is difficult, and only
> getting moreso. There are an increasing number of other build tools
> which are themselves multithreaded, such as linkers etc., that make
> could invoke, so just choosing "number of cores" can easily be the
> wrong thing depending on your build and what tools it invokes.
> 
> > Note that make implementations such as GNU currently interleave the
> > output streams from different concurrent tasks, making them harder to
> > read. Recommend striping outputs in dedicated ncurses style bands,
> > like Docker.
> 
> 
> GNU Make has supported non-interleaved output since version 4.0
> (released in 2013).

  • request: make [-j... Andrew via austin-group-l at The Open Group
    • Re: request:... Lawrence Velázquez via austin-group-l at The Open Group
    • Re: request:... Rob Landley via austin-group-l at The Open Group
      • Re: requ... G. Branden Robinson via austin-group-l at The Open Group
      • Re: requ... Andrew via austin-group-l at The Open Group
        • Re: ... Paul Smith via austin-group-l at The Open Group
          • ... Andrew via austin-group-l at The Open Group
            • ... Paul Smith via austin-group-l at The Open Group
              • ... David A. Wheeler via austin-group-l at The Open Group
                • ... Paul Smith via austin-group-l at The Open Group
                • ... Steffen Nurpmeso via austin-group-l at The Open Group
        • Re: ... Rob Landley via austin-group-l at The Open Group
          • ... enh via austin-group-l at The Open Group
          • ... Paul Smith via austin-group-l at The Open Group
            • ... David A. Wheeler via austin-group-l at The Open Group
              • ... Steffen Nurpmeso via austin-group-l at The Open Group
              • ... Paul Smith via austin-group-l at The Open Group

Reply via email to