-
Notifications
You must be signed in to change notification settings - Fork 5k
Upgrade WebKit to 6d586e29 #31724
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Upgrade WebKit to 6d586e29 #31724
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,7 +7,7 @@ | |
| // -lto variants built with ThinLTO (per-module summaries for cross-language | ||
| // importing), and the Windows ICU data table filtered + per-item zstd | ||
| // compressed (lazily decompressed via bun_icu_decompress.cpp). | ||
| export const WEBKIT_VERSION = "963f8758c29e965471c191668d5776a1a1b014b6"; | ||
| export const WEBKIT_VERSION = "6d586e293f008f0e74e5697611a379b1b24815c9"; | ||
|
Check warning on line 10 in scripts/build/deps/webkit.ts
|
||
|
|
||
| /** | ||
| * WebKit (JavaScriptCore) — the JS engine. | ||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 This bump includes
c787a5a7("windows cross: add the amd64-baseline ThinLTO variant"), sobun-webkit-windows-amd64-baseline-lto.tar.gznow exists in the pinned release. However,scripts/build/config.ts:769still hard-forceslto = falsefor(windows && baseline), and the comments atconfig.ts:746-748andconfig.ts:767-768still claim the pinnedWEBKIT_VERSIONlacks/predates the-baseline-ltovariant — both are now factually wrong. Consider dropping|| baselinefrom the gate (or at minimum updating the comments) alongside this bump.Extended reasoning...
What the issue is
scripts/build/config.tscontains a hard override that forces LTO off for Windows baseline builds, with an inline rationale tied directly to the pinned WebKit version:And earlier:
Both comments assert that the pinned WebKit release lacks a
windows-amd64-baseline-ltoartifact. That was true at963f8758, but this PR bumpsWEBKIT_VERSIONto6d586e29, whose range includes commitc787a5a7"windows cross: add the amd64-baseline ThinLTO variant". The releaseautobuild-6d586e29…therefore does publishbun-webkit-windows-amd64-baseline-lto.tar.gz.Step-by-step proof
WEBKIT_VERSION = "963f8758…". Theautobuild-963f8758…release has no…-windows-amd64-baseline-lto.tar.gz, so the gate atconfig.ts:769is necessary — without it,prebuiltSuffix()would emit-baseline-ltoand the download would 404.WEBKIT_VERSIONto"6d586e29…". Per the PR description, that range includesc787a5a7"windows cross: add the amd64-baseline ThinLTO variant", and the linked release page now contains the-baseline-ltoasset.config.tsis not touched by this PR, so line 769 still reads(windows && (arm64 || baseline))and line 768 still says "the pinned WEBKIT_VERSION predates the -baseline-lto variant".--lto=on. The conditionwindows && baselinematches, soltois silently forced tofalse.prebuiltSuffix()(webkit.ts:62-74) then returns-baselineinstead of-baseline-lto, fetching the non-LTO artifact even though the LTO one exists.prebuiltSuffix()produces are present in the release" — cannot catch this, because the gate makes the-baseline-ltosuffix unreachable from any config.Why nothing else justifies the gate
The ThinLTO miscompile concern at
config.ts:750-760only removes Windows from the LTO default (ltoDefault); explicit--lto=onis still permitted for non-baseline Windows x64. So the only documented reason for the baseline-specific hard override is the missing artifact — and that reason is invalidated by this exact bump. The arm64 half of the gate has its own separate (still-valid) rationale about the CodeView emitter.Impact
No correctness regression — builds still succeed and produce a working binary. The effects are:
--lto=onfor Windows amd64 baseline is silently downgraded with no warning, even though the matching prebuilt now exists.config.tsmake a factual claim about the pinnedWEBKIT_VERSIONthat becomes false the moment this PR lands, which will confuse the next person reading this code.Suggested fix
Alongside this bump, either:
|| baselinefrom the(windows && (arm64 || baseline))clause atconfig.ts:769and update both comments accordingly, orconfig.ts:746-748andconfig.ts:767-768so they no longer claim the pinned version lacks the artifact (and explain why the gate remains, if it should).