Use macOS signpost api for tracing (#14871)

Co-authored-by: Jarred-Sumner <Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Don Isaac <donald.isaac@gmail.com>
Co-authored-by: DonIsaac <DonIsaac@users.noreply.github.com>
Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@users.noreply.github.com>
This commit is contained in:
Jarred Sumner
2025-03-31 04:13:11 -07:00
committed by GitHub
parent 0814abe21e
commit f3da1b80bc
26 changed files with 596 additions and 129 deletions

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env bash
# This file is not run often, so we don't need to make it part of the build system.
# We do this because the event names have to be compile-time constants.
export TRACE_EVENTS=$(rg 'bun\.perf\.trace\("([^"]*)"\)' -t zig --json \
| jq -r 'select(.type == "match")' \
| jq -r '.data.submatches[].match.text' \
| cut -d'"' -f2 \
| sort \
| uniq)
echo "// Generated with scripts/generate-perf-trace-events.sh" > src/bun.js/bindings/generated_perf_trace_events.h
echo "// clang-format off" >> src/bun.js/bindings/generated_perf_trace_events.h
echo "#define FOR_EACH_TRACE_EVENT(macro) \\" >> src/bun.js/bindings/generated_perf_trace_events.h
i=0
for event in $TRACE_EVENTS; do
echo " macro($event, $((i++))) \\" >> src/bun.js/bindings/generated_perf_trace_events.h
done
echo " // end" >> src/bun.js/bindings/generated_perf_trace_events.h
echo "Generated src/bun.js/bindings/generated_perf_trace_events.h"
echo "// Generated with scripts/generate-perf-trace-events.sh" > src/generated_perf_trace_events.zig
echo "pub const PerfEvent = enum(i32) {" >> src/generated_perf_trace_events.zig
for event in $TRACE_EVENTS; do
echo " @\"$event\"," >> src/generated_perf_trace_events.zig
done
echo "};" >> src/generated_perf_trace_events.zig
echo "Generated src/generated_perf_trace_events.zig"