Alright folks,
The host compiler and standard library checking seems to be working. The last kinks in the build bots I know of are being worked out. Nothing has really burned.
So its time to switch to C++11!
I’m planning to land the following things around mid-week:
-
Some documentation of recommended features (both library and language) that should generally work. This won’t be exhaustive or really authoritative. The authority will be the build bots. =] But it should give people an idea of what they can do.
-
Some very basic guidelines about how to use C++11 features. This is going to be extremely minimal until we have experience with specific features causing problems or otherwise needing to be called out. Also, I expect these guidelines to spark lots of fun discussions and evolve a bit. Fortunately, we have code reviews. These should be the dominant way to figure out the best way to write a particular construct.
-
Flip the default build mode to C++11, renaming various build options accordingly.
-
Flip the default clang-format style to be C++11-derived, for example not putting spaces between nested close angle-brackets in templates.
-
Update all the release notes stuff.
I encourage folks to hold off from going crazy with C++11 for a few days to let the dust settle. After that, a few patches that I have in a branch and will be landing:
-
A bunch of range adaptors for the core LLVM IR types that have been floating around in my git branches for eons.
-
Removing roughly all of the C++11 feature guards from the ADT and Support headers. Mostly around r-value references now that we have actual move semantics.
-
Switching a bunch of stuff to std::unique_ptr<>
Let me know if there is anything super scary going on here! Happy hacking!
-Chandler