<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<p>Hi, David,</p>
<p><br>
</p>
<p>I realize that this is frustrating, but in general, we do realize
that buildbots don't cover everything and we do revert actively
even if the breakage is not observable on the buildbots. It is
incumbent that every reasonable attempt is made by the reporter to
provide a reproducer for the problem, and failing that, to
proactively test future versions. Otherwise, forward progress will
stall. It seems as though, in this case, we have a reproducer that
can be widely tested.<br>
</p>
<p><br>
</p>
<p>I would not view this as treating one configuration as more
important than another. It looks like our general practice of
trying not to allow the fixing of one thing to break some
currently-working thing.</p>
<p><br>
</p>
<p>We really do need to have a buildbot that tests out of tree
builds. I was just on a call yesterday within my organization
where we were discussing how to setup more builders with more
configurations. Nick, we should make note of this in particular.</p>
<p><br>
</p>
<p>Regardless, if it is our consensus that out-of-tree builds are
supported, and it seems like it is, then it is everyone's
responsibility to test sufficiently and make sure that they work.
Reverting as needed.<br>
</p>
<p><br>
</p>
<p> -Hal<br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 8/4/20 6:24 AM, David Truby via
flang-dev wrote:<br>
</div>
<blockquote type="cite" cite="mid:DB7PR08MB3068F49317C2A363B9C63C92F34A0@DB7PR08MB3068.eurprd08.prod.outlook.com">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;}</style>
<div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">Hi all, I meant to send this mail
yesterday morning and instead managed to</div>
<div class="PlainText">direct reply to a limited number of
people instead of the list. Sorry about that!</div>
<div class="PlainText"><br>
</div>
<div class="PlainText">Just to clarify, I'm not in any way
opposed to out-of-tree builds and<br>
if people rely on them then obviously we should accept
patches to keep<br>
them working. What I am opposed to here is the idea that
everyone must<br>
test every patch both in and out of tree or have their
patch reverted,<br>
especially when out of tree configurations are not being
built by any<br>
buildbots.<br>
<br>
To take this particular case as an example, I posted a
patch fixing a<br>
build configuration that was broken previously (note: I
did not revert<br>
the patch that broke my build configuration, I simply
posted a new<br>
patch to fix it). This patch underwent a review for 2
weeks before<br>
being approved and passed all the buildbots we have and
as such I<br>
believe did not violate the criteria for a patch to be
reverted<br>
according to the LLVM Developer Policy: <br>
<a href="https://llvm.org/docs/DeveloperPolicy.html#quality" moz-do-not-send="true">https://llvm.org/docs/DeveloperPolicy.html#quality</a>.
<br>
<br>
I did however attempt to address the issue by providing
pointers to<br>
what a quick fix might look like (such a fix has now
kindly been<br>
applied by Andrzej Warzynski in <a href="https://reviews.llvm.org/D85078" moz-do-not-send="true">https://reviews.llvm.org/D85078</a>).<br>
However the patch was reverted rather than an attempt at
a fix being<br>
made, which I believe would have been by far the more
preferable option<br>
(such a fix could even have been committed without
review given how<br>
simple it was).<br>
<br>
Obviously the revert broke my build configuration again,
so the revert<br>
somewhat makes it feel that a decision was made off-list
to consider<br>
one build configuration as more important than another.
I think if we<br>
want out-of-tree builds to be considered more important
than multi-<br>
config builds then that should be a decision made by the
community not<br>
unilaterally. I also think if that decision is made then
it must be<br>
defended by buildbots; if my patch had broken a buildbot
I would have<br>
reverted it myself!<br>
<br>
Thanks<br>
David Truby<br>
<br>
<br>
On Fri, 2020-07-31 at 22:14 +0000, Peter Steinfeld
wrote:<br>
> I agree that having every possible build
configuration working in<br>
> every patch is difficult.<br>
> <br>
> With respect to your patch being reverted – This is
the crux of the<br>
> matter – whether out-of-tree builds are a critical
feature. If so,<br>
> Tim was right to revert.<br>
> <br>
> It’s too bad that the buildbots don’t do
out-of-tree builds. In the<br>
> meanwhile, you can either do one yourself, as is
documented here -- <br>
> <a href="https://github.com/llvm/llvm-project/tree/master/flang" moz-do-not-send="true">https://github.com/llvm/llvm-project/tree/master/flang</a>.
Or you can<br>
> ask someone who does them to review your changes.
I volunteer!<br>
> <br>
> Pete<br>
> From: flang-dev
<a class="moz-txt-link-rfc2396E" href="mailto:flang-dev-bounces@lists.llvm.org"><flang-dev-bounces@lists.llvm.org></a> On Behalf Of
David<br>
> Truby via flang-dev<br>
> Sent: Friday, July 31, 2020 2:53 PM<br>
> To: Steve Scalpone <a class="moz-txt-link-rfc2396E" href="mailto:sscalpone@nvidia.com"><sscalpone@nvidia.com></a>;
Isuru Fernando <<br>
> <a class="moz-txt-link-abbreviated" href="mailto:isuruf@gmail.com">isuruf@gmail.com</a>><br>
> Cc: Peter Steinfeld via flang-dev
<a class="moz-txt-link-rfc2396E" href="mailto:flang-dev@lists.llvm.org"><flang-dev@lists.llvm.org></a><br>
> Subject: Re: [flang-dev] Out-of-tree flang builds<br>
> <br>
> External email: Use caution opening links or
attachments <br>
> <br>
> Hi all,<br>
> <br>
> I agree with Michael here: having every possible
build configuration<br>
> fixed in every commit is an impossible task. I
submitted the patch in<br>
> question because earlier builds broke my build
configuration (and any<br>
> other builds with multi-config generators, e.g.
msbuild), and I<br>
> believe submitting such a patch to fix these
configurations was<br>
> reasonable, just as submitting patches to fix
out-of-tree builds is<br>
> reasonable.<br>
> <br>
> I do not believe that this patch should have been
reverted, as such a<br>
> revert seems to suggest that one (non-standard?)
build configuration<br>
> (out of tree builds) is more important than another
(non-standard?)<br>
> build configuration (multi-config builds). The
patch in question<br>
> didn't fail any build bots and doesn't (I believe)
fall short of the<br>
> LLVM Developer Guidelines guidance on quality of
patches. I believe a<br>
> better course of action here would have been a
patch from someone<br>
> that requires out-of-tree builds to work, and I
submitted some<br>
> suggestions on places to look to develop an easy
fix.<br>
> <br>
> In response to out of tree builds being a critical
feature that no<br>
> patch should break: I think in general it is
unreasonable to state<br>
> that _any_ feature that is not defended by
buildbots is a critical<br>
> feature that no patch should break. This puts a
really unreasonable<br>
> expectation on the developer of every patch to
manually test with<br>
> every possible configuration that some people might
care about,<br>
> rather than using the automated structure we
already have to detect<br>
> regressions.<br>
> <br>
> Thanks<br>
> David Truby<br>
> From: flang-dev
<a class="moz-txt-link-rfc2396E" href="mailto:flang-dev-bounces@lists.llvm.org"><flang-dev-bounces@lists.llvm.org></a> on behalf of
Isuru<br>
> Fernando via flang-dev
<a class="moz-txt-link-rfc2396E" href="mailto:flang-dev@lists.llvm.org"><flang-dev@lists.llvm.org></a><br>
> Sent: 31 July 2020 20:52<br>
> To: Steve Scalpone <a class="moz-txt-link-rfc2396E" href="mailto:sscalpone@nvidia.com"><sscalpone@nvidia.com></a><br>
> Cc: Peter Steinfeld via flang-dev
<a class="moz-txt-link-rfc2396E" href="mailto:flang-dev@lists.llvm.org"><flang-dev@lists.llvm.org></a><br>
> Subject: Re: [flang-dev] Out-of-tree flang builds<br>
> <br>
> > Support for out-of-tree builds, like
BUILD_SHARED_LIBS or gn<br>
> builds, are helpful for developers, but not
relevant for release<br>
> builds.<br>
> <br>
> I disagree. Out-of-tree builds are also very useful
for downstream<br>
> distributors when packaging individual components
of the LLVM<br>
> project.<br>
> <br>
> Isuru<br>
> <br>
> On Fri, Jul 31, 2020 at 2:45 PM Steve Scalpone via
flang-dev <<br>
> <a class="moz-txt-link-abbreviated" href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a>> wrote:<br>
> > +1 on Pete's and Tim's reply. I am often
building multiple branches<br>
> > at the same time. <br>
> > From: flang-dev
<a class="moz-txt-link-rfc2396E" href="mailto:flang-dev-bounces@lists.llvm.org"><flang-dev-bounces@lists.llvm.org></a> on behalf of<br>
> > Peter Steinfeld via flang-dev
<a class="moz-txt-link-rfc2396E" href="mailto:flang-dev@lists.llvm.org"><flang-dev@lists.llvm.org></a><br>
> > Sent: Friday, July 31, 2020 12:23 PM<br>
> > To: Michael Kruse <a class="moz-txt-link-rfc2396E" href="mailto:llvm@meinersbur.de"><llvm@meinersbur.de></a><br>
> > Cc: <a class="moz-txt-link-abbreviated" href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a>
<a class="moz-txt-link-rfc2396E" href="mailto:flang-dev@lists.llvm.org"><flang-dev@lists.llvm.org></a><br>
> > Subject: Re: [flang-dev] Out-of-tree flang
builds<br>
> > <br>
> > External email: Use caution opening links or
attachments <br>
> > <br>
> > Iterative builds are very useful and work
well.<br>
> > <br>
> > <br>
> > <br>
> > But when I’m reviewing a change from someone
else or starting on a<br>
> > new change for myself, I build all of flang.
In the last six<br>
> > hours, I’ve done four non-iterative builds,
for example.<br>
> > <br>
> > <br>
> > <br>
> > Pete<br>
> > <br>
> > <br>
> > <br>
> > From: Michael Kruse <a class="moz-txt-link-rfc2396E" href="mailto:llvm@meinersbur.de"><llvm@meinersbur.de></a>
<br>
> > Sent: Friday, July 31, 2020 12:01 PM<br>
> > To: Peter Steinfeld
<a class="moz-txt-link-rfc2396E" href="mailto:psteinfeld@nvidia.com"><psteinfeld@nvidia.com></a><br>
> > Cc: <a class="moz-txt-link-abbreviated" href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a><br>
> > Subject: Re: [flang-dev] Out-of-tree flang
builds<br>
> > <br>
> > <br>
> > <br>
> > External email: Use caution opening links or
attachments <br>
> > <br>
> > <br>
> > <br>
> > Support for out-of-tree builds, like
BUILD_SHARED_LIBS or gn<br>
> > builds, are helpful for developers, but not
relevant for release<br>
> > builds. Requiring to maintain all combinations
of build<br>
> > configurations is not feasible before every
commit, this is why<br>
> > they are only best effort. When you notice a
out-of-tree build<br>
> > breaking, you are free to fix the problem (and
assuming the fix is<br>
> > straightforward, low-risk, without review).<br>
> > <br>
> > <br>
> > <br>
> > However, I am wondering, why isn't an
iterative build sufficient?<br>
> > Assuming you are not touching any non-flang
files, make/ninja<br>
> > should not try to rebuild them.<br>
> > <br>
> > <br>
> > Michael<br>
> > <br>
> > <br>
> > <br>
> > <br>
> > <br>
> > <br>
> > <br>
> > Am Fr., 31. Juli 2020 um 13:41 Uhr schrieb
Peter Steinfeld via<br>
> > flang-dev <a class="moz-txt-link-rfc2396E" href="mailto:flang-dev@lists.llvm.org"><flang-dev@lists.llvm.org></a>:<br>
> > <br>
> > > Out-of-tree builds are a way to build
only the flang code using a<br>
> > > pre-existing full build of llvm.
Out-of-tree flang builds are<br>
> > > four times faster than full builds.
Thus, for those of us<br>
> > > actively developing code and reviewing
other people's changes,<br>
> > > out-of-tree builds significantly improve
our productivity.<br>
> > > <br>
> > > <br>
> > > <br>
> > > Unfortunately, out-of-tree builds are not
currently supported by<br>
> > > the llvm buildbots. Thus, people
changing build files must test<br>
> > > this feature themselves. The process of
doing an out-of-tree<br>
> > > build is described in the flang overview
document -- <br>
> > > <a href="https://github.com/llvm/llvm-project/tree/master/flang" moz-do-not-send="true">https://github.com/llvm/llvm-project/tree/master/flang</a>.
<br>
> > > Alternatively, people changing build
files could ask someone<br>
> > > familiar with out-of-tree builds to
review their changes.<br>
> > > <br>
> > > <br>
> > > <br>
> > > A recent update from David Truby broke
out-of-tree builds -- <br>
> > > <a href="https://reviews.llvm.org/D84022" moz-do-not-send="true">https://reviews.llvm.org/D84022</a>.
In the conversation in the<br>
> > > Phabricator review, David states that he
understands that "out-<br>
> > > of-tree builds are considered a "best
effort" feature that isn't<br>
> > > guaranteed to work". But since
out-of-tree builds are critical<br>
> > > for my development, I don't consider them
optional.<br>
> > > <br>
> > > <br>
> > > <br>
> > > I'm writing this note to bring this issue
to the broader flang<br>
> > > community. I consider out-of-tree builds
to be a critical<br>
> > > feature that no change should break.
What do you think?<br>
> > > <br>
> > >
_______________________________________________<br>
> > > flang-dev mailing list<br>
> > > <a class="moz-txt-link-abbreviated" href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a><br>
> > > <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev</a><br>
> > > <br>
> > <br>
> >
_______________________________________________<br>
> > flang-dev mailing list<br>
> > <a class="moz-txt-link-abbreviated" href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a><br>
> > <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev</a><br>
</div>
</span></font></div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
flang-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev</a>
</pre>
</blockquote>
<pre class="moz-signature" cols="72">--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
</body>
</html>