| Age | Commit message (Collapse) | Author | Lines |
|
- remove unused `llvm.aarch64.neon.frintn` from cg_clif
|
|
|
|
Rollup of 8 pull requests
Successful merges:
- rust-lang/rust#140715 (Clarify &mut-methods' docs on sync::OnceLock)
- rust-lang/rust#141677 (Async drop - type instead of async drop fn, fixes rust-lang/rust#140484)
- rust-lang/rust#141741 (Overhaul `UsePath`)
- rust-lang/rust#141873 (Fixed a typo in `ManuallyDrop`'s doc)
- rust-lang/rust#141876 (Don't declare variables in `ExprKind::Let` in invalid positions)
- rust-lang/rust#141886 (Add missing 2015 edition directives)
- rust-lang/rust#141889 (Add missing `dyn` keywords to tests that do not test for them)
- rust-lang/rust#141891 (Fix borrowck mentioning a name from an external macro we (deliberately) don't save)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Fix borrowck mentioning a name from an external macro we (deliberately) don't save
Most of the info is already in the title :shrug:
Closes rust-lang/rust#141764
|
|
Add missing `dyn` keywords to tests that do not test for them
This ensures that these tests can be run on editions other than 2015
|
|
r=compiler-errors
Add missing 2015 edition directives
These tests specifically test 2015 edition behavior, so ensure that they can only be run with this edition
|
|
Don't declare variables in `ExprKind::Let` in invalid positions
Handle `let` expressions in invalid positions specially during resolve in order to avoid making destructuring-assignment expressions that reference (invalid) variables that have not yet been delcared yet.
See further explanation in test and comment in the source.
Fixes rust-lang/rust#141844
|
|
Fixed a typo in `ManuallyDrop`'s doc
I noticed a typo in `ManuallyDrop`'s documentation (someone wrote "iff" instead of "if"). I fixed it in this PR.
|
|
Overhaul `UsePath`
It currently uses `SmallVec<[Res; 3]>` which is really weird. Details in the individual commits.
r? `@petrochenkov`
|
|
azhogin:azhogin/async-drop-unexpected-type-instead-of-drop-fn-fix, r=oli-obk
Async drop - type instead of async drop fn, fixes #140484
Fixes: rust-lang/rust#140484
Fixes: rust-lang/rust#140500
Fixes ICE, when type is provided in AsyncDrop trait instead of `async fn drop()`.
Fixes ICE, when async drop fn has wrong signature.
|
|
Clarify &mut-methods' docs on sync::OnceLock
Three small changes to the docs of `sync::OnceLock`:
* The docs for `OnceLock::take()` used to [say](https://doc.rust-lang.org/std/sync/struct.OnceLock.html#method.take) "**Safety** is guaranteed by requiring a mutable reference." (emphasis mine). While technically correct, imho its not necessary to even mention safety - as opposed to unsafety - here: Safety never comes up wrt `OnceLock`, as there is (currently) no way to interact with a `OnceLock` in an unsafe way; there are no unsafe methods on `OnceLock`, so there is "safety" guarantee required anywhere. What we simply meant to say is "**Synchronization** is guaranteed...".
* I've add that phrase to the other methods of `OnceLock` which take a `&mut self`, to highlight the fact that having a `&mut OnceLock` guarantees that synchronization with other threads is not required. This is the same as with [`Mutex::get_mut()`](https://doc.rust-lang.org/std/sync/struct.Mutex.html#method.get_mut), [`Cell::get_mut()`](https://doc.rust-lang.org/std/cell/struct.Cell.html#method.get_mut), and others.
* In that spirit, the half-sentence "or being initialized" was removed from `get_mut()`, as there is no way that the `OnceLock` is being initialized while we are holding `&mut` to it. Probably a copy&paste from `.get()`
|
|
tools-aux ci runner: also cross-test doctests in Miri
Miri now supports running doctests across different targets. Let's use that to run the std doctests on aarch64-apple-darwin, i686-pc-windows-msvc.
try-job: x86_64-gnu-aux
|
|
Warn when gold was used as the linker
gold has been deprecated recently and is known to behave incorrectly around Rust programs, including miscompiling `#[used(linker)]`. Tell people to switch to a different linker instead.
closes rust-lang/rust#141748
r? bjorn3
|
|
`UsePath` contains a `SmallVec<[Res; 3]>`. This holds up to three `Res`
results, one per namespace (type, value, or macro). `lower_import_res`
takes a `PerNS<Option<Res<NodeId>>>` result and lowers it into the
`SmallVec`. This is pretty weird. The input `PerNS` makes it clear which
`Res` belongs to which namespace, but the `SmallVec` throws that
information away.
And code that operates on the `SmallVec` tends to use iteration (or even
just grabbing the first entry!) without knowing which namespace the
`Res` belongs to. Even weirder! Also, `SmallVec` is an overly flexible
type to use here, because it can contain any number of elements (even
though it's optimized for 3 in this case).
This commit changes `UsePath` so it also contains a
`PerNS<Option<Res<HirId>>>`. This type preserves more information and is
more self-documenting. The commit also changes a lot of the use sites to
access the result for a particular namespace. E.g. if you're looking up
a trait, it will be in the `Res` for the type namespace if it's present;
it's silly to look in the `Res` for the value namespace or macro
namespace. Overall I find the new code much easier to understand.
However, some use sites still iterate. These now use `present_items`
because that filters out the `None` results.
Also, `redundant_pub_crate.rs` gets a bigger change. A
`UseKind:ListStem` item gets no `Res` results, which means the old `all`
call in `is_not_macro_export` would succeed (because `all` succeeds on
an empty iterator) and the `ListStem` would be ignored. This is what we
want, but was more by luck than design. The new code detects `ListStem`
explicitly. The commit generalizes the name of that function
accordingly.
Finally, the commit also removes the `use_path` arena, because
`PerNS<Option<Res>>` impls `Copy` (unlike `SmallVec`) and it can be
allocated in the arena shared by all `Copy` types.
|
|
Rollup of 5 pull requests
Successful merges:
- rust-lang/rust#141767 (ci: use free runner for aarch64-gnu-llvm-19-1 PR job)
- rust-lang/rust#141858 (Fix typo in `StructuralPartialEq` docs)
- rust-lang/rust#141865 (Optionally don't steal the THIR)
- rust-lang/rust#141874 (add f16_epsilon and f128_epsilon diagnostic items)
- rust-lang/rust#141904 (test-float-parse: apply `cfg(not(bootstrap))`)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Rollup of 6 pull requests
Successful merges:
- rust-lang/rust#141884 (allow macro_use as first segment)
- rust-lang/rust#141885 ([RTE-484] Update SGX maintainers)
- rust-lang/rust#141892 (Fix false positive lint error from no_implicit_prelude attr)
- rust-lang/rust#141894 (rustc-dev-guide subtree update)
- rust-lang/rust#141895 (tshepang has a new email)
- rust-lang/rust#141897 (Fix citool tests when executed locally)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
test-float-parse: apply `cfg(not(bootstrap))`
Prior to stage 0 redesign, `test-float-parse` ran against in-tree std but now it runs against beta std. `f16::FromStr` is only present in in-tree std and not yet beta std, so apply `cfg(not(bootstrap))` gating to unbrick `./x check --stage=0`.
Fixes rust-lang/rust#141900.
`./x check --stage=0` in CI is intended for follow-up.
r? `@Mark-Simulacrum` (or bootstrap/libs)
cc `@tgross35`
|
|
add f16_epsilon and f128_epsilon diagnostic items
cc https://github.com/rust-lang/rust/issues/116909
r? ``@tgross35``
|
|
Optionally don't steal the THIR
The THIR being stolen is a recurrent pain for authors of rustc drivers. This makes it optional, so that the `thir_body` query can still be used after analysis of the crate has completed.
|
|
Fix typo in `StructuralPartialEq` docs
`equialent` => `equivalent`
|
|
ci: use free runner for aarch64-gnu-llvm-19-1 PR job
|
|
Fix citool tests when executed locally
They couldn't be executed locally before due to some additional environment reads.
I also investigated the annoying rebuilds that we see on CI all the time, and they are caused by `ring`'s build script. It should be fixed in the next ring release (https://github.com/briansmith/ring/issues/2525), so we can just wait for that and then update `ring`.
r? `@marcoieni`
|
|
tshepang has a new email
|
|
rustc-dev-guide subtree update
r? `@ghost`
|
|
r=petrochenkov
Fix false positive lint error from no_implicit_prelude attr
Fixes rust-lang/rust#141785
r? `@petrochenkov`
|
|
r=Noratrieb
[RTE-484] Update SGX maintainers
`@mzohreva` is no longer with Fortanix. We need to change the SGX maintainers accordingly.
|
|
allow macro_use as first segment
Fixes rust-lang/rust#140255
This issue may raise a question: It's reasonable an external crate name or import target be legally named `macro_use`?
|
|
Clippy subtree update
r? `@Manishearth`
|
|
Prior to stage 0 redesign, `test-float-parse` ran against in-tree std
but now it runs against beta std. `f16::FromStr` were only present in
in-tree std and not yet beta std, so apply `cfg(not(bootstrap))` gating
to unbrick `./x check --stage=0`.
|
|
|
|
They couldn't be executed locally before due to some additional environment reads.
|
|
|
|
Fix link to GatherBorrows
|
|
Add opaque type attributes
|
|
|
|
Rustc pull update
|
|
|
|
|
|
Trivial: fix typo (change `foo` to `bar`)
|
|
This ensures that these tests can be run on editions other than 2015
|
|
These tests specifically test 2015 edition behavior, so ensure that they can only be run with this edition
|
|
|
|
There is no `foo` symbol in the preceding example. I assume the method `bar` is meant.
|
|
r=albertlarsan68,jieyouxu,mark-simulacrum,kobzol,jyn514,Noratrieb,WaffleLapkin,RalfJung,bjorn3
redesign stage 0 std
### Summary
**Blog post: https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/**
This PR changes how bootstrap builds the stage 1 compiler by switching to precompiled stage 0 standard library instead of building the in-tree one. The goal was to update bootstrap to use the beta standard library at stage 0 rather than compiling it from source (see the motivation at https://github.com/rust-lang/compiler-team/issues/619).
Previously, to build a stage 1 compiler bootstrap followed this path:
```
download stage0 compiler -> build in-tree std -> compile stage1 compiler with in-tree std
```
With this PR, the new path is:
```
download stage0 compiler -> compile stage1 compiler with precompiled stage0 std
```
This also means that `cfg(bootstrap)`/`cfg(not(bootstrap))` is no longer needed for library development.
### Building "library"
Since stage0 `std` is no longer in-tree `x build/test/check library --stage 0` is now no-op. The minimum supported stage to build `std` is now 1. For the same reason, default stage values in the library profile is no longer 0.
Because building the in-tree library now requires a stage1 compiler, I highly recommend library developers to enable `download-rustc` to speed up compilation time.
<hr>
**Blog post: https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/**
If you encounter a bug or unexpected results please open a topic in the [#t-infra/bootstrap](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap) Zulip channel or create a [bootstrap issue](https://github.com/rust-lang/rust/issues/new?template=bootstrap.md).
(Review thread: https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Review.20thread.3A.20stage.200.20redesign.20PR/with/508271433)
~~Blocked on https://github.com/rust-lang/rust/pull/122709~~
try-job: dist-x86_64-linux
try-job: `x86_64-msvc*`
try-job: `x86_64-apple-*`
try-job: `aarch64-apple`
try-job: x86_64-gnu
try-job: `x86_64-gnu-llvm*`
|
|
Merge coroutine obligation checking into borrowck parallel loop
r? `@ghost`
attempts at increasing parallelism in parallel rustc by merging parallel blocks that run in sequence
|
|
|
|
|
|
|
|
|
|
Improve intrinsic handling in cg_ssa (part 2)
* Avoid computing function type and signature for intrinsics where possible
* Nicer handling of bool returning intrinsics
Follow up to https://github.com/rust-lang/rust/pull/141404
|