<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2016-08-02 12:24 GMT-07:00 Mehdi Amini via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><br><div><span class="gmail-"><blockquote type="cite"><div>On Aug 2, 2016, at 10:24 AM, David Majnemer via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:</div><br><div><div dir="ltr">Hello,<div><br></div><div>Today we hit another VS 2013 breakage <<a href="http://lab.llvm.org:8011/builders/sanitizer-windows/builds/26666/steps/run%20tests/logs/stdio" target="_blank">http://lab.llvm.org:8011/builders/sanitizer-windows/builds/26666/steps/run%20tests/logs/stdio</a>> which results us having to alter LLVM.</div><div><br></div><div>While we have no documented policy of supporting two version of MSVC, we do have an informal agreement that we should support the last two versions.</div><div><br></div><div>I suggest that we alter our informal policy to the following:</div><div><br></div><div>"If a compiler version keeps getting in the way and a newer compiler is available, we should ask people to upgrade to that newer compiler."<br></div><div><br></div><div>If we can support ten versions of MSVC with little burden, I don't see a reason why we shouldn't.</div><div><br></div><div>But if we find ourselves in a situation where asking folks to upgrade to a compiler which has been widely deployed soothes development for the greater LLVM community, we should consider dropping support for the older versions of that compiler.</div><div><br></div><div>In this case, dropping VS2013 allows us to use more C++11 features with confidence.  Notably, move constructors will be synthesized instead of having to be manually written (and kept in sync with data members getting added).</div><div><br></div><div>What do you all think?  Are folks still stuck on VS2013?</div></div></div></blockquote><div><br></div></span><div>I think in the end it comes down to a tradeoff between the added value of what features we gain by dropping an old compiler (MSVC, GCC, Clang…) compared to its user-based.</div><div><br></div><div>For example I believe last time we dropped an MSVC release we had a fairly large list of features: <a href="http://lists.llvm.org/pipermail/llvm-dev/2014-August/075869.html" target="_blank">http://lists.llvm.org/pipermail/llvm-dev/2014-August/075869.html</a></div><div><br></div><div>What is the list of features for dropping VS2013?</div><div><br></div></div></div></blockquote><div><br></div><div><a href="https://msdn.microsoft.com/en-us/library/hh567368.aspx">https://msdn.microsoft.com/en-us/library/hh567368.aspx</a><br></div><div><br></div><div>I think the one that all people care about is default move constructors and move assignment operators.</div><div>The path that David mentioned hits "<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf" style="font-size:13px;text-decoration:none;color:rgb(51,144,177);font-family:"segoe ui","lucida grande",verdana,arial,helvetica,sans-serif;line-height:18px">Unrestricted unions</a>". The other thing that would be nice to use in LLVM is noexcept (mostly in user defined move ctors).</div><div>Other thing that I even hit (but then removed it) is "<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm" style="font-size:13px;text-decoration:none;color:rgb(0,112,159);font-family:"segoe ui","lucida grande",verdana,arial,helvetica,sans-serif;line-height:18px">Magic statics</a>" for multithreaded code. This seems much more tricky, because the code will compile, but you won't know that on clang compiled with MSVC would have some data races.</div><div><br></div><div><br></div><div><br></div><div> </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="word-wrap:break-word"><div><div></div><div>(I don’t know about how widely VS2013 is still used in the community to evaluate the other side of the balance).</div><div><br></div><div>— </div><div>Mehdi</div><div><br></div></div></div><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">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>
<br></blockquote></div><br></div></div>