chore(deps): update dependency rust to v1.95.0#21509
Conversation
Merging this PR will degrade performance by 8.36%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | minifier[react.development.js] |
2.8 ms | 2.7 ms | +3.83% |
| ❌ | Simulation | lexer[cal.com.tsx] |
5.5 ms | 6 ms | -8.36% |
| ❌ | Simulation | lexer[RadixUIAdoptionSection.jsx] |
21.4 µs | 22.5 µs | -5.11% |
| ❌ | Simulation | lexer[react.development.js] |
362 µs | 391.4 µs | -7.5% |
| ❌ | Simulation | lexer[binder.ts] |
894.6 µs | 964 µs | -7.2% |
Comparing renovate/rust-toolchain (90fed76) with main (ddb1bf8)2
Footnotes
-
3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
-
No successful run was found on
main(df27b48) during the generation of this report, so ddb1bf8 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
d1d38d5 to
93c0145
Compare
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
There was a problem hiding this comment.
I investigate the perf regression, and have made an issue in rust repo, although it appears to be an llvm regression rust-lang/rust#155422.
There is a workaround we can change our code to emit the same assembly - #21523
Merge activity
|
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [rust](https://redirect.github.com/rust-lang/rust) | minor | `1.94.1` → `1.95.0` | --- ### Release Notes <details> <summary>rust-lang/rust (rust)</summary> ### [`v1.95.0`](https://redirect.github.com/rust-lang/rust/compare/1.94.1...1.95.0) [Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.94.1...1.95.0) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
90fed76 to
611b3b6
Compare
`Token`'s `set_*` methods used safe bitwise ops to write "fields" of `Token`. Unfortunately this regressed heavily in Rust 1.95.0, due to a bug in LLVM. Methods which were a single scalar op turned into a string of heavy SIMD ops, impacting performance. * #21509 * rust-lang/rust#155422 Re-implement these methods using unsafe pointer manipulation, which recovers the original assembly, and reverses the perf regression - gains 3% on parser benchmarks. The original implementations are left in the code as comments, in case we want to revert to them once the LLVM bug is fixed.
This PR contains the following updates:
1.94.1→1.95.0Release Notes
rust-lang/rust (rust)
v1.95.0Compare Source
Configuration
📅 Schedule: (in timezone Asia/Shanghai)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.