Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 798259bfdaae4800a7ca849ca6ff224e805e42e7
https://github.com/WebKit/WebKit/commit/798259bfdaae4800a7ca849ca6ff224e805e42e7
Author: Brent Fulgham <[email protected]>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M Source/WebKit/CMakeLists.txt
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources-output.xcfilelist
M Source/WebKit/DerivedSources.make
M Source/WebKit/Scripts/generate-serializers.py
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
A Source/WebKit/Shared/WebCoreArgumentCodersPlatform.serialization.in
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
Log Message:
-----------
Further partition the generated serializer code to reduce build time
https://bugs.webkit.org/show_bug.cgi?id=317332
rdar://179962286
Reviewed by Geoffrey Garen.
The final stages of the WebKit build are dominated by a single file
(GeneratedSerializersShared.mm) which is roughly 1.4 MB of generated code. This
delayed
all downstream stages for nearly one minute.
This patch splits that single input by WebCore source subdirectory regions:
Things whose
declared types live under WebCore/platform/ move to a new
Shared/WebCoreArgumentCodersPlatform.serialization.in
file; the rest remain in Shared/WebCoreArgumentCoders.serialization.in.
The new bundle compiles concurrently with the two residual shards instead of
serializing
behind them. After this change the three biggest GeneratedSerializer bundles
cluster within
a few seconds of each other, and clean-build wall time dropped by nearly 43
seconds
on a Mac Studio M2 Ultra (~43s, ~3.8%).
* Source/WebKit/CMakeLists.txt: Register the new input and the new
GeneratedSerializersSharedWebCoreArgumentCodersPlatform.mm output.
* Source/WebKit/DerivedSources-input.xcfilelist: Ditto.
* Source/WebKit/DerivedSources-output.xcfilelist: Ditto.
* Source/WebKit/DerivedSources.make: Ditto.
* Source/WebKit/Scripts/generate-serializers.py: Add
'Shared/WebCoreArgumentCodersPlatform'
to BUNDLE_PREFIXES so the new input gets its own dedicated output bundle.
(_expand_bundles_with_shards):
(derive_bundle):
(assign_shards):
(assign_shards.declaration_count):
(generate_extra_header):
(generate_extra_header.Decoder):
(generate_extra_header.Encoder):
(generate_extra_header.StreamConnectionEncoder):
(generate_impl):
(main):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: Reduced to the
types that
do not live under WebCore/platform/.
* Source/WebKit/Shared/WebCoreArgumentCodersPlatform.serialization.in: Added.
These are
the things that were in the Platform half of the original file.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj: Ditto.
Canonical link: https://commits.webkit.org/315611@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications