Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 34aca645c7fa15db0ea062c9259d824834be9792
https://github.com/WebKit/WebKit/commit/34aca645c7fa15db0ea062c9259d824834be9792
Author: Elliott Williams <[email protected]>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M CMakeLists.txt
M Source/cmake/OptionsCommon.cmake
M Tools/Scripts/measure-build-time
M Tools/Scripts/swift/ninja_build_trace.py
M Tools/Scripts/swift/ninja_build_trace_unittest.py
M Tools/Scripts/swift/swiftc-wrapper.py
M Tools/Scripts/swift/swiftc_job_recorder.py
M Tools/Scripts/webkitpy/scripts/measure_build_time_unittest.py
Log Message:
-----------
[Build speed] Collect swift/ninja traces in measure-build-time
https://bugs.webkit.org/show_bug.cgi?id=323380
rdar://186613991
Reviewed by Geoffrey Garen.
Add --trace and --trace-dir options to mbt that configure a CMake build
with SWIFT_NINJA_TRACE=ON and produce a directory of JSON traces. This
will be consumed by CI to collect and upload traces for builds.
To support tracing without breaking Swift-C++ dependency tracking added
in 320311@main, refactor swiftc-wrapper.py to support a nested wrapper.
Now, trace mode causes CMake to invoke swiftc-wrapper which in turn
invokes swiftc_job_recorder which is what actually calls the frontend.
* Source/cmake/OptionsCommon.cmake:
* Tools/Scripts/measure-build-time:
(Task):
(Task.__init__):
(Task.run):
(run_test):
(write_build_trace):
(Arguments):
(get_args):
(main):
* Tools/Scripts/swift/ninja_build_trace.py:
(main):
* Tools/Scripts/swift/ninja_build_trace_unittest.py:
(MainTest._two_invocation_log):
(MainTest):
(MainTest._run_main):
(MainTest.test_the_busiest_invocation_wins_when_nothing_bounds_the_time):
(MainTest.test_since_epoch_ms_picks_the_later_invocation):
(MainTest.test_since_epoch_ms_after_every_invocation_writes_nothing):
(MainTest.test_a_gz_suffix_writes_a_gzipped_trace):
(RecorderTest.test_recorder_forwards_every_flag_it_does_not_own):
(RecorderTest.test_recorder_drops_only_the_wrapper_flags_it_knows): Deleted.
* Tools/Scripts/webkitpy/scripts/measure_build_time_unittest.py:
(MeasureBuildTimeTest._run_script):
(MeasureBuildTimeTest):
* CMakeLists.txt:
* Tools/Scripts/swift/swiftc-wrapper.py:
(main):
* Tools/Scripts/swift/swiftc_job_recorder.py:
(parse_args):
Canonical link: https://commits.webkit.org/320545@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications