[Webkit-unassigned] [Bug 226070] New: [MSVC] The "/Zc:lambda" switch is recommended to use the new lambda processor.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri May 21 00:04:10 PDT 2021


https://bugs.webkit.org/show_bug.cgi?id=226070

            Bug ID: 226070
           Summary: [MSVC] The "/Zc:lambda" switch is recommended to use
                    the new lambda processor.
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: PC
                OS: Windows 10
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: 1998zhangyi at gmail.com

Environment:
VS 2019 + Windows Server 2016

Issue description:
The MSVC team uses Webkit project as a test case to detect compiler regressions. Recently, two Webkit ports WinCairo and AppleWin triggered an old lambda processor issue on MSVC, which is an irreconcilable old lambda processor issue. Therefore, it is recommended to turn on "/Zc:lambda" switch to use new lambda processor to avoid this problem.

Some opinions from MSVC developers:
Note: the Webkit failure is an issue with the old lambda processor in which one or more lambdas (each of which contains one or more nested lambdas) are generated from a macro expansion. Trying to tell the lambdas apart is an exercise in futility (in the old, token based lambda processor the ‘identity’ for a lambda is the SFA of the initial ‘[‘) and code like this was one of the motivating reasons for starting on the lambda rejuvenation effort.

Repro Steps:
1. git clone https://github.com/WebKit/webkit F:\gitP\WebKit\webkit
2. open a VS 2019 x64 command prompt as admin and browse to F:\gitP\WebKit\webkit
3. download latest WebKitAuxiliaryLibrary.zip from https://developer.apple.com/opensource/internet/WebKitAuxiliaryLibrary.zip and unzip to F:\gitP\WebKit\webkit\WebKitLibraries\win
4. download latest WebKitSupportLibrary.zip from https://developer.apple.com/opensource/internet/webkit_sptlib_agree.html and unzip to F:\gitP\WebKit\webkit\WebKitLibraries\win
5. mkdir F:\gitP\WebKit\webkit\build_amd64_AppleWin
6. cd F:\gitP\WebKit\webkit\build_amd64_AppleWin
7. cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_VERSION=10.0.18362.0 -DCMAKE_BUILD_TYPE=Release -DRUBY_LIBRARY=C:\tools\ruby26\lib -DPORT="AppleWin" ..
8. msbuild /p:Platform=x64 /p:Configuration=Release WebKit.sln /t:Rebuild

Error Info:
F:\gitP\WebKit\webkit\Source\JavaScriptCore\heap\Heap.cpp(2827): Assertion failed: iter->second.EncodedIndex() != encodedIndex, file d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl\p1\c\lambdas.cpp, line 2464 [when compiling F:\gitP\WebKit\webkit\build_amd64_AppleWin\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-ee8a7a7a-3.cpp]
    c1xx!assertfe()+0x106
        d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl\p1\c\debug.c Line 333
    c1xx!LambdaProcessor::Process()+0x8c3
        d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl\p1\c\lambdas.cpp Line 2462
    c1xx!PrimaryParser::Parse()+0xd9ae
        d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl\p1\cxx\grammar.y Line 11319
    c1xx!`CallPrimaryParser'::`2'::<lambda_1>::operator()()+0x19
        d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl\p1\cxx\grammar.y Line 13808
    c1xx!CallPrimaryParser()+0x14e
        d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl\p1\cxx\grammar.y Line 13829
    c1xx!main_compile()+0xfa2
        d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl\p1\c\main.c Line 3094

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20210521/2775ece1/attachment-0001.htm>


More information about the webkit-unassigned mailing list