Visual Studio 2012更新破坏C ++ ABI? [英] Do Visual Studio 2012 updates break C++ ABI?

查看:203
本文介绍了Visual Studio 2012更新破坏C ++ ABI?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当Microsoft最初于2012年9月发布Visual Studio 2012时,他们宣布了更经常地为Visual Studio提供更新的计划。从那时起,他们发布了 2012年11月的Visual Studio 2012更新1(Visual Studio 2012.1) Visual Studio 2012 Update 2(Visual Studio 2012.2)



我的问题是:更新引入对C ++ ABI的任何更改(关于初始VS2012版本)?是否可以链接不同VS2012版本的 .lib



我在互联网上搜索了一段时间,没有找到任何明确的声明从微软。一些来源提到在C ++代码生成中的一些错误已经修复,但我想这不意味着ABI更改?

解决方案

我在Stephan T. Lavavej的博客文章中找到了我的问题的答案。


VS更新机制主要用于运送高优先级错误修复,而不是用于运送新功能,特别是具有突变更改的大规模重写(这与大量编译器更改绑定)。

像Visual C ++ 2013这样的主要版本给了我们改变和打破大量东西的自由。没有办法,我们可以在更新中发布这个东西。



Q5:错误修复怎么办?我们可以在更新吗?



A5:这是一个有趣的问题,因为答案取决于我的选择(而在上一个问题,我不会被允许



每个团队都可以选择他们对shiproom的修改,以便考虑将其包含在更新。有一些事情,船厂不会让我们逃避(例如二进制破解更改被禁止主要版本之外),但否则我们给予纬度决定的事情。我个人将带宽优先于延迟 - 也就是说,我喜欢在每个主要版本中提供更多的错误修复,而不是在多个更新中更频繁地发送更少的错误修复(在相同的时间段内)。



When Microsoft initially released Visual Studio 2012 in September 2012, they announced their plan for providing updates for Visual Studio on a more regular basis. Since then, they have released Visual Studio 2012 Update 1 (Visual Studio 2012.1) in November 2012 and Visual Studio 2012 Update 2 (Visual Studio 2012.2) in April 2013.

My question is: Did the updates introduce any changes to the C++ ABI (with regard to the initial VS2012 version)? Is it safe to link .libs of different VS2012 versions?

I have searched the internet for a while and could not find any definite statement from Microsoft. Some sources mention that some bugs in the C++ code generation have been fixed but I suppose that does not imply an ABI change?

解决方案

Finally, I found an answer to my question in Stephan T. Lavavej's blog post C++11/14 STL Features, Fixes, And Breaking Changes In VS 2013:

The VS Update mechanism is primarily for shipping high-priority bugfixes, not for shipping new features, especially massive rewrites with breaking changes (which are tied to equally massive compiler changes).

Major versions like Visual C++ 2013 give us the freedom to change and break lots of stuff. There's simply no way we can ship this stuff in an Update.

Q5: What about the bugfixes? Can we get those in an Update?

A5: This is an interesting question because the answer depends on my choices (whereas in the previous question, I wouldn't be allowed to ship such a rewrite in an Update even if I wanted to).

Each team gets to choose which bugfixes they take to "shiproom" for consideration to be included in an Update. There are things shiproom won't let us get away with (e.g. binary breaking changes are forbidden outside of major versions), but otherwise we're given latitude to decide things. I personally prioritize bandwidth over latency - that is, I prefer to ship a greater total number of bugfixes in every major version, instead of shipping a lesser total number of bugfixes (over the same period of time) more frequently in multiple Updates.

这篇关于Visual Studio 2012更新破坏C ++ ABI?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆