| OLD | NEW |
| 1 C++11 in Skia | 1 C++11 in Skia |
| 2 ============= | 2 ============= |
| 3 | 3 |
| 4 Skia is exploring the use of C++11. As a library, we are technically limited | 4 Skia is exploring the use of C++11. As a library, we are technically limited |
| 5 by what our clients support and what our build bots support. | 5 by what our clients support and what our build bots support. |
| 6 | 6 |
| 7 Skia may also be limited by restrictions we choose put on ourselves. This | 7 Skia may also be limited by restrictions we choose put on ourselves. This |
| 8 document is not concerned with C++11 policy in Skia, only its technical | 8 document is not concerned with C++11 policy in Skia, only its technical |
| 9 feasibility. This is about what we can use, a superset of what we may use. | 9 feasibility. This is about what we can use, a superset of what we may use. |
| 10 | 10 |
| 11 The gist: | 11 The gist: |
| 12 - C++11 the language as supported by GCC 4.4 or later is probably usable. | 12 |
| 13 - If you break a bot, that feature is not usable. | 13 - C++11 the language as supported by GCC 4.4 or later is probably usable. |
| 14 - The C++11 standard library can't generally be used. | 14 - If you break a bot, that feature is not usable. |
| 15 - Local statics are not thread safe. | 15 - The C++11 standard library can't generally be used. |
| 16 - Local statics are not thread safe. |
| 16 | 17 |
| 17 | 18 |
| 18 Clients | 19 Clients |
| 19 ------- | 20 ------- |
| 20 | 21 |
| 21 The clients we pay most attention to are Chrome, Android, Mozilla, and a few | 22 The clients we pay most attention to are Chrome, Android, Mozilla, and a few |
| 22 internal Google projects. | 23 internal Google projects. |
| 23 | 24 |
| 24 Chrome builds with a recent Clang on Mac and Linux and with a recent MSVC on | 25 Chrome builds with a recent Clang on Mac and Linux and with a recent MSVC on |
| 25 Windows. These toolchains are new enough to not be the weak link to use any | 26 Windows. These toolchains are new enough to not be the weak link to use any |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 A few miscellaneous compile-only bots are actually our current overall weak link
: | 62 A few miscellaneous compile-only bots are actually our current overall weak link
: |
| 62 - Our NaCl builds use an old non-PNaCl toolchain, which is based on GCC | 63 - Our NaCl builds use an old non-PNaCl toolchain, which is based on GCC |
| 63 4.4. GCC 4.4 has some support for C++11, but it's not nearly complete. | 64 4.4. GCC 4.4 has some support for C++11, but it's not nearly complete. |
| 64 There is no upgrade path except PNaCl; even the very latest NaCl toolchain | 65 There is no upgrade path except PNaCl; even the very latest NaCl toolchain |
| 65 is GCC 4.4, while PNaCl is based on Clang 3.4 (with complete C++11 support
). | 66 is GCC 4.4, while PNaCl is based on Clang 3.4 (with complete C++11 support
). |
| 66 - Our iOS builds are driven from a Mac 10.7 machine using some unknown old C
lang. | 67 - Our iOS builds are driven from a Mac 10.7 machine using some unknown old C
lang. |
| 67 Who knows how old that is or what it supports? It's probably due for an u
pdate. | 68 Who knows how old that is or what it supports? It's probably due for an u
pdate. |
| 68 | 69 |
| 69 If we were to eliminate the problems of the NaCl and iOS bots, our ability to | 70 If we were to eliminate the problems of the NaCl and iOS bots, our ability to |
| 70 use C++11 would match Mozilla's list nearly identically. | 71 use C++11 would match Mozilla's list nearly identically. |
| OLD | NEW |