| Age | Commit message (Collapse) | Author | Lines |
|
Add mailmap entry for kobzol
Hopefully I got this right.
|
|
r=Noratrieb
Do not run test where it cannot run
This was seen on Ferrocene, where we have a custom test target that does not have unwind support
|
|
Add `must_use` to `CommandExt::exec`
[CommandExt::exec](https://fburl.com/0qhpo7nu) returns a `std::io::Error` in the case exec fails, but its not currently marked as `must_use` making it easy to accidentally ignore it.
This PR adds the `must_use` attributed here as i think it fits the definition in the guide of [When to add #[must_use]](https://std-dev-guide.rust-lang.org/policy/must-use.html#when-to-add-must_use)
|
|
SolverDelegate add assoc type for Infcx
makes writing trait bounds on it a lot nicer going forward.
r? `@compiler-errors`
|
|
Enable XRay instrumentation for LoongArch Linux targets
Enable XRay instrumentation for `loongarch64-unknown-linux-{gnu, musl, ohos}` targets.
|
|
rustc_llvm: Fix flattened CLI args
Fixes string manipulation errors introduced in #130446.
|
|
Provide a more convinient way of developing rustc on NixOS
This PR adds envrc files which, once symlinked as `.envrc` will activates a dev shell from `src/tools/nix-dev-shell/flake.nix` or `src/tools/nix-dev-shell/shell.nix`.
This is based on
- [Current rustc dev guide recommendation for NixOS](https://rustc-dev-guide.rust-lang.org/building/suggested.html?highlight=nix#using-nix-shell)
- https://github.com/oxalica/rust-overlay?tab=readme-ov-file#use-in-devshell-for-nix-develop
- [Nora's `x` nix package](https://github.com/Noratrieb/nixos/tree/26ea68e1a0aadaab313c1b5a8c1033a9770bd138/custom-pkgs/x)
- https://github.com/rust-lang/rustup/pull/2891
- [Direnv: use flake/nix according to availability](https://discourse.nixos.org/t/direnv-use-flake-nix-according-to-availability/29825)
This is something that I plan to use personally, but I thought it might be worth upstreaming :)
r? Noratrieb
|
|
|
|
optimize str.replace
Adds a fast path for str.replace for the ascii to ascii case. This allows for autovectorizing the code. Also should this instead be done with specialization? This way we could remove one branch. I think it is the kind of branch that is easy to predict though.
Benchmark for the fast path (replace all "a" with "b" in the rust wikipedia article, using criterion) :
| N | Speedup | Time New (ns) | Time Old (ns) |
|----------|---------|---------------|---------------|
| 2 | 2.03 | 13.567 | 27.576 |
| 8 | 1.73 | 17.478 | 30.259 |
| 11 | 2.46 | 18.296 | 45.055 |
| 16 | 2.71 | 17.181 | 46.526 |
| 37 | 4.43 | 18.526 | 81.997 |
| 64 | 8.54 | 18.670 | 159.470 |
| 200 | 9.82 | 29.634 | 291.010 |
| 2000 | 24.34 | 81.114 | 1974.300 |
| 20000 | 30.61 | 598.520 | 18318.000 |
| 1000000 | 29.31 | 33458.000 | 980540.000 |
|
|
|
|
Subtree update of `rust-analyzer`
r? `@ghost`
|
|
This was seen on Ferrocene, where we have a custom test target that does not have unwind support
|
|
|
|
|
|
minor: sync from downstream
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #128391 (Change orphan hint from "only" to "any uncovered type inside...")
- #131583 (Setting up indirect access to external data for loongarch64-linux-{musl,ohos})
- #131595 (rustdoc-JSON: Rename "object safe" to "dyn compatible")
- #131748 (cleanup canonical queries)
- #131798 (llvm: Tolerate propagated range metadata)
- #131815 (compiler: use `is_none_or` where it is clearly better)
- #131822 (extract `expr_assign_expected_bool_error`)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
extract `expr_assign_expected_bool_error`
moving diagnostics code out of the happy path makes it a lot easier to read imo
|
|
compiler: use `is_none_or` where it is clearly better
heuristic was: if it easily allows removing bangs entirely? worth it. if it requires more effort or just moves the bang? not.
|
|
llvm: Tolerate propagated range metadata
llvm/llvm-project#91101 propagates range information across inlining, resulting in more metadata in this test. Tolerate the range metadata if it appears.
``@rustbot:`` label +llvm-main
r? ``@durin42``
Please wait a moment before approving, putting the llvm-main tag on it to make sure it fixes the integration test.
|
|
cleanup canonical queries
best reviewed commit by commit. adding `CanonicalQueryInput` to stop returning `defining_opaque_types` in query responses is the most involved change here.
r? ``@compiler-errors``
|
|
r=aDotInTheVoid
rustdoc-JSON: Rename "object safe" to "dyn compatible"
~~Blocked: Sits atop #131594. Only the last commit is relevant.~~ (rebased)
Part of #130852.
r? aDotInTheVoid or rustdoc
|
|
Setting up indirect access to external data for loongarch64-linux-{musl,ohos}
In issue #118053, the `loongarch64-unknown-linux-gnu` target needs indirection to access external data, and so do the `loongarch64-unknown-linux-musl` and `loongarch64-unknown-linux-ohos` targets.
|
|
Change orphan hint from "only" to "any uncovered type inside..."
Fix #128390
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
heuristic was: if it easily allows removing bangs entirely? worth it.
if it requires more effort or just moves the bang? not.
|
|
Bump version of scip crate
Follow up to https://github.com/sourcegraph/scip/issues/284
Manually verified that SCIP generation works OK for rust-analyzer itself.
cc `@RalfJung`
|
|
|
|
Make destructors on `extern "C"` frames to be executed
This would make the example in #123231 print "Noisy Drop". I didn't mark this as fixing the issue because the behaviour is yet to be spec'ed.
Tracking:
- https://github.com/rust-lang/rust/issues/74990
|
|
Remove `Waker::waker` from 1.82 relnotes
This was noticed in <https://github.com/rust-lang/blog.rust-lang.org/pull/1415#pullrequestreview-2371307666>.
|
|
internal: Use local time when formatting logs
When debugging rust-analyzer and looking at logs, it's much easier to read when the timestamp is in the local timezone.
Before:
2024-08-28T20:55:38.792321Z INFO ParseQuery: invoked at R18460
After:
2024-08-28T13:55:38.792321-07:00 INFO ParseQuery: invoked at R18460
|
|
When debugging rust-analyzer and looking at logs, it's much easier to read
when the timestamp is in the local timezone.
Before:
2024-08-28T20:55:38.792321Z INFO ParseQuery: invoked at R18460
After:
2024-08-28T13:55:38.792321-07:00 INFO ParseQuery: invoked at R18460
|
|
|
|
Fixes string manipulation errors introduced in #130446.
|
|
|
|
Rollup of 9 pull requests
Successful merges:
- #130989 (Don't check unsize goal in MIR validation when opaques remain)
- #131657 (Rustfmt `for<'a> async` correctly)
- #131691 (Delay ambiguous intra-doc link resolution after `Cache` has been populated)
- #131730 (Refactor some `core::fmt` macros)
- #131751 (Rename `can_coerce` to `may_coerce`, and then structurally resolve correctly in the probe)
- #131753 (Unify `secondary_span` and `swap_secondary_and_primary` args in `note_type_err`)
- #131776 (Emscripten: Xfail backtrace ui tests)
- #131777 (Fix trivially_copy_pass_by_ref in stable_mir)
- #131778 (Fix needless_lifetimes in stable_mir)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
llvm/llvm-project#91101 propagates range information across inlining,
resulting in more metadata in this test. Tolerate the range metadata if
it appears.
|
|
Fix needless_lifetimes in stable_mir
Hi,
This PR fixes the following clippy warning
```
warning: the following explicit lifetimes could be elided: 'a
--> compiler/stable_mir/src/mir/visit.rs:490:6
|
490 | impl<'a> PlaceRef<'a> {
| ^^ ^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
= note: `#[warn(clippy::needless_lifetimes)]` on by default
help: elide the lifetimes
|
490 - impl<'a> PlaceRef<'a> {
490 + impl PlaceRef<'_> {
|
```
Best regards,
Michal
|
|
Fix trivially_copy_pass_by_ref in stable_mir
Hi,
This PR fixes the following clippy warnings
```
warning: this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte)
--> compiler/stable_mir/src/mir/body.rs:1042:34
|
1042 | fn subslice_ty(ty: Ty, from: &u64, to: &u64, from_end: &bool) -> Result<Ty, Error> {
| ^^^^ help: consider passing by value instead: `u64`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
= note: requested on the command line with `-W clippy::trivially-copy-pass-by-ref`
warning: this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte)
--> compiler/stable_mir/src/mir/body.rs:1042:44
|
1042 | fn subslice_ty(ty: Ty, from: &u64, to: &u64, from_end: &bool) -> Result<Ty, Error> {
| ^^^^ help: consider passing by value instead: `u64`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte)
--> compiler/stable_mir/src/mir/body.rs:1042:60
|
1042 | fn subslice_ty(ty: Ty, from: &u64, to: &u64, from_end: &bool) -> Result<Ty, Error> {
| ^^^^^ help: consider passing by value instead: `bool`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
```
Best regards,
Michal
|
|
Emscripten: Xfail backtrace ui tests
It is possible to link libunwind and use the normal backtrace code, but it fails to symbolize stack traces. I investigated and could get the list of instruction pointers and symbol names, but I'm not sure how to use the dwarf info to map from instruction pointer to source location. In any case, fixing this is not a high priority.
See https://github.com/rust-lang/rust/issues/131738
r?jieyouxu
|
|
Unify `secondary_span` and `swap_secondary_and_primary` args in `note_type_err`
Tiny tweak b/c working w `note_type_err` is kinda a mess.
|