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

Reply via email to