Summary: | Start using C++20 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Alex Christensen <achristensen> | ||||||||||||||||||||||||||||||||||
Component: | New Bugs | Assignee: | Alex Christensen <achristensen> | ||||||||||||||||||||||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||||||||||||||||||||||
Severity: | Normal | CC: | annulen, benjamin, cdumez, cmarcelo, darin, ddkilzer, dino, eric.carlson, ews-watchlist, gyuyoung.kim, hi, Hironori.Fujii, kbr, keith_miller, kondapallykalyan, mark.lam, msaboff, pangle, ryuan.choi, saam, sergio, tzagallo, webkit-bug-importer, ysuzuki | ||||||||||||||||||||||||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||||||||||||||||||||||||
Version: | WebKit Nightly Build | ||||||||||||||||||||||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||||||||||||||||||||||
OS: | Unspecified | ||||||||||||||||||||||||||||||||||||
See Also: |
https://bugs.webkit.org/show_bug.cgi?id=234022 https://bugs.webkit.org/show_bug.cgi?id=234933 https://bugs.webkit.org/show_bug.cgi?id=195548 https://bugs.webkit.org/show_bug.cgi?id=234546 |
||||||||||||||||||||||||||||||||||||
Bug Depends on: | 233448, 234933, 234995 | ||||||||||||||||||||||||||||||||||||
Bug Blocks: | 235018, 235023 | ||||||||||||||||||||||||||||||||||||
Attachments: |
|
Description
Alex Christensen
2021-12-07 17:29:39 PST
Created attachment 446264 [details]
Patch
Can you separate code changes from C++20 compiler option change? Also need to change the following things. cmake/OptionsCommon.cmake (CMAKE_CXX_STANDARD) bmalloc/libpas/CMakeLists.txt (CMAKE_CXX_STANDARD) JavaScriptCore/shell/PlatformPlayStation.cmake Totally. This is just a preview of what it would take. Created attachment 446640 [details]
Patch
Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE Created attachment 446666 [details]
Patch
Created attachment 446745 [details]
Patch
Created attachment 446764 [details]
Patch
GCC builds are failing due to is_pod is deprecated. Created attachment 447747 [details]
WinCairo fix
Created attachment 447754 [details]
Patch
Comment on attachment 447754 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=447754&action=review > Source/WTF/wtf/VectorTraits.h:59 > + struct VectorTraits : VectorTraitsBase<std::is_standard_layout<T>::value && std::is_trivial<T>::value, T> { }; Why not use is_standard_layout_v and is_trivial_v instead? > Source/WebCore/platform/ios/wak/WebCoreThread.mm:248 > +#pragma clang diagnostic push > +#pragma clang diagnostic ignored "-Wdeprecated-volatile" Can we use IGNORE_CLANG_WARNINGS_BEGIN/END instead of direct use of the pragma? Created attachment 448438 [details]
Patch
Really looking forward to https://en.cppreference.com/w/cpp/language/default_comparisons Created attachment 448456 [details]
Patch
Created attachment 448471 [details]
char8_t
Created attachment 448474 [details]
char8_t is not available on GCC 8
Created attachment 448475 [details]
char8_t is not available on GCC 8
Created attachment 448476 [details]
char8_t is not available on GCC 8
Created attachment 448477 [details]
char8_t is not available on GCC 8
Created attachment 448478 [details]
char8_t is not available on GCC 8
Comment on attachment 448456 [details]
Patch
r=me with the attached char8_t fix :) (which makes EWS green)
AppleWin EWS reported some test crashing. They are true-positive. Filed: Bug 234933 – [AppleWin] Some fast/shadow-dom/fullscreen-in-* tests are crashing after r287698 Reverted in r287768 and r287770. There is an internal header in pre-Monterey OSes that uses enums in ways that C++20 doesn't like. Hopefully I can find a workaround... Reopening to attach new patch. Created attachment 448624 [details]
Patch
Committed r287848 (245897@main): <https://commits.webkit.org/245897@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 448624 [details]. I wonder if either of these NS Visual C++ bugs were fixed as part of this effort: Bug 195548: [MS Visual C++] Source incompatibility with C++20 <https://bugs.webkit.org/show_bug.cgi?id=195548> Bug 234546: MSVC reports "SVGPropertyAnimator.h(94): error C2839: invalid return type 'T *' for overloaded 'operator ->'" with /std:c++20 <https://bugs.webkit.org/show_bug.cgi?id=234546> |