Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Unified Diff: site/dev/contrib/c++11.md

Issue 1678673002: update C++11 doc (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: site/dev/contrib/c++11.md
diff --git a/site/dev/contrib/c++11.md b/site/dev/contrib/c++11.md
index a8fc11dabfe56c9fe28c69baa6799900494e8d79..1854feb3b60b2c430c4e522d2a451e8f6393e521 100644
--- a/site/dev/contrib/c++11.md
+++ b/site/dev/contrib/c++11.md
@@ -10,9 +10,9 @@ feasibility. This is about what we can use, a superset of what we may use.
The gist:
-- C++11 the language as supported by GCC 4.7 or later is probably usable.
+- C++11 the language as supported by GCC 4.7 or later is pretty usable.
+- The C++11 standard library can generally be used, with some teething.
- If you break a bot, that feature is not usable.
-- The C++11 standard library can't generally be used.
- Local statics are not thread safe.
@@ -24,27 +24,20 @@ internal Google projects.
Chrome builds with a recent Clang on Mac and Linux and with a recent MSVC on
Windows. These toolchains are new enough to not be the weak link to use any
-C++11 language feature. But Chrome still supports Mac OS X 10.6, which does
-not ship with a C++11 standard library. So [Chrome has banned the use of the
-C++11 standard library](http://chromium-cpp.appspot.com/). Some header-only
-features are probably technically fine, but the Mac toolchain will prevent us
-from even trying at compile time as long as we target 10.6 as our minimum API
-level.
+C++11 language feature.
Chrome intentionally disables thread-safe initialization of static variables,
-and MSVC doesn't support it at all, so we cannot rely on that.
+so we cannot rely on that. Our bots disable this too, so keep an eye on TSAN.
-Android builds with either a recent GCC or a recent Clang. They're generally
-not a weak link for C++11 language features. Android's C++ standard library
-has always been a pain, but since we can't use it anyway (see Chrome), don't
-worry about it.
+Android builds with either a somewhat aged GCC or a recent Clang. They're
+generally not a weak link for C++11 language features. Android's C++ standard
+library had historically been a pain, but seems to work fine these days.
Mozilla's current weak link is a minimum requirement of GCC 4.7. Most features
marked in red on Mozilla's C++11 [feature
matrix](https://developer.mozilla.org/en-US/docs/Using_CXX_in_Mozilla_code) are
marked that way because they arrived in GCC 4.8. Their minimum-supported Clang
-and MSVC toolchains are great. They also appear to ban the C++ standard
-library.
+and MSVC toolchains are pretty good, but MSVC 2013 will become the weak link soon.
Internal Google projects tend to support C++11 completely, including the
full C++11 standard library.
@@ -57,6 +50,6 @@ Most of our bots are pretty up-to-date: the Windows bots use MSVC 2013, the Mac
bots a recent Clang, and the Linux bots GCC 4.8 or a recent Clang. Our Android
bots use a recent toolchain from Android (see above), and our Chrome bots use
Chrome's toolchains (see above). I'm not exactly sure what our Chrome OS bots
-are using, but they've never been a problem.
+are using. They're probably our weak link right now, though problems are rare.
I believe our bots' ability to use C++11 matches Mozilla's list nearly identically.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698