feat(prof): build with panic=abort, std too
Description
This is an experiment that builds on Florian's feat(prof): switch panics to abort so that it also builds std with panic_abort. This should give us more helpful stack traces on panics.
Reviewer checklist
-
[ ] Test coverage seems ok.
-
[ ] Appropriate labels assigned.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 61.79%. Comparing base (12004d3) to head (7a89e11).
Additional details and impacted files
@@ Coverage Diff @@
## master #3478 +/- ##
==========================================
+ Coverage 61.77% 61.79% +0.01%
==========================================
Files 142 142
Lines 12904 12904
Branches 1689 1689
==========================================
+ Hits 7972 7974 +2
+ Misses 4172 4169 -3
- Partials 760 761 +1
see 1 file with indirect coverage changes
Continue to review full report in Codecov by Sentry.
Legend - Click here to learn more
Δ = absolute <relative> (impact),ø = not affected,? = missing dataPowered by Codecov. Last update 12004d3...7a89e11. Read the comment docs.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
For reasons that are unclear, this comes out larger than merely doing panic=abort and not rebuilding std. I could not get bloaty to build in multiple different containers, so I don't know why. Let's just ship panic=abort for now.
Benchmarks [ profiler ]
Benchmark execution time: 2025-11-13 00:27:56
Comparing candidate commit 1f7212bfa1d6368374b8f9da7b0adbd28d472fe7 in PR branch levi/panic_abort2 with baseline commit 8a812dbb34aef38b4775051662b57922641811a6 in branch florian/panic-abort.
Found 0 performance improvements and 4 performance regressions! Performance is the same for 26 metrics, 6 unstable metrics.
scenario:php-profiler-exceptions-control
- 🟥
cpu_user_time[+1.215ms; +6.236ms] or [+2.172%; +11.147%]
scenario:php-profiler-timeline-memory-with-profiler-and-timeline
- 🟥
execution_time[+27.818ms; +44.864ms] or [+2.260%; +3.644%]
scenario:walk_stack/50
- 🟥
wall_time[+570.319ns; +580.053ns] or [+3.689%; +3.752%]
scenario:walk_stack/99
- 🟥
wall_time[+661.253ns; +666.116ns] or [+4.314%; +4.346%]
Benchmarks [ tracer ]
Benchmark execution time: 2025-11-13 01:19:08
Comparing candidate commit 1f7212bfa1d6368374b8f9da7b0adbd28d472fe7 in PR branch levi/panic_abort2 with baseline commit 8a812dbb34aef38b4775051662b57922641811a6 in branch florian/panic-abort.
Found 2 performance improvements and 8 performance regressions! Performance is the same for 184 metrics, 0 unstable metrics.
scenario:ComposerTelemetryBench/benchTelemetryParsing
- 🟥
execution_time[+0.882µs; +1.718µs] or [+8.397%; +16.365%]
scenario:ComposerTelemetryBench/benchTelemetryParsing-opcache
- 🟩
execution_time[-2.162µs; -1.038µs] or [-15.333%; -7.362%]
scenario:MessagePackSerializationBench/benchMessagePackSerialization
- 🟥
execution_time[+2.948µs; +3.892µs] or [+2.822%; +3.726%]
scenario:MessagePackSerializationBench/benchMessagePackSerialization-opcache
- 🟥
execution_time[+4.994µs; +6.606µs] or [+4.939%; +6.532%]
scenario:SamplingRuleMatchingBench/benchRegexMatching1
- 🟥
execution_time[+85.125ns; +142.475ns] or [+7.261%; +12.152%]
scenario:SamplingRuleMatchingBench/benchRegexMatching2
- 🟥
execution_time[+93.567ns; +150.033ns] or [+8.097%; +12.983%]
scenario:SamplingRuleMatchingBench/benchRegexMatching3
- 🟥
execution_time[+98.332ns; +155.468ns] or [+8.378%; +13.246%]
scenario:SamplingRuleMatchingBench/benchRegexMatching4
- 🟥
execution_time[+75.604ns; +146.396ns] or [+6.421%; +12.433%]
scenario:SpanBench/benchOpenTelemetryAPI
- 🟥
mem_peak[+1.439MB; +1.459MB] or [+3.462%; +3.510%]
scenario:TraceSerializationBench/benchSerializeTrace
- 🟩
execution_time[-33.581µs; -22.919µs] or [-7.532%; -5.141%]