Commit graph

298901 commits

Author SHA1 Message Date
Guillaume Gomez
786a53d2db
Rollup merge of #140538 - tshepang:rust-push, r=jieyouxu
rustc-dev-guide subtree update

r? ``@ghost``
2025-05-01 22:27:24 +02:00
Guillaume Gomez
9d7d782e50
Rollup merge of #140460 - heiher:issue-140455, r=Urgau
Fix handling of LoongArch target features not supported by LLVM 19

Fixes #140455
2025-05-01 22:27:23 +02:00
Guillaume Gomez
96faee497a
Rollup merge of #140420 - fmease:rustdoc-fix-doctest-heur, r=GuillaumeGomez
rustdoc: Fix doctest heuristic for main fn wrapping

Fixes #140412 which regressed in #140220 that I reviewed. As mentioned in https://github.com/rust-lang/rust/pull/140220#issuecomment-2837061779, at the time I didn't have the time to re-review its latest changes and should've therefore invalided my previous "r=me" and blocked the PR on another review given the fragile nature of the doctest impl. This didn't happen which is my fault.

Contains some other small changes. Diff best reviewed modulo whitespace.
r? ``@GuillaumeGomez``
2025-05-01 22:27:23 +02:00
Guillaume Gomez
5170e21cb9
Rollup merge of #140062 - xizheyin:issue-139958, r=workingjubilee
std: mention `remove_dir_all` can emit `DirectoryNotEmpty` when concurrently written into

Closes #139958

The current documentation for `std::fs::remove_dir_all` function does not explicitly mention the error types that may be returned in concurrent scenarios. Specifically, when one thread attempts to remove a directory tree while another thread simultaneously writes files to that directory, the function may return an `io::ErrorKind::DirectoryNotEmpty` error, but this behavior is not clearly mentioned in the current documentation.

r? libs
2025-05-01 22:27:22 +02:00
Guillaume Gomez
5a25a7a020
Rollup merge of #140034 - RalfJung:simd_select_bitmask-padding, r=workingjubilee
simd_select_bitmask: the 'padding' bits in the mask are just ignored

Fixes https://github.com/rust-lang/rust/issues/137942: we documented simd_select_bitmask to require the 'padding' bits in the mask (the mask can sometimes be longer than the vector; I am referring to these extra bits as 'padding' here)  to be zero, mostly because nobody felt like doing the research for what should be done when they are non-zero. However, codegen is already perfectly happy just ignoring them, so in practice they can have any value. Some of the intrinsic wrappers in stdarch have trouble ensuring that they are zero. So let's just adjust the docs and Miri to permit non-zero 'padding' bits.

Cc ````@Amanieu```` ````@workingjubilee````
2025-05-01 22:27:22 +02:00
Guillaume Gomez
b867d20279
Rollup merge of #139802 - Lee-Janggun:fix-allocate-hyperlink, r=workingjubilee
Fix some grammar errors and hyperlinks in doc for `trait Allocator`

I was reading the allocator docs and noticed some weird sentences and missing hyperlink, so I fixed them and made this small PR.

* "while until either" could also be changed to "for a while until either", but I just deleted "while".
* fixed sentence with incorrect "at" and "has/have".
* linked [*currently allocated*] similar to other methods. All other hyperlinks are fine.
2025-05-01 22:27:21 +02:00
Guillaume Gomez
931735a1b1
Rollup merge of #139780 - ongardie:iterator-take-by_ref-example, r=workingjubilee
docs: Add example to `Iterator::take` with `by_ref`

If you want to logically split an iterator after `n` items, you might first discover `take`. Before this change, you'd find that `take` consumes the iterator, and you'd probably be stuck. The answer involves `by_ref`, but that's hard to discover, especially since `by_ref` is a bit abstract and `Iterator` has many methods.

After this change, you'd see the example showing `take` along with `by_ref`, which allows you to continue using the rest of the iterator. `by_ref` had a good example involving `take` already, so this change just duplicates that existing example under `take`.
2025-05-01 22:27:20 +02:00
Guillaume Gomez
bd68c36ee0
Rollup merge of #139186 - TDecking:float, r=workingjubilee
Refactor `diy_float`

The refactor replaces bespoke algorithms with functions already inside the standard library, improving both codegen and readability.
2025-05-01 22:27:20 +02:00
Guillaume Gomez
c02964f446
Rollup merge of #138703 - pudongair:master, r=workingjubilee
chore: remove redundant words in comment

remove redundant words in comment
2025-05-01 22:27:19 +02:00
onur-ozkan
7b25d4a99e extend the list of registered dylibs on test::prepare_cargo_test
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-01 19:32:44 +00:00
Eyal Kalderon
17d74d6320
Use present indicative tense in std::io::pipe() API docs
The inline documentation for all other free functions in the `std::io`
module use the phrase "creates a" instead of "create a", except for the
currently nightly-only `std::io::pipe()` function. This commit updates
the text to align with the predominant wording in the `std::io` module.

I recognize this PR is quite a minuscule nitpick, so feel free to ignore
and close if you disagree and/or there are bigger fish to fry. 😄
2025-05-01 15:20:32 -04:00
Artur Roos
175f71750f Simplify docs for breaking out of a named code block 2025-05-01 22:09:07 +03:00
Boxy
9ec8373ab6 Crashes tests 2025-05-01 20:05:07 +01:00
Boxy
238d113b07 Set groundwork for proper const normalization 2025-05-01 20:05:02 +01:00
Trevor Gross
4c2659f9ce builtins-test: Remove no_mangle from eh_personality
Rustc now mangles these symbols on its own, so `no_mangle` is rejected
as an error.
2025-05-01 15:03:07 -04:00
Erick Tryzelaar
951412e2f3 PassWrapper: adapt for llvm/llvm-project@f137c3d592
In LLVM 21 PR https://github.com/llvm/llvm-project/pull/130940
`TargetRegistry::createTargetMachine` was changed to take a `const
Triple&` and has deprecated the old `StringRef` method.

@rustbot label llvm-main
2025-05-01 17:59:00 +00:00
dswij
a53acefef7
Remove is_normalizable (#14717)
Supersedes rust-lang/rust-clippy#12550

`layout_of` no longer contains a `delay_bug` so there's no need for this
anymore.

changelog: None
2025-05-01 16:45:14 +00:00
bors
3350c1eb3f Auto merge of #139965 - amandasystems:marginally-improved-scc-annotations, r=lcnr
Decouple SCC annotations from SCCs

This rewires SCC annotations to have them be a separate, visitor-type data structure. It was broken out of #130227, which needed them to be able to remove unused annotations after computation without recomputing the SCCs themselves.

As a drive-by it also removes some redundant code from the hot loop in SCC construction for a performance improvement.

r? lcnr
2025-05-01 16:04:19 +00:00
Guillaume Gomez
bc68d3a144 Improve error output in case nodejs or npm is not installed for rustdoc-gui test suite 2025-05-01 17:42:22 +02:00
Matthias Krüger
c1f2ad2d16 crashes: more tests 2025-05-01 17:04:37 +02:00
sayantn
7443d039a5
Update stdarch 2025-05-01 20:01:43 +05:30
Folkert de Vries
5d308148aa
allow #[rustc_std_internal_symbol] in combination with #[naked] 2025-05-01 16:26:26 +02:00
Boxy
53e3907bcb No-op split into sub functions 2025-05-01 14:34:19 +01:00
Amanieu d'Antras
72b110ada3 Stabilize select_unpredictable
FCP completed in tracking issue #133962.
2025-05-01 13:49:28 +01:00
Boxy
bfe3d54d81 User type annotations for free consts in pattern position 2025-05-01 13:14:53 +01:00
bors
0e517d38ad Auto merge of #138522 - osiewicz:shared-generics-respect-visibility, r=bjorn3
shared-generics: Do not share instantiations that contain local-only types

In Zed shared-generics loading takes up a significant chunk of time in incremental build, as rustc deserializes rmeta of all dependencies of a crate. I've recently realized that shared-generics includes all instantiations of some_generic_function in the following snippet:
```rs
pub fn some_generic_function(_: impl Fn()) {}

pub fn non_generic_function() {
	some_generic_function(|| {});
	some_generic_function(|| {});
	some_generic_function(|| {});
	some_generic_function(|| {});
	some_generic_function(|| {});
	some_generic_function(|| {});
	some_generic_function(|| {});
}
```
even though none of these instantiations can actually be created from outside of `non_generic_function`. This is a dummy example, but we do rely on invoking callbacks with FnOnce a lot in our codebase.

This PR makes shared-generics account for visibilities of generic arguments; an item is only considered for exporting if it is reachable from the outside or if all of it's arguments are visible outside of the local crate.

This PR reduces incremental build time for Zed (touch editor.rs scenario) from 12.4s to 10.4s. I'd love to see a perf run if possible; per my checks this PR does not incur new instantiations in downstream crates, so if there'd be perf regressions, I'd expect them to come from newly-introduced visibility checks.
2025-05-01 11:57:11 +00:00
Christian Legnitto
60218be5e9 Remove backtrace dep from anyhow in features status dump tool
According to `anyhow`'s Cargo.toml:

> On compilers older than 1.65, features=["backtrace"] may be used to enable
> backtraces via the `backtrace` crate. This feature has no effect on 1.65+
> besides bringing in an unused dependency, as `std::backtrace` is always
> preferred.

So this is just bringing in an unused dependency.
2025-05-01 07:45:47 -04:00
sayantn
4d665d1a01 Require fma and f16c for avx512f in std_detect 2025-05-01 11:37:00 +00:00
sayantn
ed25a9bde4 Implement sha512, sm3 and sm4 intrinsics 2025-05-01 11:30:47 +00:00
sayantn
400dab3df7 Fix stdarch-verify 2025-05-01 11:30:47 +00:00
Tsukasa OI
50010d5546 Revert "std_detect: RISC-V platform guide documentation"
This reverts commit e907456b2e10622ccd854a3bba8d02ce170b5dbb.

This is due to a CI failure (technically broken HTML with duplicate IDs)
caused by this commit (visibly fine but invalid per the HTML specification
and detected by the LinkCheck tool on the Rust CI process).

The author independently working on a rustdoc enhancement to enable writing
multiple references to a single footnote.  Once that change makes it to the
stage0 compiler (the next beta), the original change will be acceptable
again (postponed for possibly the version 1.89 cycle).
2025-05-01 11:24:23 +00:00
Mara Bos
86c6e7911d Bless pretty tests. 2025-05-01 12:31:44 +02:00
Mara Bos
ce50b4fd9d Bless mir opt tests. 2025-05-01 12:29:43 +02:00
Ralf Jung
8bbea47fdb
Merge pull request #4273 from yoctocell/new-cell-state
TB: add `Cell` state to support more fine-grained tracking of interior mutable data
2025-05-01 10:06:52 +00:00
León Orell Valerian Liehr
714ea10ea4
rustdoc: Fix doctest heuristic for main fn wrapping 2025-05-01 11:56:11 +02:00
Mara Bos
36c6633b0f Clean up "const" situation in format_args!().
Rather than marking the Argument::new_display etc. functions as
non-const, this marks the Arguments::new_v1 functions as non-const.
2025-05-01 11:55:23 +02:00
Mara Bos
3e969d433d Move core::fmt::Arguments::new_v1* to rt.rs. 2025-05-01 11:53:24 +02:00
Laurențiu Nicola
c45126e2ba
Merge pull request #19727 from matthiaskrgr/enolc
remove a couple of clones
2025-05-01 09:52:49 +00:00
Matthias Krüger
3e196c00c2 remove a couple of clones 2025-05-01 11:41:42 +02:00
Xinglu Chen
8cc866d25e Add Cell state to Tree Borrows 2025-05-01 09:41:19 +00:00
bjorn3
a308984e69 Rustup to rustc 1.88.0-nightly (b45dd71d1 2025-04-30) 2025-05-01 09:26:49 +00:00
bjorn3
e864f0f244 Sync from rust b45dd71d18 2025-05-01 09:18:16 +00:00
Philipp Krones
dd5113daab Merge commit '03a5b6b976' into clippy-subtree-update 2025-05-01 10:22:55 +02:00
Philipp Krones
c9992d6c54
Merge commit '03a5b6b976' into clippy-subtree-update 2025-05-01 10:22:55 +02:00
John Kåre Alsaker
c43a6f05d6 Add some comments 2025-05-01 10:20:34 +02:00
John Kåre Alsaker
d3ec14bbec Use thread local dep graph encoding 2025-05-01 10:20:31 +02:00
Philipp Krones
03a5b6b976
Rustup (#14721)
r? @ghost

changelog: none
2025-05-01 07:55:48 +00:00
Philipp Krones
8a91bbfa91
Bump nightly version -> 2025-05-01 2025-05-01 09:50:54 +02:00
Philipp Krones
43797675c2
Merge remote-tracking branch 'upstream/master' into rustup 2025-05-01 09:50:42 +02:00
Laurențiu Nicola
00d2f60efd
Merge pull request #19726 from lnicola/sync-from-rust
Sync from downstream again
2025-05-01 07:33:30 +00:00