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

Reply via email to