[llvm-dev] Upgrading to MSVC 2015
Alexander Riccio via llvm-dev
llvm-dev at lists.llvm.org
Tue Mar 29 12:41:58 PDT 2016
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.
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.
If you have an out-of-date version of 3.x, you should update, if only to get the launcher.
See more about the launcher: https://www.python.org/dev/peps/pep-0397/
sent from my (stupid) windows phone
-----Original Message-----
From: "Zachary Turner via llvm-dev" <llvm-dev at lists.llvm.org>
Sent: 3/29/2016 1:49 PM
To: "Aaron Ballman" <aaron at aaronballman.com>
Cc: "llvm-dev" <llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] Upgrading to MSVC 2015
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).
Granted this was a bit of a special circumstance, but as it stands I am already calling VC 2013 "unsupported" for LLDB.
On Tue, Mar 29, 2016 at 10:42 AM Aaron Ballman <aaron at aaronballman.com> wrote:
On Tue, Mar 29, 2016 at 1:29 PM, Zachary Turner via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I think it's been a little over a year since we bumped the minimum VS
> version to 2013. Are we planning to do the same for 2015? Update 2 is
> releasing soon, which is stable enough at least to ship Chromium.
In the past, we've supported the latest two major versions of Visual
Studio unless there is a strong use case for dropping the oldest
version. I don't believe any such use case has been brought up yet, so
I would imagine we will continue to support MSVC 2013 until the next
major release.
> Language wise, 2015 comes with a lot of new C++ features. The most
> interesting to people will probably be template aliases, C++11 constexpr,
> the thread_local keyword, and thread-safe function local statics (finally).
> A complete list of new C++ language support can be found here.
>
> As far as the different LLVM subprojects are concerned, LLDB was always
> going to be the hardest get working with MSVC 2015 due to the fact that it
> embeds python as an extension module, but as the LLDB maintainer for Windows
> I tackled this early and I can say that it's now done and we have completely
> transitioned to MSVC 2015 already in LLDB.
>
> Since we are only supporting 2015 in LLDB moving forward, I have a slight
> preference to bumping this in LLVM sooner rather than later, but I'd like to
> hear other peoples' thoughts on the matter as well.
Not everyone can upgrade to the latest version of the toolchain, even
if it has been released for a while. We did drop MSVC 2012 support
early, but MSVC 2015 was in RC or RTM stages by that point, and we had
some pretty big incentive to upgrade early (without function templates
supporting default arguments, the AST matcher DSL made for really slow
compiles of Clang itself, and resulted in a larger executable size
among other things, IIRC). I recall we had frequent build breaks from
MSVC 2012 not supporting basic C++11 language features or miscompiling
due to early support. I've not seen that be the case with MSVC 2013
except for the occasional issue with use of braced initializer lists.
Coupled with the fact that there's no future version of MSVC with an
imminent release, I would prefer to not bump unless it starts
significantly stifling our development efforts.
~Aaron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160329/688468fe/attachment.html>
More information about the llvm-dev
mailing list