[meta] Compile as C++20
Categories
(Firefox Build System :: General, task, P3)
Tracking
(Not tracked)
People
(Reporter: cpeterson, Unassigned)
References
(Depends on 1 open bug, Blocks 10 open bugs)
Details
(Keywords: meta)
Attachments
(1 file)
Who knows when we'll be able to compiled with -std=c++20, but in the meantime we can use this meta bug to gather the work needed to compile as C++20 and the new improvements that will become available with C++20.
When compiling as C++20, __cplusplus == 202002
.
Summary of C++20 language changes: https://en.cppreference.com/w/cpp/20
Clang's C++20 support: https://clang.llvm.org/cxx_status.html#cxx20
GCC's C++20 support: https://gcc.gnu.org/projects/cxx-status.html#cxx20
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Comment 1•3 years ago
|
||
This slide deck from a Google engineer details some of the problems (and fixes) found when updating Chrome from C++17 to C++20:
"C++20, How Hard Could It Be"
https://docs.google.com/presentation/d/1HwLNSyHxy203eptO9cbTmr7CH23sBGtTrfOmJf9n0ug/preview?resourcekey=0-GH5F3wdP7D4dmxvLdBaMvw
Chrome's C++20 meta bug:
https://bugs.chromium.org/p/chromium/issues/detail?id=1284275
Comment 2•3 years ago
|
||
Thanks for working on this!
Comment 3•3 years ago
|
||
FYI, I don't expect we'd be able to actually switch to C++20 for a few years.
Comment 4•3 years ago
|
||
What are our unlisted blockers? Our good friends hazard-builds and android toolchains?
FWIW, we went c++17 on 2019-12-03, so it's we're neither really ahead nor behind our previous pace.
Reporter | ||
Comment 5•3 years ago
|
||
(In reply to Kelsey Gilbert [:jgilbert] from comment #4)
What are our unlisted blockers? Our good friends hazard-builds and android toolchains?
IIUC, we still need to support clang 5.0 for some older Linux distros, but I don't know which distros are blocking us today. There is some 2019 discussion in bug 1579189 comment 6 about clang support on Debian 8 and 9, though Sylvestre replied that clang versions up to 8 were available on Debian 8 at that time.
Reporter | ||
Updated•2 years ago
|
Reporter | ||
Updated•2 years ago
|
Reporter | ||
Updated•7 months ago
|
Comment 6•5 months ago
|
||
Chris, Does Firefox have a time frame for switching to C++20? I ask because we have a library in Thunderbird that's gone EOL and the new version requires C++20.
Reporter | ||
Comment 7•5 months ago
|
||
(In reply to Corey Bryant from comment #6)
Does Firefox have a time frame for switching to C++20? I ask because we have a library in Thunderbird that's gone EOL and the new version requires C++20.
We don't have a definite ETA, but the priority has increased because Gecko depends on Google's Skia graphics and the next version will require C++20. The main blocker is updating our minimum clang, gcc, and libstdc++ versions in bug 1880779.
Just curious for future reference, what Thunderbird library will require C++20?
Comment 8•4 months ago
|
||
(In reply to Chris Peterson [:cpeterson] from comment #7)
(In reply to Corey Bryant from comment #6)
Does Firefox have a time frame for switching to C++20? I ask because we have a library in Thunderbird that's gone EOL and the new version requires C++20.
We don't have a definite ETA, but the priority has increased because Gecko depends on Google's Skia graphics and the next version will require C++20. The main blocker is updating our minimum clang, gcc, and libstdc++ versions in bug 1880779.
Just curious for future reference, what Thunderbird library will require C++20?
Chatted with Chris offline about this.
Comment 9•4 months ago
|
||
(In reply to Corey Bryant from comment #6)
Chris, Does Firefox have a time frame for switching to C++20? I ask because we have a library in Thunderbird that's gone EOL and the new version requires C++20.
Chatted with glandium and he said updating the minimum versions would come somewhere in the 140 or 141 cycle, probably.
Reporter | ||
Comment 10•2 months ago
|
||
Updated•24 days ago
|
Updated•19 days ago
|
Description
•