<div dir="ltr">There is also a chance that someone gonna extend clang-tidy check "modernize-use-default" to handle move constructors. <div>Then at least this problem, which I think is the most frequent, could be solved easily after moving to MSVC2015</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-07-30 17:53 GMT-07:00 Robinson, Paul <span dir="ltr"><<a href="mailto:paul.robinson@sony.com" target="_blank">paul.robinson@sony.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> -----Original Message-----<br>
> From: <a href="mailto:aaron.ballman@gmail.com">aaron.ballman@gmail.com</a> [mailto:<a href="mailto:aaron.ballman@gmail.com">aaron.ballman@gmail.com</a>] On Behalf<br>
> Of Aaron Ballman<br>
</span><div><div class="h5">> Sent: Saturday, July 30, 2016 12:41 PM<br>
> To: Robinson, Paul<br>
> Cc: Zachary Turner; Sean Silva; Piotr Padlewski; <a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
> Subject: Re: [llvm-dev] Upgrading to MSVC 2015<br>
><br>
> On Sat, Jul 30, 2016 at 1:58 PM, Robinson, Paul <<a href="mailto:paul.robinson@sony.com">paul.robinson@sony.com</a>><br>
> wrote:<br>
> ><br>
> ><br>
> >> -----Original Message-----<br>
> >> From: <a href="mailto:aaron.ballman@gmail.com">aaron.ballman@gmail.com</a> [mailto:<a href="mailto:aaron.ballman@gmail.com">aaron.ballman@gmail.com</a>] On<br>
> Behalf<br>
> >> Of Aaron Ballman<br>
> >> Sent: Friday, July 29, 2016 2:19 PM<br>
> >> To: Zachary Turner<br>
> >> Cc: Sean Silva; Robinson, Paul; Piotr Padlewski; llvm-<br>
> <a href="mailto:dev@lists.llvm.org">dev@lists.llvm.org</a><br>
> >> Subject: Re: [llvm-dev] Upgrading to MSVC 2015<br>
> >><br>
> >> There are not that many people making commits to working around MSVC<br>
> >> 2013 as I think are claimed<br>
> ><br>
> > CGOpenMPRuntime.cpp had 4 patches this week trying to make VS2013 happy.<br>
> > I can tell they were because of VS2013 because the public PS4 bot has<br>
> > VS2015 and it didn't seem to have the same problems.<br>
><br>
> Hmmm, I don't see any mention in the code itself about changes to<br>
> appease MSVC 2013, so that's why it didn't come up in my searches. We<br>
> usually ask people working around buggy compilers to leave a FIXME in<br>
> there so we can remove compiler hacks (but obviously, we don't manage<br>
> to catch all of them), so if you run into anything like this again,<br>
> please try to put in a FIXME if it's appropriate.<br>
<br>
</div></div>Ah, okay, was not aware of that policy.  I'll try to keep that in mind<br>
if it comes up again.  It looks like other people with a more vested<br>
interest in that module have also been working on it, so I'm not sure<br>
exactly what its current state is; if my hacks are still there Monday<br>
then I'll look at adding FIXME comments.<br>
Thanks,<br>
--paulr<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> > Maybe it was just bad luck that we put up an internal VS2013 bot when it<br>
> > happened, but it has been an incredible time-sink for me this week.<br>
><br>
> I'm sorry it's been a time sink for you!<br>
><br>
> > Note I do not want to advance the timetable, I just want to make sure<br>
> > that the actual problems aren't dismissed too readily.<br>
><br>
> Agreed -- if we have compiler problems that are causing a lot of pain,<br>
> I think it's a good idea to discuss bumping the time table. However,<br>
> we have problems with *every* compiler from time to time. For<br>
> comparison, when we dropped MSVC 2012 early we had frequent<br>
> (weekly-ish?) issues that we would run up against that 2013 had<br>
> already fixed, the workarounds were cumbersome, and 2013 had a looming<br>
> release date. We do run into issues with 2013 (I helped someone work<br>
> around one yesterday, in fact), so it's good for us to keep track of<br>
> those situations to help make informed decisions, but whether we're at<br>
> the point of deviating from our compiler support policy or not is less<br>
> clear to me.<br>
><br>
> ~Aaron<br>
><br>
> > --paulr<br>
> ><br>
> >> (there are certainly a lot of commits for<br>
> >> working around MSVC in general, however). A quick search through the<br>
> >> code base shows there are 8 instances where we've worked around MSVC<br>
> >> 2013 issues (there may be more that someone worked around in an ad hoc<br>
> >> manner and did not mark). We definitely had *a lot* more when we<br>
> >> dropped MSVC 2012 early. The primary issues people are working around<br>
> >> are constexpr support, which is important but certainly not critical,<br>
> >> and still some occasional issues with move constructors not being<br>
> >> synthesized as expected, which is also pretty simple to work around<br>
> >> (and is usually an optimization loss more than a functionality loss).<br>
> >><br>
> >> As MSVC 15 starts getting closer to the RTM stages, I think we should<br>
> >> definitely consider the switch more strongly, but with it still in<br>
> >> Preview mode, I think it's premature to drop support for MSVC 2013 at<br>
> >> this time.<br>
> >><br>
> >> ~Aaron<br>
> >><br>
> >> On Fri, Jul 29, 2016 at 5:02 PM, Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>><br>
> >> wrote:<br>
> >> > FWIW, no objections from me, after all I proposed this 3 months ago<br>
> :)<br>
> >> ><br>
> >> > Probably Aaron Ballman should comment though since the primary<br>
> objection<br>
> >> > last time was his.<br>
> >> ><br>
> >> > On Fri, Jul 29, 2016 at 2:00 PM Sean Silva <<a href="mailto:chisophugis@gmail.com">chisophugis@gmail.com</a>><br>
> >> wrote:<br>
> >> >><br>
> >> >> On Fri, Jul 29, 2016 at 1:23 PM, Robinson, Paul via llvm-dev<br>
> >> >> <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
> >> >>><br>
> >> >>> There are certainly enough people making commits that work with<br>
> VS2015<br>
> >> >>> but not VS2013 that the "would it be useful" question is pretty<br>
> well<br>
> >> >>> answered.  I've already brought up the idea on my team, as it's<br>
> >> obviously<br>
> >> >>> coming and we need time to coordinate with internal consumers of<br>
> the<br>
> >> >>> toolchain.<br>
> >> >><br>
> >> >><br>
> >> >> Also, we have an increasing number of parts of the codebase that are<br>
> >> >> working around VS2013's inability to generate move constructors.<br>
> >> >> This is all over the new PM code and the passes ported to the new<br>
> PM.<br>
> >> >> It has caused me personally hours of lost time and generally<br>
> penalizes<br>
> >> >> good coding practices (exporting lifetime management to RAII is only<br>
> so<br>
> >> >> convenient if you can't have a move-only type like a unique_ptr<br>
> without<br>
> >> >> manually writing out move constructor/assign; and the diagnostics<br>
> when<br>
> >> this<br>
> >> >> VS2013 deficiency raises its head are.... confusing).<br>
> >> >><br>
> >> >> -- Sean Silva<br>
> >> >><br>
> >> >><br>
> >> >>><br>
> >> >>> --paulr<br>
> >> >>><br>
> >> >>><br>
> >> >>><br>
> >> >>> From: llvm-dev [mailto:<a href="mailto:llvm-dev-bounces@lists.llvm.org">llvm-dev-bounces@lists.llvm.org</a>] On Behalf<br>
> Of<br>
> >> >>> Zachary Turner via llvm-dev<br>
> >> >>> Sent: Friday, July 29, 2016 11:35 AM<br>
> >> >>> To: Piotr Padlewski; Aaron Ballman<br>
> >> >>> Cc: llvm-dev<br>
> >> >>> Subject: Re: [llvm-dev] Upgrading to MSVC 2015<br>
> >> >>><br>
> >> >>><br>
> >> >>><br>
> >> >>> Probably not.  It's very confusing because they are transitioning<br>
> to a<br>
> >> >>> new versioning scheme.  The current version if Visual Studio 2015.<br>
> >> The next<br>
> >> >>> version is Visual Studio 15.  The link you posted was for the RTM<br>
> of<br>
> >> 2015,<br>
> >> >>> just over a year ago.  But 15 is still in Preview.  When 15 goes to<br>
> >> RTM,<br>
> >> >>> then we can revisit the question of making 2015 the minimum<br>
> required<br>
> >> >>> version.<br>
> >> >>><br>
> >> >>><br>
> >> >>><br>
> >> >>> On Fri, Jul 29, 2016 at 11:29 AM Piotr Padlewski<br>
> >> >>> <<a href="mailto:piotr.padlewski@gmail.com">piotr.padlewski@gmail.com</a>> wrote:<br>
> >> >>><br>
> >> >>> <a href="https://www.visualstudio.com/en-us/news/vs2015-vs.aspx" rel="noreferrer" target="_blank">https://www.visualstudio.com/en-us/news/vs2015-vs.aspx</a><br>
> >> >>><br>
> >> >>><br>
> >> >>><br>
> >> >>> Is it time?<br>
> >> >>><br>
> >> >>><br>
> >> >>><br>
> >> >>> 2016-03-31 12:03 GMT-07:00 Aaron Ballman via llvm-dev<br>
> >> >>> <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>>:<br>
> >> >>><br>
> >> >>> On Thu, Mar 31, 2016 at 2:57 PM, Zachary Turner<br>
> <<a href="mailto:zturner@google.com">zturner@google.com</a>><br>
> >> >>> wrote:<br>
> >> >>> ><br>
> >> >>> ><br>
> >> >>> > On Tue, Mar 29, 2016 at 10:42 AM Aaron Ballman<br>
> >> <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>><br>
> >> >>> > wrote:<br>
> >> >>> >><br>
> >> >>> >><br>
> >> >>> >> Not everyone can upgrade to the latest version of the toolchain,<br>
> >> even<br>
> >> >>> >> if it has been released for a while. We did drop MSVC 2012<br>
> support<br>
> >> >>> >> early, but MSVC 2015 was in RC or RTM stages by that point, and<br>
> we<br>
> >> had<br>
> >> >>> >> some pretty big incentive to upgrade early (without function<br>
> >> templates<br>
> >> >>> >> supporting default arguments, the AST matcher DSL made for<br>
> really<br>
> >> slow<br>
> >> >>> >> compiles of Clang itself, and resulted in a larger executable<br>
> size<br>
> >> >>> >> among other things, IIRC).<br>
> >> >>> ><br>
> >> >>> ><br>
> >> >>> > I know you mentioned that one of the reasons we upgraded to 2013<br>
> was<br>
> >> >>> > because<br>
> >> >>> > 2015 was in RC or RTM.  Ironically, the day after I posted this<br>
> MS<br>
> >> >>> > announced<br>
> >> >>> > Visual Studio 15 preview  (which is confusingly the version<br>
> *after*<br>
> >> >>> > Visual<br>
> >> >>> > Studio 2015).<br>
> >> >>><br>
> >> >>> Hah, that is confusing!<br>
> >> >>><br>
> >> >>> > In any case, it's not an RC, and it's certainly not an RTM,<br>
> >> >>> > but it is on the horizon.  So hopefully we can revisit this<br>
> question<br>
> >> >>> > when 15<br>
> >> >>> > is in RC / RTM<br>
> >> >>><br>
> >> >>> I think that's a great time to revisit the question (transitioning<br>
> >> >>> sometimes takes a bit of time since we want to ask people with out<br>
> of<br>
> >> >>> tree needs if they're ready before dropping support for major<br>
> >> >>> releases).<br>
> >> >>><br>
> >> >>><br>
> >> >>> ~Aaron<br>
> >> >>><br>
> >> >>><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>
> >> >>><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>
> >> ><br>
</div></div></blockquote></div><br></div>