Last Comment Bug 705332 - Need a way to get at-a-glance progress info for a build (which files are being built) without slowing down the build with (and or being distracted by) massive make spew
: Need a way to get at-a-glance progress info for a build (which files are bein...
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: Build Config (show other bugs)
: Trunk
: x86_64 Linux
: -- normal (vote)
: mozilla11
Assigned To: Bill McCloskey (:billm)
:
Mentors:
Depends on:
Blocks: 703456
  Show dependency treegraph
 
Reported: 2011-11-25 10:09 PST by Hubert Figuiere [:hub]
Modified: 2012-02-01 14:00 PST (History)
12 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
patch to print name of file being compiled (15.20 KB, patch)
2011-12-07 17:47 PST, Bill McCloskey (:billm)
n.nethercote: review+
Details | Diff | Splinter Review

Description Hubert Figuiere [:hub] 2011-11-25 10:09:58 PST
The new silent rule for build is too silent as it no longer show what action is being done. Yet we still get the "Entering" and "Leaving" from make.

I like to have the name of the source being compiled.
Comment 1 Nicholas Nethercote [:njn] 2011-11-25 19:11:01 PST
You can use make's --no-print-directory to suppress the entering/leaving messages.  And if you don't want silent builds, just don't use -s.
Comment 2 :Ms2ger 2011-11-26 01:57:10 PST
Surely that still prints the compiler invocation. Why don't you introduce a --really-don't-let-me-see-a-thing instead for your use case?
Comment 3 Ted Mielczarek [:ted.mielczarek] 2011-11-26 12:52:29 PST
No, I agree with njn, which is why I r+ed his patch to remove that. If you don't want a silent make, don't use -s.
Comment 4 Hubert Figuiere [:hub] 2011-11-27 21:52:37 PST
I want something in between. I want to see what file is being build, not the whole invocation line.
-s use to provide that but no longer.
Comment 5 Boris Zbarsky [:bz] 2011-11-29 10:38:55 PST
I have to agree with Hub here.  The new setup means that I have to drop -s to have any idea what stage the build is in, which has a quite noticeable effect on build times (about 20% larger last I measured).

The point being that I _don't_ want silent builds.  I just want builds that aren't slowed down by the fact that most terminals seem to suck at handling the massive amounts of spew we generate without -s because each of our compile lines is a kilometer long.

So how do I go about getting what I want?  I don't care whether it's done via -s or not, but we do need a way to do it.
Comment 6 Jeff Walden [:Waldo] (remove +bmo to email) 2011-11-29 10:46:30 PST
I agree with the others who want some indication of where a build is but don't want all info.  I'd note that bhackett seems to agree with the rest of us on this, going by bug 703456 comment 5.
Comment 7 Ed Morley [:emorley] 2011-11-29 10:50:57 PST
Seems like having a -s(ilent) & also a -q(uiet) mode, might be the best way to satisfy both camps here?
Comment 8 Brian Hackett (:bhackett) 2011-11-29 11:01:29 PST
(In reply to Ed Morley [:edmorley] from comment #7)
> Seems like having a -s(ilent) & also a -q(uiet) mode, might be the best way
> to satisfy both camps here?

This would work for me.  Can I reopen this without it getting WONTFIX'ed again?
Comment 9 Hubert Figuiere [:hub] 2011-11-29 11:04:35 PST
(In reply to Ed Morley [:edmorley] from comment #7)
> Seems like having a -s(ilent) & also a -q(uiet) mode, might be the best way
> to satisfy both camps here?

That would work for me.
Comment 10 Boris Zbarsky [:bz] 2011-11-29 11:05:25 PST
Ask forgiveness, not permission.  Resummarizing to make it clear what problem we want solved.
Comment 11 Ted Mielczarek [:ted.mielczarek] 2011-11-29 11:09:01 PST
I'll be honest, I don't ever use |make -s|, so I really don't care what you do here.
Comment 12 Nicholas Nethercote [:njn] 2011-11-29 11:57:48 PST
Several people have said "I like to see what file is being built" but nobody has explained why.  Can someone do that?  I guess people will say "so I know where the build is" but I don't see why that's useful -- what action can you take based on that information?

I'll explain why I don't like it -- it's IMO useless output that makes it harder to see useful output like compile warnings.  In my perfect world there'd be no output other than compile warnings (and bug 703121 would be enabled which would mean there would be no warnings).  I.e. the Unix "silence meant nothing unusual happened" approach.  (Or, a very small amount of output for the entire build -- e.g. little enough that it doesn't overflow a terminal window -- would be acceptable too, IMO.)
Comment 13 Brian Hackett (:bhackett) 2011-11-29 12:10:44 PST
(In reply to Nicholas Nethercote [:njn] from comment #12)
> Several people have said "I like to see what file is being built" but nobody
> has explained why.  Can someone do that?  I guess people will say "so I know
> where the build is" but I don't see why that's useful -- what action can you
> take based on that information?

Comment 5 and bug 703456 comment 5 explain why; it *is* "so I know where the build is".  Knowing that lets me quickly determine how far along the build is, and estimate when it will be completed.  I can then do work somewhere else while the build progresses, and come back to it shortly after it completes.  Emphasis here on "shortly" --- speeding up the edit-compile-debug cycle requires minimizing the time a build sits idle.

The other half of it is personal preference.  As evidenced in this bug people like to do things in different ways, and I don't think people should need to give strong justifications for their personal workflow.
Comment 14 Boris Zbarsky [:bz] 2011-11-29 13:07:48 PST
> what action can you take based on that information?

Decide whether now is a good time to go have a snack for a bit, say.

Or decide whether the part I cared about has built now so that I know my patch compiles and it's ok to stop the build.

Or figure out whether the right -j settings are being used....

Or figure out whether the files that should get built are getting built, when I'm manually running make -C in some directories.

Note that all this information is more useful to me than warnings, which just scroll up and get ignored for toplevel builds...

Again, I'm not against having a mode to do what you want (complete silence modulo warnings), or even that mode being triggered with -s.  I'd just like a way to trigger the other behavior as well.
Comment 15 Bobby Holley (:bholley) (busy with Stylo) 2011-12-01 01:13:43 PST
As mentioned in bug 703456, I am also a big fan of the old behavior.
Comment 16 Bill McCloskey (:billm) 2011-12-07 17:47:05 PST
Created attachment 579918 [details] [diff] [review]
patch to print name of file being compiled

I talked to luke, dvander, and terrence about this. All of us like the old way better, where it prints the name of the file.

This patch backs out the original patch. Everyone except njn can get the behavior they want with make -s. Nick, you can get what you want with:
  alias make=make -s REPORT_BUILD=
or some such.
Comment 17 Nicholas Nethercote [:njn] 2011-12-07 18:26:11 PST
Comment on attachment 579918 [details] [diff] [review]
patch to print name of file being compiled

I concede defeat.  Actually, I'm going to do some work to make sure that:

  make ... > /dev/null

gives me what I want, i.e. just warnings and errors.  Currently it includes a bunch of other crap.
Comment 18 Bill McCloskey (:billm) 2011-12-08 10:15:58 PST
Thanks, Nick.

https://hg.mozilla.org/integration/mozilla-inbound/rev/46bc99c23c20
Comment 19 Ed Morley [:emorley] 2011-12-09 07:02:14 PST
https://hg.mozilla.org/mozilla-central/rev/46bc99c23c20

Note You need to log in before you can comment on or make changes to this bug.