[llvm-dev] Upgrading to MSVC 2015

Zachary Turner via llvm-dev llvm-dev at lists.llvm.org
Tue Mar 29 10:48:47 PDT 2016


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/6d17b51b/attachment.html>


More information about the llvm-dev mailing list