+1
Cheers,
Keith
> On Apr 30, 2024, at 10:06 AM, Yusuke Suzuki via webkit-dev
> wrote:
>
> Hello WebKittens!
>
> Right now, MSVC support is putting significant burden on JavaScriptCore. It
> lacks many features for JSC development,
> as a result, we have so many workarounds for MSVC in JavaScriptCore (For
> example, LLInt CLoop 16-bit opcode is disabled only for MSVC since MSVC
> cannot compile it reasonably).
>
> I talked with JSC team and Don at Sony, and now I would like to propose
> dropping MSVC support on Windows port and using clang-cl exclusively on
> Windows.
>
> There are many motivating factors for this change.
>
> 1. Post-commit testing bots (WinCairo) are using clang-cl. So literally,
> there is zero test coverage on MSVC build right now.
> 2. On the other hand, EWS is using MSVC for build test. This discrepancy is
> making maintenance of Windows ports harder and harder.
> 3. MSVC has various compilation issues which makes JSC lesser quality. Lack
> of `__builtin_frame_address` support makes JSC bloating JIT code much.
> CheckedArith has bunch of special code due to lack of overflow-detecting
> `__builtin_add_overflow` like operations, and so on. (but TBH, given there
> is zero coverage, we even don't know whether it is working right now!)
> 4. Major third-parties using Windows WebKit (e.g. Bun.js, praywright etc.)
> are using clang-cl, not MSVC.
>
> Not only solving existing issues, using clang-cl opens significant code /
> implementation quality improvements opportunities for Windows.
>
> 1. MSVC does not support various C++20 features, so it is putting our C++20
> adoption much behind (For example, we cannot use concept). By using
> clang-cl, we can start much newer set of C++20 features, improving code
> quality, static checks etc.
> 2. This paves a way to make Windows JSC implementation super solid. clang-cl
> offers sysv-abi feature for function attributes. This allows using Linux /
> macOS amd64 ABI on certain annotated functions. This basically means that we
> potentially unify our interpreter and JIT implementations completely in Linux
> / macOS / Windows for x64, (which makes our LLInt / Wasm LLInt on Windows
> super solid, plus, it paves a way to fully enable all JIT tiers on Windows
> including FTL).
>
> We already discussed with Don and we agreed on this.
> And now I would like to formally propose MSVC deprecation towards more
> cleaner and solid Windows port.
>
> Best regards,
> -Yusuke Suzuki
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev