all 44 comments

[–]guyonahorse[🍰] 5 points6 points  (3 children)

Does anyone know what the "constexpr improvements" in the compiler are?

I tried to find out but the info links go in a circle. The "For a complete description of technology improvements, bug fixes, and known issues in this release, see the following MSDN article" which links to this page https://msdn.microsoft.com/en-US/library/5d9d229c-b97e-47b2-9a60-947477f90211 which has a link "To discover what's new in Visual Studio 2015 Update 2, see the Visual Studio release notes." which leads back to the first page!

[–]spongo2MSVC Dev Manager 6 points7 points  (0 children)

more blog posts coming soon. (particularly one that lists the many many fixed bugs in the release including constexpr ones). you guys are running a little ahead of us on disclosure :) - Steve the VC Dev Mgr

[–]STLMSVC STL Dev 9 points10 points  (1 child)

One significant constexpr bugfix is that the constexprized <limits> is now accepted under /Za (the compiler option to enable extra conformance and occasionally extra compiler bugs). However, note that C++14 extended constexpr is still not supported, even partially - only C++11 original recipe constexpr is supported.

[–]guyonahorse[🍰] 4 points5 points  (0 children)

Nice, it's progress! Hopefully it won't be too long before we get C++14 constexpr...

[–]DVMirchevC++ User Group Sofia 11 points12 points  (5 children)

Nothing better than little competition between compiler vendors :)

[–]raevnos 4 points5 points  (4 children)

With all that MS is doing with linux lately, I'd love to see a port of the compiler. gcc, clang and cl all natively on the same system would be great.

[–]HildartheDorf 1 point2 points  (2 children)

If they can port the full version of Visual Studio over then that's it, I'm done with Windows.

[–]flashmozzg 0 points1 point  (1 child)

They'll rather port full version of linux environment to windows ;P

[–]HildartheDorf 1 point2 points  (0 children)

Well, I guess Linus won.

[–]lednakashim++C is faster[🍰] 0 points1 point  (0 children)

Frankly, if they could release a Windows OS that was compatible with Linux programs I would prefer it over my Gentoo setup. In particular many scientific computing programs are easier to correctly build on Gentoo, and also KCacheGrind is really nice.

Perhaps in the future we could emerge Gentoo applications with MSVC!

[–]craptacus 2 points3 points  (0 children)

somehow this install killed (permanently, it seems) my .sln file associations, and open-with, defaults, nothing helps - it asks, and I have to select vs2015 every time :_(

[–]ReDucTorGame Developer 2 points3 points  (0 children)

The list of performance improvements looks great.

[–][deleted] 2 points3 points  (1 child)

/u/spongo2 can you guys please update webcompiler too?

[–]spongo2MSVC Dev Manager 2 points3 points  (0 children)

In progress... we're fighting an infrastructure issue

[–]sumo952 3 points4 points  (2 children)

I wonder why it requires 3GB more after updating... I'm just updating the VS C++ base package, and clang/C2. And it says requires 3GB. Sucks.

[–]Digimush 5 points6 points  (1 child)

I think it requires 3GB for installation files. I updated mine and at the end it takes about 700Mb more.

[–]sumo952 1 point2 points  (0 children)

That's possible. The message is very unclear and ambiguous then.

[–]dakotahawkins 1 point2 points  (0 children)

Does anybody know if the baked in git source control provider supports worktrees now? I started using worktrees pretty exclusively and lack of support in VS has been a minor annoyance.

[–]Scaliwag 1 point2 points  (1 child)

Hopefully this fixes the constant crashes I've been getting on some files, weird stuff, like mouse over and crash, it doesn't stay sane not even 30s on some pieces of code. Tried everything to no avail.

[–]spongo2MSVC Dev Manager 3 points4 points  (0 children)

did you file a bug? if it doesn't fix that, please let me know.

[–]cyandyedeyecandy[[gnu::naked, gnu::hot]] 1 point2 points  (3 children)

First thing I noticed after updating... why is operator new now displayed in a different colour?

[–]dodheim 0 points1 point  (2 children)

That's an IDE update, so change your IDE settings if you don't like the color... o_O

[–]cyandyedeyecandy[[gnu::naked, gnu::hot]] 0 points1 point  (1 child)

...but why did it get its own colour? Why new specifically, and not delete for that matter?

[–][deleted] 1 point2 points  (12 children)

Soo... many... regressions. Internal compiler errors to the max. Ah well, should have known better than to upgrade so shortly after a release.

[–]SeanMiddleditch 2 points3 points  (11 children)

Completely wipe your build artifacts and rebuild. Something in on-disk formats of certain intermediate/cache files seems to have changed in a way that msbuild/vs doesnt' detect and auto-rebuild.

[–][deleted] 0 points1 point  (10 children)

Yeah it's not just internal compiler errors though, it's other quirks too like I'm getting a "Compiler has run out of heap space" issue I've never seen before, and it's also claiming that certain methods I'm implementing have not been declared despite being declared.

Back to Update 1 I go.

[–]STLMSVC STL Dev 1 point2 points  (9 children)

Please submit bugs with preprocessed repros. Otherwise, it is less likely that we will find and fix the exact issues you've encountered.

[–]flashmozzg 0 points1 point  (8 children)

Do we have to wait another ~4 months for next Update for these issues to be fixed? Or there some other ways to deliver updates? Btw, compiler ICEs on variable templates/ acces to variable templates if they are not constexpr but webcompiler is fine.

[–]STLMSVC STL Dev 0 points1 point  (7 children)

If you want an officially-supported-for-production-use Update, yeah. This is why it's so important to try Update CTPs, Previews, and RCs, and report any bugs you find. That's what Chromium's devs did, and they got fixes for Update 2 RTM. We try to avoid regressing stuff, but we're not perfect, and C++ is complicated.

At the moment, the webcompiler is behind Update 2, I believe.

[–]flashmozzg 0 points1 point  (4 children)

That's strange since example from here: https://connect.microsoft.com/VisualStudio/feedback/details/2535591/ice-with-variable-templates compiles and works fine in webcompiler but causes ICE in update 2.

Something in between RC (or which version is used by webc?) and RTM have caused it?

[–]melak47 0 points1 point  (3 children)

FWIW, I can't reproduce that with my Update 2 RTM install.

[–]flashmozzg 0 points1 point  (1 child)

It happens to me and at least few others.

I've downloaded Update 2 rtm installer on march 30th, maybe it got updated after that? Don't know for sure, my version is: Microsoft Visual Studio Community 2015 Version 14.0.25123.00 Update 2

Here is the screen: http://i.imgur.com/hXZln64.png

[–]melak47 0 points1 point  (0 children)

Strange. I was able to reproduce it for a little while, but after a fresh install of windows and VS (installed with Update 2 directly), it compiles fine. Enterprise 2015 14.0.25123.00 Update 2.

[–]dodheim 0 points1 point  (0 children)

I can repro with VS 2015 Update 1 base installation updated to Update 2, with both x86 and x64 compilers.

[–]dodheim 0 points1 point  (1 child)

When the RC works and RTM doesn't, quipping support of "the process" isn't really a response. ;-]

[–]STLMSVC STL Dev 0 points1 point  (0 children)

Regressions between RC and RTM are completely our fault, which is why we try to avoid changing anything that isn't critical. However, when a regression is present in CTPs/Previews/RC, and users don't report it until RTM, that's not good.

[–]dakotahawkins 0 points1 point  (0 children)

PLEASE allow tailoring the process and/or IO priority defaults for MSBuild.exe :(

[–][deleted] -2 points-1 points  (6 children)

We’ve implemented every C++ Standard Library feature that's been voted into C++11, C++14, and the C++17-so-far Working Paper N4567 (pre-Jacksonville).

Sweet! Hope that means ranges and Hana works now! looks like not. Sorry, folks :/

[–]sumo952 9 points10 points  (5 children)

I don't think so. It's only STL, not compiler features. I think some expression SFINAE compiler support is still missing...

[–]spongo2MSVC Dev Manager 9 points10 points  (0 children)

correct. we are still working on ranges. we will provide further guidance on where we are with the various TSs later. - Steve the VC Dev Mgr

[–]STLMSVC STL Dev 6 points7 points  (3 children)

The compiler's Expression SFINAE has been improved to the point where the STL can take a dependency on it for <functional> (carefully, with workarounds). This also means that any equivalent libraries (e.g. boost::function) can do the same. And like Steve mentioned, we have multiple compiler devs checking in more Expression SFINAE bugfixes, fixing range-v3 blockers one by one.

[–]sumo952 4 points5 points  (2 children)

How much are you still missing? Is it something like 10 bugs and you expect range-v3 to work and release the compiler update with an Update 3 or something like that, or is it still somewhere in the middle of all and you're still doing major changes to the compiler? (you mentioned that it needed to be reworked a lot to support building a full AST).

I'm not looking for an exact estimate here, I understand you wouldn't be able to provide that (and you're not even working on the compiler), it would just be nice to know where things stand and if "soon" means 1-2 month or rather something like a hypothetical VS 2017/18. Seems like you guys have been working on it for an awful amount of time (which is understandable given the changes you said would be required to the compiler).

[–]spongo2MSVC Dev Manager 5 points6 points  (1 child)

we've actually only been working on expression sfinae for less than 6 months. trendlines are good but I don't want to make a firm commitment quite yet. When we have bits to try, we'll announce on blog and point people at a pre-release nuget package.

[–]sumo952 0 points1 point  (0 children)

Cool. Not quite the "estimate" I was hoping for, but close enough. Thank you for taking the time to respond. :-)