Skip to content

Upgrade WebKit to 4d5e75ebd84a14edbc7ae264245dcd77fe597c10#29294

Merged
Jarred-Sumner merged 1 commit into
mainfrom
claude/webkit-upgrade-4d5e75e
Apr 14, 2026
Merged

Upgrade WebKit to 4d5e75ebd84a14edbc7ae264245dcd77fe597c10#29294
Jarred-Sumner merged 1 commit into
mainfrom
claude/webkit-upgrade-4d5e75e

Conversation

@Jarred-Sumner

Copy link
Copy Markdown
Collaborator

Upgrades WebKit from 8b7f6f704d5e75eb (1 commit).

bmalloc / libpas Changes

  • Windows: lazy-commit the 128 MB compact-heap reservation (4d5e75eb). On Windows, pas_compact_heap_reservation previously committed the entire 128 MB region eagerly via VirtualAlloc(MEM_COMMIT|MEM_RESERVE) because pas_page_malloc lacks a reserve-only verb there. Only ~3–8 MB past the bump pointer is ever actually used, and the scavenger never reclaims this region. This change extends the existing PlayStation reserve-then-commit-on-bump path to Windows. Linux/macOS are unaffected (already lazy via mmap MAP_NORESERVE).

Compatibility Notes

  • JSType.h: no changes — src/bun.js/bindings/JSType.zig needs no update.
  • WebCore bindings codegen (Source/WebCore/bindings/scripts/): no changes.
  • Only file touched: Source/bmalloc/libpas/src/libpas/pas_compact_heap_reservation.c (+15/−2).

@robobun

robobun commented Apr 14, 2026

Copy link
Copy Markdown
Collaborator
Updated 10:36 PM PT - Apr 13th, 2026

@Jarred-Sumner, your commit 4f86e7c has 3 failures in Build #45625 (All Failures):


🧪   To try this PR locally:

bunx bun-pr 29294

That installs a local version of the PR into your bun-29294 executable, so you can run:

bun-29294 --bun

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — simple version hash bump.

Extended reasoning...

Overview

Single-line change updating the WebKit commit hash in scripts/build/deps/webkit.ts. The underlying WebKit change is a narrow Windows-only memory optimization in pas_compact_heap_reservation.c (+15/−2 lines): switching from eager VirtualAlloc(MEM_COMMIT|MEM_RESERVE) to lazy commit on bump, matching the existing PlayStation path. Linux/macOS are unaffected.

Security Risks

None. This is a dependency version bump with no auth, crypto, or permission changes. The WebKit change itself reduces memory footprint without altering security boundaries.

Level of Scrutiny

Minimal scrutiny required. This follows the established automated WebKit upgrade pattern seen in the repo's recent commit history (multiple similar upgrades visible in the log). The PR description confirms no ABI-breaking changes and no Zig binding updates needed.

Other Factors

No CODEOWNER-sensitive files touched. No bugs found by the hunting system. No outstanding reviewer comments. Automated build is already triggered.

@github-actions

Copy link
Copy Markdown
Contributor

Found 3 issues this PR may fix:

  1. webkit: re-add -DUSE_SYSTEM_MALLOC=ON to Windows prebuilts #28101 - Directly about bmalloc on Windows; this PR's lazy-commit change for the 128MB compact-heap reservation partially addresses the Windows bmalloc memory issues motivating the switch to system malloc
  2. bun --bun run dev allocates 10Gb of memory for empty Nuxt project #16898 - Windows-specific 10GB memory allocation for an empty Nuxt project; reducing eagerly committed bmalloc baseline helps the reported overhead
  3. Bun uses much more memory (>3x) then node (23.11.0) for simple scripts (also with potential memory leak) #19254 - Windows-specific >3x memory vs Node for simple scripts; reducing the eagerly committed 128MB compact heap reservation directly reduces baseline overhead

If this is helpful, copy the block below into the PR description to auto-close these issues on merge.

Fixes #28101
Fixes #16898
Fixes #19254

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: a3754ba6-26a7-4864-a1aa-e654089c1aab

📥 Commits

Reviewing files that changed from the base of the PR and between 3ddb32b and 4f86e7c.

📒 Files selected for processing (1)
  • scripts/build/deps/webkit.ts

Walkthrough

The WEBKIT_VERSION constant in scripts/build/deps/webkit.ts has been updated to reference a different WebKit commit hash, changing the target for prebuilt WebKit downloads when using the prebuilt configuration.

Changes

Cohort / File(s) Summary
WebKit Version Update
scripts/build/deps/webkit.ts
Updated WEBKIT_VERSION constant from 8b7f6f706720ab7e5284906c29f2fbf77dfbd1e9 to 4d5e75ebd84a14edbc7ae264245dcd77fe597c10 to target different prebuilt tarball.
🚥 Pre-merge checks | ✅ 1 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The description includes detailed technical information about the changes but lacks required template sections: 'What does this PR do?' and 'How did you verify your code works?' are not explicitly addressed. Restructure the description to explicitly follow the template with clear 'What does this PR do?' and 'How did you verify your code works?' sections.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and specifically identifies the main change: upgrading WebKit to a specific commit hash.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@Jarred-Sumner Jarred-Sumner merged commit 903015a into main Apr 14, 2026
55 of 58 checks passed
@Jarred-Sumner Jarred-Sumner deleted the claude/webkit-upgrade-4d5e75e branch April 14, 2026 05:05
structwafel pushed a commit to structwafel/bun that referenced this pull request Apr 25, 2026
…9294)

Upgrades WebKit from `8b7f6f70` → `4d5e75eb` (1 commit).

## bmalloc / libpas Changes

- **Windows: lazy-commit the 128 MB compact-heap reservation**
([4d5e75eb](oven-sh/WebKit@4d5e75eb)). On
Windows, `pas_compact_heap_reservation` previously committed the entire
128 MB region eagerly via `VirtualAlloc(MEM_COMMIT|MEM_RESERVE)` because
`pas_page_malloc` lacks a reserve-only verb there. Only ~3–8 MB past the
bump pointer is ever actually used, and the scavenger never reclaims
this region. This change extends the existing PlayStation
reserve-then-commit-on-bump path to Windows. Linux/macOS are unaffected
(already lazy via `mmap MAP_NORESERVE`).

## Compatibility Notes

- `JSType.h`: no changes — `src/bun.js/bindings/JSType.zig` needs no
update.
- WebCore bindings codegen (`Source/WebCore/bindings/scripts/`): no
changes.
- Only file touched:
`Source/bmalloc/libpas/src/libpas/pas_compact_heap_reservation.c`
(+15/−2).
xhjkl pushed a commit to xhjkl/bun that referenced this pull request May 14, 2026
…9294)

Upgrades WebKit from `8b7f6f70` → `4d5e75eb` (1 commit).

## bmalloc / libpas Changes

- **Windows: lazy-commit the 128 MB compact-heap reservation**
([4d5e75eb](oven-sh/WebKit@4d5e75eb)). On
Windows, `pas_compact_heap_reservation` previously committed the entire
128 MB region eagerly via `VirtualAlloc(MEM_COMMIT|MEM_RESERVE)` because
`pas_page_malloc` lacks a reserve-only verb there. Only ~3–8 MB past the
bump pointer is ever actually used, and the scavenger never reclaims
this region. This change extends the existing PlayStation
reserve-then-commit-on-bump path to Windows. Linux/macOS are unaffected
(already lazy via `mmap MAP_NORESERVE`).

## Compatibility Notes

- `JSType.h`: no changes — `src/bun.js/bindings/JSType.zig` needs no
update.
- WebCore bindings codegen (`Source/WebCore/bindings/scripts/`): no
changes.
- Only file touched:
`Source/bmalloc/libpas/src/libpas/pas_compact_heap_reservation.c`
(+15/−2).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants