<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body><div><div style="font-family: Calibri,sans-serif; font-size: 11pt;">Total side note: Python 3.5 supports a vastly improved installer infrastructure, which lets you choose to install debug or release, will install symbols, and *most awesomely* supports a launcher that fixes the issues with 2.x & 3.x coexisting on one system.<br><br>For 2.x you just use the command "py -2 your_script.py", and it just does the right thing. You can also explicitly call it with "-3" to get 3.x.<br><br>If you have an out-of-date version of 3.x, you should update, if only to get the launcher.<br><br>See more about the launcher: https://www.python.org/dev/peps/pep-0397/<br><br>sent from my (stupid) windows phone</div></div><div dir="ltr"><hr><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">From: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:llvm-dev@lists.llvm.org">Zachary Turner via llvm-dev</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Sent: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;">‎3/‎29/‎2016 1:49 PM</span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">To: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:aaron@aaronballman.com">Aaron Ballman</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Cc: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:llvm-dev@lists.llvm.org">llvm-dev</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Subject: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;">Re: [llvm-dev] Upgrading to MSVC 2015</span><br><br></div><div dir="ltr">I can tell you that at least on the LLDB side, it was significantly stifling our development efforts.  The requirement that embedding Python means you have to compile Python with the same compiler that you compile the program you're embedding it in, and the fact that the only supported toolchain for Python 2.7 is VC 2008, and the fact that Python 2.7 doesn't even compile with VC 2015, we were in a bit of a bind.  The only practical solution for us was to support Python 3.5 (which is compiled with VC 2015 and solves the compiler / ABI compatibility problem through the UCRT).<div><br></div><div>Granted this was a bit of a special circumstance, but as it stands I am already calling VC 2013 "unsupported" for LLDB.</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Mar 29, 2016 at 10:42 AM Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;">On Tue, Mar 29, 2016 at 1:29 PM, Zachary Turner via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> I think it's been a little over a year since we bumped the minimum VS<br>
> version to 2013.  Are we planning to do the same for 2015?  Update 2 is<br>
> releasing soon, which is stable enough at least to ship Chromium.<br>
<br>
In the past, we've supported the latest two major versions of Visual<br>
Studio unless there is a strong use case for dropping the oldest<br>
version. I don't believe any such use case has been brought up yet, so<br>
I would imagine we will continue to support MSVC 2013 until the next<br>
major release.<br>
<br>
> Language wise, 2015 comes with a lot of new C++ features.  The most<br>
> interesting to people will probably be template aliases, C++11 constexpr,<br>
> the thread_local keyword, and thread-safe function local statics (finally).<br>
> A complete list of new C++ language support can be found here.<br>
><br>
> As far as the different LLVM subprojects are concerned, LLDB was always<br>
> going to be the hardest get working with MSVC 2015 due to the fact that it<br>
> embeds python as an extension module, but as the LLDB maintainer for Windows<br>
> I tackled this early and I can say that it's now done and we have completely<br>
> transitioned to MSVC 2015 already in LLDB.<br>
><br>
> Since we are only supporting 2015 in LLDB moving forward, I have a slight<br>
> preference to bumping this in LLVM sooner rather than later, but I'd like to<br>
> hear other peoples' thoughts on the matter as well.<br>
<br>
Not everyone can upgrade to the latest version of the toolchain, even<br>
if it has been released for a while. We did drop MSVC 2012 support<br>
early, but MSVC 2015 was in RC or RTM stages by that point, and we had<br>
some pretty big incentive to upgrade early (without function templates<br>
supporting default arguments, the AST matcher DSL made for really slow<br>
compiles of Clang itself, and resulted in a larger executable size<br>
among other things, IIRC). I recall we had frequent build breaks from<br>
MSVC 2012 not supporting basic C++11 language features or miscompiling<br>
due to early support. I've not seen that be the case with MSVC 2013<br>
except for the occasional issue with use of braced initializer lists.<br>
Coupled with the fact that there's no future version of MSVC with an<br>
imminent release, I would prefer to not bump unless it starts<br>
significantly stifling our development efforts.<br>
<br>
~Aaron<br>
</blockquote></div>
</body></html>