<div dir="ltr">@Timothy Keith,<div><br></div><div>Through this I've become aware of several sub-projects/libs that are either 100% clean or near 100% clean (flang,milr)</div><div><br></div><div>I have my own internal 5 million line code base which is 100% clang-formatted (including all C# and JS, unit tests), plus Firefox is also I think 100% converted, some helpful devs over there pull some patches and check for regressions if I add them as reviewers.</div><div><br></div><div>I always knew "polly" was mostly clean too, and actually one of the areas I already test against, (along with lib/Format obviously). </div><div><br></div><div>If we could get whole sub-projects 100% clean then it would be possible for me to notify them downstream when a clang-format change (for a bug fix) requires an update. But without that 100% status I'm always playing a game of checking every change, once we are at sub-project at 100% any change in formatting can be identified as a potential bug.</div><div><br></div><div>The current process I'm building is for the script that generates that html page to also generate a list of directories that are 100% clean, then use that as input to a test which validates clang-format, any clang-format replacements signify either recent unformatted changes or potentially bug fixes or regressions. (all of which in my view are worth highlighting to either clang-format or the owners of the subprojects)</div><div><br></div><div>Where sub teams can help is by making their projects 100% clean and helping to enforce/maintain that. We really try to not change LLVM default style but I am trying to work my way through the bugs and that from time to time does show differences. ideally I would run this regression on your sub-projects and then @mention your Phabricator project that inside review. (or send a review of the changes)</div><div><br></div><div>This is not about imposing style on anyone, It is purely about ensuring we don't break the world as fixing bugs inevitably causes some instability.  However one wrong move could have massive ripples through all the projects that use clang-format, the unit tests are excellent but regressions still slip through the net, and we already had a case where v10 had an issue which impacted others after it had been branched. I feel we need to ensure clang-format is run over millions of lines of code to catch bugs as early as possible. (and to root out new ones), it will be of huge benefit to clang-format if our own code base is heavily formatted so I really appreciate those who consider this worthwhile.</div><div><br></div><div>MyDeveloperDay</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 1, 2020 at 12:54 AM Timothy Keith <<a href="mailto:tkeith@nvidia.com">tkeith@nvidia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_3349812347305176739WordSection1">
<p class="MsoNormal">The flang sub-project is supposed to be fully formatted so it wouldn’t be hard to get to 100% for a test like this and we would be happy to participate. We were at 100% at one point but there are about 10 files that need formatting now,
 in part because of changes to clang-format. It would be good to get early warning of clang-format changes like that.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Let me know if there is anything I can do to help.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Tim<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12pt;color:black">From: </span></b><span style="font-size:12pt;color:black">llvm-dev <<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">llvm-dev-bounces@lists.llvm.org</a>> on behalf of Chris Lattner via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br>
<br>
</span><span style="font-size:12pt"><u></u><u></u></span></p>
</div>
<div>
<div>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<p class="MsoNormal">On Jun 28, 2020, at 8:30 AM, MyDeveloper Day via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:Helvetica">(Copying from Discourse)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:Helvetica">All<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:Helvetica">A couple of months ago I added the following page documentation <a href="http://clang.llvm.org/docs/ClangFormattedStatus.html" target="_blank"><span style="color:rgb(0,136,204)">Clang-Formatted-Status</span></a> to
 track the status of “How Much” clang-formatted the <u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:Helvetica">LLVM/Clang project is.<u></u><u></u></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal">Wow, I hadn’t seen this - this is really cool!<u></u><u></u></p>
</div>
<p class="MsoNormal"><br>
<br>
<u></u><u></u></p>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:Helvetica">I’m a contributor to clang-format and would like to see LLVM 100% clang formatted so we can use LLVM as a massive test-suite
 for clang-format when we make changes.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:Helvetica">In the last couple of months since we added this page the % has gone up by ~4% and this is likely in most part of either: a
 mention in LLVM-Weekly, the premerge checks or perhaps some recent clang-format efforts by individuals. This is fantastic and every directory that gets to 100% increase the directories that I can run against to check against.<u></u><u></u></span></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal">I’m a huge fan of clang-format, and have worked in “required to be formatted” code bases - it is a way better way to work in my opinion.  That said, such a move that you’re talking about is something that will take time, because this is
 a social problem as well as a technical one. <u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Instead of starting from a “can we do everything” question (which you’re already getting some “no’s”), I’d start with an easier question of “is anyone ok with mechanically formatting
<b>any</b> pieces of llvm?”  There will be some folks (e.g. the MLIR ones, perhaps the flang ones?) that are more likely to be early adopters, and this gives the opportunity to figure out policies and tools to help maintain things.  Then you can move on to
 other subdirectories within llvm/clang/etc, and progressively get there. <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">This helps achieve your goal of getting more of the stack, but avoids it being an “all or nothing” sort of dichotomy.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">-Chris<u></u><u></u></p>
</div>
</div>
</div>
</div>

</blockquote></div>