-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
Rollup of 5 pull requests #150546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 5 pull requests #150546
Conversation
Because some AES key scheduling instructions require *either* Zkne or Zknd extension, we must have a target feature to represent `(Zkne || Zknd)`. This commit adds (perma-unstable) target feature to the RISC-V architecture: `zkne_or_zknd` for this purpose. Helped-by: sayantn <sayantn05@gmail.com>
…insics Using the inline assembly and `zkne_or_zknd` target feature could avoid current issues regarding intrinsics available when either Zkne or Zknd is available. Before this commit, intrinsics `aes64ks1i` and `aes64ks2` required both Zkne and Zknd extensions, not either Zkne or Zknd. Closes: rust-lang/stdarch#1765
This updates the rust-version file to f41f404.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: f41f404 Filtered ref: 5abf37848786e70eb8136f43225b3470afea6dea Upstream diff: rust-lang/rust@0208ee0...f41f404 This merge was created using https://github.com/rust-lang/josh-sync.
minor: Rustc pull update
…pe and remove JsonNew
The diagnostics collection globally tracks the generation for all loaded workspaces as its shared between them, yet the flycheck actors track their own separate generations per workspace. This mismatch could cause flycheck to not work correctly when multiple workspaces were loaded.
fix: Fix flycheck generations not being synced for multiple workspaces
Fix typo in a URL
This updates the rust-version file to e7d4414.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: e7d4414 Filtered ref: fe2cf3fa56a4ce08f56aee660fbe289c7d13dede Upstream diff: rust-lang/rust@f41f404...e7d4414 This merge was created using https://github.com/rust-lang/josh-sync.
minor: Rustc pull update
…e-repr-c fix: don't fire `non_camel_case_types` lint for structs/enums marked with `repr(C)`
…tyle feat: Add #[rust_analyzer::macro_style()] attribute to control macro completion brace style
Example
---
```rust
trait T {}
impl T for {}
```
**Before this PR**
```rust
trait T {}
impl T for {}
// ^ dyn
```
**After this PR**
```rust
trait T {}
impl T for {}
```
…d-dyn-hint Fix incorrect dyn hint in `impl Trait for`
This makes the tests more robust against sysroot layout changes and slightly simplifies them.
…, r=Amanieu RISC-V: Implement (Zkne or Zknd) intrinsics correctly On rust-lang/stdarch#1765, it has been pointed out that two RISC-V (64-bit only) intrinsics to perform AES key scheduling have wrong target feature. `aes64ks1i` and `aes64ks2` instructions require *either* Zkne (scalar cryptography: AES encryption) or Zknd (scalar cryptography: AES decryption) extension (or both) but corresponding Rust intrinsics (in `core::arch::riscv64`) required *both* Zkne and Zknd extensions. An excerpt from the original intrinsics: ```rust #[target_feature(enable = "zkne", enable = "zknd")] ``` To fix that, we need to: 1. Represent a condition where *either* Zkne or Zknd is available and 2. Workaround an issue: `llvm.riscv.aes64ks1i` / `llvm.riscv.aes64ks2` LLVM intrinsics require either Zkne or Zknd extension. This PR attempts to resolve them by: 1. Adding a perma-unstable RISC-V target feature: `zkne_or_zknd` (implied from both `zkne` and `zknd`) and 2. Using inline assembly to construct machine code directly (because `zkne_or_zknd` alone cannot imply neither Zkne nor Zknd, we cannot use LLVM intrinsics). The author confirmed that we can construct an AES key scheduling function with decent performance using fixed `aes64ks1i` and `aes64ks2` intrinsics (with optimization enabled).
docs: fix typo in std::io::buffered
…jackh726 Remove `feature(string_deref_patterns)` The older `string_deref_patterns` feature has been superseded by the newer and more general `deref_patterns` feature. Removing string-deref-patterns allows us to get rid of a few tricky special cases in match lowering, which are different from the special cases used by deref-patterns. The handful of existing tests for `string_deref_patterns` have been migrated to use `deref_patterns` instead. Current nightly users of the older feature should hopefully be able to migrate to the newer feature without too much trouble. Note that `deref_patterns` is currently marked as an “incomplete” feature, because it doesn't have an accepted RFC. But `string_deref_patterns` doesn't appear to have ever had an accepted RFC either, so arguably it should have been marked incomplete too. --- - Tracking issue for both features: rust-lang#87121 - Original implementation: rust-lang#98914 - [Zulip thread: Can we remove `#![feature(string_deref_patterns)]`?](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Can.20we.20remove.20.60.23!.5Bfeature.28string_deref_patterns.29.5D.60.3F/with/565787352)
`rust-analyzer` subtree update Subtree update of `rust-analyzer` to rust-lang/rust-analyzer@76d44ff. Created using https://github.com/rust-lang/josh-sync. r? `@ghost`
…r, r=Urgau,jieyouxu Use --print target-libdir in run-make tests This makes the tests more robust against sysroot layout changes and slightly simplifies them.
|
@bors r+ rollup=never p=5 |
|
☀️ Test successful - checks-actions |
|
📌 Perf builds for each rolled up PR:
previous master: a2bc948b7f In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing a2bc948 (parent) -> 8d670b9 (this PR) Test differencesShow 60 test diffsStage 0
Stage 1
Stage 2
Additionally, 10 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 8d670b93d40737e1b320fd892c6f169ffa35e49e --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (8d670b9): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesResults (primary 8.0%, secondary 17.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 475.096s -> 477.934s (0.60%) |
Successful merges:
feature(string_deref_patterns)#150530 (Removefeature(string_deref_patterns))rust-analyzersubtree update #150543 (rust-analyzersubtree update)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup