Commit Graph

295353 Commits

Author SHA1 Message Date
Martin Liska 75674e2c2a cranelift: fix target feature name type: "fxsr" 2025-06-22 16:32:54 +02:00
bors a30f1783fe Auto merge of #142864 - jhpratt:rollup-mf0yq8o, r=jhpratt
Rollup of 10 pull requests

Successful merges:

 - rust-lang/rust#140254 (Pass -Cpanic=abort for the panic_abort crate)
 - rust-lang/rust#142600 (Port `#[rustc_pub_transparent]` to the new attribute system)
 - rust-lang/rust#142617 (improve search graph docs, reset `encountered_overflow` between reruns)
 - rust-lang/rust#142747 (rustdoc_json: conversion cleanups)
 - rust-lang/rust#142776 (All HIR attributes are outer)
 - rust-lang/rust#142800 (integer docs: remove extraneous text)
 - rust-lang/rust#142841 (Enable fmt-write-bloat for Windows)
 - rust-lang/rust#142845 (Enable textrel-on-minimal-lib for Windows)
 - rust-lang/rust#142850 (remove asm_goto feature annotation, for it is now stabilized)
 - rust-lang/rust#142860 (Notify me on tidy changes)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-22 09:49:14 +00:00
Jacob Pratt 34dd5362be Rollup merge of #142860 - jieyouxu:notify-tidy, r=jieyouxu
Notify me on tidy changes

r? ghost
2025-06-22 08:49:07 +02:00
Jacob Pratt f5b1c8e72c Rollup merge of #142850 - tshepang:patch-1, r=jieyouxu
remove asm_goto feature annotation, for it is now stabilized

This was stabilized in https://github.com/rust-lang/rust/pull/133870
2025-06-22 08:49:07 +02:00
Jacob Pratt b64292a0cc Rollup merge of #142845 - dpaoliello:textrel-on-minimal-lib, r=jieyouxu
Enable textrel-on-minimal-lib for Windows

`bin_name` needs to be used when building a runnable executable.

Addresses item in rust-lang/rust#128602

---

try-job: x86_64-mingw-*
try-job: x86_64-msvc-*
try-job: i686-msvc-*
2025-06-22 08:49:07 +02:00
Jacob Pratt cbfb65429c Rollup merge of #142841 - dpaoliello:fmt-write-bloat, r=jieyouxu
Enable fmt-write-bloat for Windows

Seems to be working fine for MSVC once it has the correct binary name.

Addresses item in rust-lang/rust#128602

---

try-job: x86_64-mingw-*
try-job: x86_64-msvc-*
try-job: i686-msvc-*
2025-06-22 08:49:06 +02:00
Jacob Pratt 9f99a277ce Rollup merge of #142800 - tshepang:extraneous, r=Mark-Simulacrum
integer docs: remove extraneous text

"Basic usage" implies there is an example that shows advanced usage, but these APIs are extra simple.
2025-06-22 08:49:05 +02:00
Jacob Pratt bf63acfd35 Rollup merge of #142776 - dtolnay:hirattrstyle2, r=jdonszelmann
All HIR attributes are outer

Fixes https://github.com/rust-lang/rust/issues/142649. Closes https://github.com/rust-lang/rust/pull/142759.

All HIR attributes, including parsed and not yet parsed, will now be rendered as outer attributes by `rustc_hir_pretty`. The original style of the corresponding AST attribute(s) is not relevant for pretty printing, only for diagnostics.

r? ````@jdonszelmann````
2025-06-22 08:49:05 +02:00
Jacob Pratt b5b106ab91 Rollup merge of #142747 - nnethercote:json-conversion-cleanups, r=aDotInTheVoid
rustdoc_json: conversion cleanups

A bunch of clean-to-types conversion cleanups I found while working on perf-related stuff in rustdoc_json.

r? ```@aDotInTheVoid```
2025-06-22 08:49:05 +02:00
Jacob Pratt 9c09dd51f9 Rollup merge of #142617 - lcnr:search_graph-3, r=compiler-errors
improve search graph docs, reset `encountered_overflow` between reruns

I think this shouldn't really matter for now. It will be more relevant for my current rework as we otherwise cannot partially reevaluate the root goal in case there has been overflow during the prervious iteration.

r? ````@BoxyUwU````
2025-06-22 08:49:04 +02:00
Jacob Pratt 431a822938 Rollup merge of #142600 - GrigorenkoPV:attributes/rustc_pub_transparent, r=jdonszelmann
Port `#[rustc_pub_transparent]` to the new attribute system

Very similar to rust-lang/rust#142498.

This is a part of rust-lang/rust#131229, so
r? ````@jdonszelmann````

---

For reference, the `#[rustc_pub_transparent]` attribute was created by me back in rust-lang/rust#129487.

As mentioned back in https://github.com/rust-lang/rust/pull/129487#discussion_r1730120385, this attribute does not check that it is applied to an ADT, because it checks that `#[repr(transparent)]` is also applied to the same item, which, in turn, should check for ADT.
2025-06-22 08:49:04 +02:00
Jacob Pratt aef8a76ce0 Rollup merge of #140254 - bjorn3:rustc_panic_abort_abort, r=petrochenkov
Pass -Cpanic=abort for the panic_abort crate

The panic_abort crate must be compiled with panic=abort, but cargo doesn't allow setting the panic strategy for a single crate the usual way using `panic="abort"`, but luckily per-package rustflags do allow this. Bootstrap previously handled this in its rustc wrapper, but for example the build systems of cg_clif and cg_gcc don't use the rustc wrapper, so they would either need to add one, patch the standard library or be unable to build a sysroot suitable for both panic=abort and panic=unwind (as is currently the case).

Required for https://github.com/rust-lang/rustc_codegen_cranelift/issues/1567
2025-06-22 08:49:03 +02:00
bors 9972ebfcc2 Auto merge of #142675 - tmiasko:preserve-cache, r=oli-obk
Preserve caches in a call to shrink_to_fit

A small follow up to rust-lang/rust#142542.
2025-06-22 06:49:02 +00:00
bors 8051f01265 Auto merge of #141856 - folkertdev:run-make-forward-compiletest-runner, r=jieyouxu
forward the bootstrap `runner` to `run-make`

The runner was already forwarded to `compiletest`, this just passes it on to `run-make` and uses it in the `run` functions.

The configuration can look like this

```toml
# in bootstrap.toml
[target.s390x-unknown-linux-gnu]
runner = "qemu-s390x -L /usr/s390x-linux-gnu"
```

Any C compilation automatically sets the correct target. Calls to rustc must use `.target(target())`. Then, a command like below will work by cross-compiling to the given target, and using the given runner for that target to execute the binary:

```
./x test tests/run-make/c-link-to-rust-va-list-fn --target s390x-unknown-linux-gnu
```

The runner can also be used for e.g. running with `valgrind`.

This PR also enables its use in the test case that I care about, hopefully that actually does work on the platforms that CI uses. We should probably run some try jobs to be sure?

r? `@jieyouxu`

try-job: test-various
try-job: armhf-gnu
2025-06-22 02:21:13 +00:00
Jieyou Xu 6ff229b5e1 Notify jieyouxu on tidy changes 2025-06-22 09:17:56 +08:00
Folkert de Vries 0d4abfc7cc forward the bootstrap runner to run-make
The runner was already forwarded to `compiletest`, this just passes it on to `run-make` and uses it in the `run` functions.
2025-06-22 01:37:51 +02:00
bors fa2f3552da Auto merge of #142667 - yotamofek:pr/rustdoc/more-write-shared-perf, r=nnethercote
Avoid a few more allocations in `write_shared.rs`

Inspired by rust-lang/rust#141421 , avoids a few `Vec`, `PathBuf` and `String` allocations in `write_shared.rs`. I don't think these will show up on benchmarks, but are still worthwhile IMHO.
Also includes a few small cleanups.
r? nnethercote - if you'd like :)
2025-06-21 23:18:00 +00:00
Nicholas Nethercote 2878e1cba3 Rename some methods.
- `convert_static` -> `from_clean_static`
- `from_function` -> `from_clean_function`

To match the pre-existing `from_clean_item` and `FromClean::from_clean`.

I left `JsonRenderer::convert_item` unchanged because it's a bit
different.
2025-06-22 07:36:58 +10:00
Nicholas Nethercote 88388f45d6 Use FromClean more.
The `FromClean` trait is used a lot for converting to rustdoc-json
format. But it's not used universally; there are still some ad hoc
functions and methods for converting. This commit fixes this
inconsistency by using `FromClean` more.

The commit also introduces `FromClean` for `Box` and `Option`. This lets
a lot of `as_ref` and `map` calls be removed in favour of simple
`into_json` calls.
2025-06-22 07:36:57 +10:00
Nicholas Nethercote 9a597743ef Remove some code.
It's just replicating exactly what is done by `<Vec<GenericParamDef> as
FromClean>::into_json`
2025-06-22 07:36:57 +10:00
Nicholas Nethercote 4736142c48 Remove some dead code.
We currently have both `FromClean<clean::Constant> for Constant` and
`FromClean<clean::ConstantKind> for Constant` which are basically
identical, but the former is unused.
2025-06-22 07:36:57 +10:00
Nicholas Nethercote 6854f7d89a Use sym::asterisk to avoid a Symbol::intern call. 2025-06-22 07:36:57 +10:00
Tshepang Mbambo eb86d0951e remove asm_goto feature annotation, for it is now stabilized 2025-06-21 23:26:56 +02:00
Daniel Paoliello 0d50f9109b Enable textrel-on-minimal-lib for Windows 2025-06-21 13:16:57 -07:00
bors d4e1159b8c Auto merge of #142546 - cjgillot:reachable-jump, r=compiler-errors
Only traverse reachable blocks in JumpThreading.

Fixes https://github.com/rust-lang/rust/issues/131451

We only compute loop headers for reachable blocks. We shouldn't try to perform an opt on unreachable blocks anyway.
2025-06-21 18:54:29 +00:00
Pavel Grigorenko d86d3f3742 Port #[rustc_pub_transparent] to the new attribute system 2025-06-21 21:52:25 +03:00
Daniel Paoliello 33b3ea23c9 Enable fmt-write-bloat for Windows 2025-06-21 11:50:44 -07:00
David Tolnay 6729b667ce All HIR attributes are outer 2025-06-21 11:11:34 -07:00
David Tolnay 715e02ff3c Add regression test for issue 142649 2025-06-21 11:09:14 -07:00
David Tolnay 86f40acce3 Remove style() from AttributeExt trait 2025-06-21 11:09:13 -07:00
David Tolnay e51c37c34c Add AttributeExt::doc_resolution_scope 2025-06-21 11:09:12 -07:00
bors ea34650916 Auto merge of #142826 - jdonszelmann:rollup-1wxomvb, r=jdonszelmann
Rollup of 3 pull requests

Successful merges:

 - rust-lang/rust#142539 (Port `#[may_dangle]` to the new attribute system)
 - rust-lang/rust#142690 (expand: Remove some unnecessary generic parameters)
 - rust-lang/rust#142698 (Improve diagnostics for `concat_bytes!` with C string  literals)

Failed merges:

 - rust-lang/rust#142600 (Port `#[rustc_pub_transparent]` to the new attribute system)
 - rust-lang/rust#142776 (All HIR attributes are outer)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-21 14:48:43 +00:00
Jana Dönszelmann c693bc268a Rollup merge of #142698 - tgross35:concat-byte-cstr-diag, r=petrochenkov
Improve diagnostics for `concat_bytes!` with C string  literals

Use the same error as other invalid types for `concat_bytes!`, rather
than using `ConcatCStrLit` from `concat!`. Also add more information
with a note about why this doesn't work, and a suggestion to use a
null-terminated byte string instead.
2025-06-21 15:32:06 +02:00
Jana Dönszelmann 6ed5d48cec Rollup merge of #142690 - petrochenkov:expnoparam, r=compiler-errors
expand: Remove some unnecessary generic parameters
2025-06-21 15:32:06 +02:00
Jana Dönszelmann cd857f4bef Rollup merge of #142539 - GrigorenkoPV:attributes/may_dangle, r=jdonszelmann
Port `#[may_dangle]` to the new attribute system

Very similar to rust-lang/rust#142498.

This is a part of rust-lang/rust#131229, so
r? `@jdonszelmann`
2025-06-21 15:32:05 +02:00
bors 6d0c9e2a1c Auto merge of #142817 - matthiaskrgr:rollup-mrobovy, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - rust-lang/rust#142502 (rustdoc_json: improve handling of generic args)
 - rust-lang/rust#142597 (error on calls to ABIs that cannot be called)
 - rust-lang/rust#142785 (fix(linkcheck): Build using the lockfile)
 - rust-lang/rust#142787 (Add diagnostic items for Clippy)
 - rust-lang/rust#142788 (add doc(alias("AsciiChar")) to core::ascii::Char)
 - rust-lang/rust#142801 (Use gen blocks in the compiler instead of `from_coroutine`)
 - rust-lang/rust#142804 (Rename `LayoutS` to `LayoutData` in comments)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-21 10:03:08 +00:00
Matthias Krüger 4e87031f2e Rollup merge of #142804 - zachs18:rename-layouts-to-layoutdata-in-comments, r=saethlin
Rename `LayoutS` to `LayoutData` in comments

`LayoutS` was renamed to `LayoutData`, but some comments in the compiler were not changed. This updates comments in the compiler (and one section of commented-out code in rust-analyzer) to refer to `LayoutData` instead of `LayoutS`.

cc <https://github.com/rust-lang/rust/pull/132252>, `@workingjubilee`
2025-06-21 10:53:28 +02:00
Matthias Krüger 6a49a35109 Rollup merge of #142801 - compiler-errors:gen-blocks, r=oli-obk
Use gen blocks in the compiler instead of `from_coroutine`

r? oli-obk
2025-06-21 10:53:28 +02:00
Matthias Krüger 1176413231 Rollup merge of #142788 - lolbinarycat:core-AsciiChar-alias, r=tgross35
add doc(alias("AsciiChar")) to core::ascii::Char

Added it to the reexported, which is intended rustdoc behavior, but is apparently untested, so I also added a test for it.
2025-06-21 10:53:27 +02:00
Matthias Krüger 24f797ed84 Rollup merge of #142787 - samueltardieu:diag-items-for-clippy, r=Manishearth,Urgau
Add diagnostic items for Clippy

Clippy still uses some paths to access items from the standard library. Adding the missing diagnostic items allows removing the last remaining paths.

Closes rust-lang/rust-clippy#5393
2025-06-21 10:53:26 +02:00
Matthias Krüger 06cc41b4ec Rollup merge of #142785 - epage:link, r=ehuss
fix(linkcheck): Build using the lockfile

This is to unblock cargo from servo/html5ever#623

I ran `linkcheck.sh` locally and it now works
2025-06-21 10:53:26 +02:00
Matthias Krüger 504092f415 Rollup merge of #142597 - folkertdev:abi-cannot-be-called, r=workingjubilee
error on calls to ABIs that cannot be called

We recently added `extern "custom"`, which cannot be called using a rust call expression. But there are more ABIs that can't be called in that way, because the call does not semantically make sense.

More details are in https://github.com/rust-lang/rust/issues/140566#issuecomment-2846205457

r? `@workingjubilee`

try-job: x86_64-gnu-llvm-19-3
2025-06-21 10:53:25 +02:00
Matthias Krüger 5f727066d8 Rollup merge of #142502 - nnethercote:rustdoc-json-GenericArgs, r=aDotInTheVoid
rustdoc_json: improve handling of generic args

This PR fixes some inconsistencies and inefficiencies in how generic args are handled by rustdoc-json-types.

r? `@aDotInTheVoid`
2025-06-21 10:53:25 +02:00
bors df4ad9e28b Auto merge of #142814 - tgross35:rollup-fioob6s, r=tgross35
Rollup of 8 pull requests

Successful merges:

 - rust-lang/rust#142384 (Bringing `rustc_rayon_core` in tree as `rustc_thread_pool`)
 - rust-lang/rust#142476 (Insert parentheses around binary operation with attribute)
 - rust-lang/rust#142485 (Marks ADT live if it appears in pattern)
 - rust-lang/rust#142571 (Reason about borrowed classes in CopyProp.)
 - rust-lang/rust#142677 (Add CI check to ensure that rustdoc JSON `FORMAT_VERSION` is correctly updated)
 - rust-lang/rust#142716 (Adjust `with_generic_param_rib`.)
 - rust-lang/rust#142756 (Make `Clone` a `const_trait`)
 - rust-lang/rust#142765 (rustc_target: document public AbiMap-related fn and variants)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-21 05:19:08 +00:00
Nicholas Nethercote 7fa8901cd0 rustdoc_json: represent generic args consistently.
They show up in three places: once as `Option<Box<GenericArgs>>`, once
as `Box<GenericArgs>`, and once as `GenericArgs`. The first option is
best. It is more compact because generic args are often missing. This
commit changes the latter two to the former.

Example output, before and after, for the `AssocItemConstraint` change:
```
{"name":"Offset","args":{"angle_bracketed":{"args":[],"constraints":[]}},"binding":{...}}
{"name":"Offset","args":null,"binding":{...}}
```
Example output, before and after, for the `Type::QualifiedPath` change:
```
{"qualified_path":{"name":"Offset","args":{"angle_bracketed":{"args":[],"constraints":[]}}, ...}}
{"qualified_path":{"name":"Offset","args":null, ...}}
```
This reduces JSON output size, but not by much (e.g. 0.5%), because
`AssocItemConstraint` and `Type::QualifiedPath` are uncommon.
2025-06-21 13:52:46 +10:00
Nicholas Nethercote 59a3399148 Fix some comments.
As per the previous commit, generic args here can only appear on the
final segment. So make the comments obey that constraint.
2025-06-21 13:50:52 +10:00
Nicholas Nethercote 40ba7913fc rustdoc_json: Fix handling of paths with no generic args.
A path without generic args, like `Reader`, currently has JSON produced
like this:
```
{"path":"Reader","id":286,"args":{"angle_bracketed":{"args":[],"constraints":[]}}}
```
Even though `types::Path::args` is `Option` and allows for "no args",
instead it gets represented as "empty args". (More like `Reader<>` than
`Reader`.)

This is due to a problem in `clean::Path::from_clean`. It only produces
`None` if the path is an empty string. This commit changes it to also
produce `None` if there are no generic args. The example above becomes:
```
{"path":"Reader","id":286,"args":null}
```
I looked at a few examples and saw this reduce the size of the JSON
output by 3-9%.

The commit also adds an assertion that non-final segments don't have any
generics; something the old code was implicitly relying on.

Note: the original sin here is that `clean::PathSegment::args` is not an
`Option`, unlike `{ast,hir}::PathSegment::args`. I want to fix that, but
it can be done separately.
2025-06-21 13:50:52 +10:00
Nicholas Nethercote 18d742bda0 rustdoc_json: Add a test for some GenericArgs cases. 2025-06-21 13:50:51 +10:00
Nicholas Nethercote 2b5fd9a307 rustdoc_json: Add static asserts for the size of important types.
A lot of these are large! Lots of room for improvement in the future.
2025-06-21 13:50:51 +10:00
Trevor Gross 432c7d0235 Rollup merge of #142765 - workingjubilee:more-abimap-docs, r=compiler-errors
rustc_target: document public AbiMap-related fn and variants
2025-06-20 23:25:58 -04:00