<div dir="ltr">I think this proposal looks really good -- I'm all in favor of making the soft-error change immediately for trunk _and_ LLVM 8 branch, and targeting end of march for the cutover to a hard error and allowing C++14 features.<div><br></div><div>However...... and I must admit to feeling embarrassed to have to say this, since Google is probably going to be the very last holdout...but...I'm not sure Google will actually be able to require C++14 support by the planned date at end of March. We're very much working on it, but I don't want everyone to be surprised and upset if, come March 30, we're still not quite ready to switch over.</div><div><br></div><div>So, let's move forward with end-of-march as the current proposal, anyhow, but I'd just like to ask for forgiveness in advance in case we request a further delay as that date gets closer. (FTR, I'd expect any future version increase proposals to see no objections from Google; this is a one-time-only sort of a problem for us.)</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 22, 2019 at 4:45 PM JF Bastien via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</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 style="overflow-wrap: break-word;">Hello fans of the <font face="Courier">auto</font> keyword!<div><br></div><div>We now have <a href="https://reviews.llvm.org/rL351765" target="_blank">a policy on how LLVM toolchains get updated</a>! Let’s put that policy to good use, and talk about how we’ll move all monorepo projects past C++11.</div><div><br></div><div><br></div><div><b>Previous Discussions</b></div><div><ul><li>LLVM dev meeting 2018 BoF "<a href="http://llvm.org/devmtg/2018-10/talk-abstracts.html#bof3" target="_blank">Migrating to C++14, and beyond!</a>"</li><li><a href="http://lists.llvm.org/pipermail/llvm-dev/2018-May/123238.html" target="_blank">A Short Policy Proposal Regarding Host Compilers</a></li><li><a href="http://lists.llvm.org/pipermail/llvm-dev/2018-May/123182.html" target="_blank">Using C++14 code in LLVM (2018)</a></li><li><a href="http://lists.llvm.org/pipermail/llvm-dev/2017-October/118673.html" target="_blank">Using C++14 code in LLVM (2017)</a></li><li><a href="http://lists.llvm.org/pipermail/llvm-dev/2016-October/105483.html" target="_blank">Using C++14 code in LLVM (2016)</a></li><li><a href="http://llvm.org/D47073" target="_blank">Document and Enforce new Host Compiler Policy</a></li><li><a href="http://llvm.org/D46723" target="_blank">Require GCC 5.1 and LLVM 3.5 at a minimum</a></li></ul></div><div><b><br></b></div><div><b>Migrate to what?</b></div><div><br></div><div>I’m only proposing that we migrate to C++14 for now. If you want to propose C++17, please do the work required by the policy. In particular, document which toolchains this would require, and what features you’d unlock. As per policy, I want to start soft-errors when building LLVM 8, so that LLVM 9 can use more than C++11.</div><div><br></div><div><br></div><div><b>Timeline</b></div><div><br></div><div>At the LLVM dev meeting BoF, the room already agreed to move past C++11. Late March 2019 was proposed as a time when we’d start migrating, pending large contributors’ readiness. I’m sticking to that timeline, we’ll see if everyone is ready at the end of March. I nonetheless want to get the soft-errors into the LLVM 8 branch so that we give a sufficient heads-up to developers who only compile releases.</div><div><div><br></div><div><br></div><div><b>Upsides</b></div><div><br></div><div>One clear upside of dropping older toolchains: they don’t even support C++11 very well. We have a handful of workarounds left in ADT (particularly around type traits) and I’d like to get rid of them.</div></div><div><br></div><div>The compiler versions I propose allow us to use all of C++14, which includes:</div><div><ul class="gmail-m_-7992628185474752069MailOutline"><li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf" target="_blank">Binary literals</a></li><li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html" target="_blank">decltype(auto), Return type deduction for normal functions</a></li><li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648.html" target="_blank">Initialized/Generalized lambda captures (init-capture)</a></li><li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649.html" target="_blank">Generic (polymorphic) lambda expressions</a></li><li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf" target="_blank">Variable templates</a></li><li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html" target="_blank">Member initializers and aggregates (NSDMI)</a></li><li>A bunch of new constexpr language and library features</li><li>Various other language and library features</li></ul></div><div>See <a href="https://en.cppreference.com/w/cpp/compiler_support" target="_blank">CppReference</a> for details.</div><div><br></div><div>Of these, I think polymorphic lambdas are the big feature. Of course, just like Almost Always Auto, we should use such things only where it makes sense.</div><div><br></div><div><br></div><div><b>Toolchains</b></div><div><br></div><div>We’re currently mandating:</div><div><ul><li>Clang 3.1 (<i>released 2012/05</i>)</li><li>Apple Clang 3.1 (<i>released 2012/05</i>)</li><li>GCC 4.8 (<i>released 2013/03</i>)</li><li>Visual Studio 2015 (Update 3) (<i>released 2016/06</i>)</li></ul></div><div>I propose instead:</div><div><ul><li>Clang 3.5 (<i>released 2014/07</i>) to get <font face="Courier">-std=c++14</font> instead of <font face="Courier">-std=c++1y</font></li><li>Apple Clang 6.0 (<i>released 2014/07</i>) to match clang 3.5</li><li>GCC 5.1 (<i>released 2015/04</i>) because C++14 mostly came to be in GCC 5</li><li>Visual Studio 2017 (<i>released 2017/03</i>) so that we get extended constexpr and NSDMI</li></ul></div><div>Version information from:</div><div><ul><li>Clang <a href="http://releases.llvm.org" target="_blank">http://releases.llvm.org</a></li><li>Apple clang <a href="https://trac.macports.org/wiki/XcodeVersionInfo" target="_blank">https://trac.macports.org/wiki/XcodeVersionInfo</a> and <a href="https://en.wikipedia.org/wiki/Xcode#Latest_versions" target="_blank">https://en.wikipedia.org/wiki/Xcode#Latest_versions</a></li><li>GCC <a href="https://gcc.gnu.org/releases.html" target="_blank">https://gcc.gnu.org/releases.html</a></li><li>MSVC <a href="https://en.wikipedia.org/wiki/Microsoft_Visual_Studio" target="_blank">https://en.wikipedia.org/wiki/Microsoft_Visual_Studio</a> and <a href="https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance" target="_blank">https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance</a></li></ul></div><div><br></div><div>My previous attempts pointed out that WebKit / Chromium / Firefox are all past C++11 (WebKit is <a href="https://lists.webkit.org/pipermail/webkit-dev/2018-March/029922.html" target="_blank">moving to C++17</a> (from C++14), Chromium <a href="https://groups.google.com/a/chromium.org/d/msg/cxx/ow7hmdDm4yw/eV6KWL2yAQAJ" target="_blank">started moving to C++14</a>, Firefox uses <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Using_CXX_in_Mozilla_code" target="_blank">some C++14</a>). This means that platforms which distribute a modern browser can already bootstrap a browser. That’s a nice datapoint, but isn’t sufficient for platforms which compile / use LLVM (especially as a library).</div><div><br></div><div>Here’s a table from the LLVM dev meeting BoF detailing version info for distros that seemed relevant:</div><div><br></div><div><table cellspacing="0" cellpadding="0" style="border-collapse:collapse">
<tbody>
<tr>
<td valign="top" style="width:43px;height:13px;background-color:rgb(241,158,13);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>Release</b></font></div>
</td>
<td valign="top" style="width:86px;height:13px;background-color:rgb(241,158,13);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>Distro</b></font></div>
</td>
<td valign="top" style="width:56px;height:13px;background-color:rgb(241,158,13);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>Compiler</b></font></div>
</td>
<td valign="top" style="width:60px;height:13px;background-color:rgb(241,158,13);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>C++14 lang</b></font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2003-10</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">RHEL 3</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 3.2</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">❌</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2005-02</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">RHEL 4</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 3.4</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">❌</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2007-03</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">RHEL 5</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 4.1</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">❌</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2010-11</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">RHEL 6</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 4.4</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">❌</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2013-05</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Debian 7 wheezy</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 4.7.2</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">❌</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2013-12</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">RHEL 7</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 4.8</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">❌</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2015-04</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Debian 8 jessie</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 4.9.2</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">❌</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2015-05</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">OpenBSD 5.7</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">LLVM 3.5</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2015-10</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">OpenBSD 5.8</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">LLVM 3.5</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2016-03</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">OpenBSD 5.9</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">LLVM 3.5</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2016-04</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Ubuntu 14.04</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 4.8.2</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">❌</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2016-04</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Ubuntu 16.04</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 5.3.1</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2016-09</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">OpenBSD 6.0</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">LLVM 3.8</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2017-04</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">OpenBSD 6.1</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">LLVM 4.0.0</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2017-06</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Debian 9 stretch</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 6.3.0</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2017-10</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Ubuntu 17.10</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 7.2.0</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2017-10</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">OpenBSD 6.2</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">LLVM 5.0.0</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2018-04</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Ubuntu 18.04</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 7.3.0</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2018-04</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">OpenBSD 6.3</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">LLVM 5.0.1</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2018-10</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Ubuntu 18.10</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 8.1.0</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
<tr>
<td valign="top" style="width:43px;height:18px;background-color:rgb(113,123,137);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#ffffff" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures;color:rgb(255,255,255)"><b>2018-??</b></font></div>
</td>
<td valign="top" style="width:86px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">Debian 10 buster</font></div>
</td>
<td valign="top" style="width:56px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px"><font face="Helvetica Neue" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Helvetica Neue";font-variant-ligatures:common-ligatures">GCC 8.1.0</font></div>
</td>
<td valign="top" style="width:60px;height:18px;background-color:rgb(204,204,204);border-style:solid;border-width:1px;border-color:rgb(0,0,0);padding:4px"><div style="margin:0px;text-align:center"><font face="Apple Color Emoji" color="#000000" style="font-stretch:normal;font-size:11px;line-height:normal;font-family:"Apple Color Emoji";font-variant-ligatures:common-ligatures">✅</font></div>
</td>
</tr>
</tbody>
</table></div><div><br></div><div>The data comes from the following sources:</div><div><ul><li><a href="https://en.cppreference.com/w/cpp/compiler_support" target="_blank">https://en.cppreference.com/w/cpp/compiler_support</a></li><li><a href="https://packages.ubuntu.com/search?keywords=gcc" target="_blank">https://packages.ubuntu.com/search?keywords=gcc</a></li><li><a href="https://packages.debian.org/search?keywords=gcc" target="_blank">https://packages.debian.org/search?keywords=gcc</a></li><li><a href="https://access.redhat.com/solutions/19458" target="_blank">https://access.redhat.com/solutions/19458</a></li><li><a href="https://www.openbsd.org/63.html" target="_blank">https://www.openbsd.org/63.html</a></li><li><a href="https://en.wikipedia.org/wiki/Clang" target="_blank">https://en.wikipedia.org/wiki/Clang</a></li><li><a href="https://releases.llvm.org" target="_blank">https://releases.llvm.org</a></li></ul></div><div>I haven’t documented FreeBSD / NetBSD / Fedora / MacOS / MSVC, and nobody complained at the BoF. I’d like to understand if we should care about documenting these: ideally the toolchain update policy would list which platforms need to be considered and how far back in time is relevant.</div><div><br></div><div>Thanks,</div><div><br></div><div>JF</div></div>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>