Commit graph

280167 commits

Author SHA1 Message Date
Michael Goulet
009feeb83e Fix rustc_hidden_type_of_opaques for RPITITs with no default body 2025-02-04 17:56:47 +00:00
bors
7b31983d55 Auto merge of #136533 - jhpratt:rollup-s0ign8n, r=jhpratt
Rollup of 5 pull requests

Successful merges:

 - #134777 (Enable more tests on Windows)
 - #135621 (Move some std tests to integration tests)
 - #135844 ( Add new tool for dumping feature status based on tidy )
 - #136167 (Implement unstable `new_range` feature)
 - #136334 (Extract `core::ffi` primitives to a separate (internal) module)

Failed merges:

 - #136201 (Removed dependency on the field-offset crate, alternate approach)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-02-04 12:13:02 +00:00
Jacob Pratt
54f9ef9eda
Rollup merge of #136334 - ricci009:primitivers, r=tgross35
Extract `core::ffi` primitives to a separate (internal) module

### Introduce library/core/src/ffi/primitives.rs

The regex preprocessing for PR #133944 would be more robust if the relevant types from core/src/ffi/mod.rs were first moved to library/core/src/ffi/primitives.rs, then there isn't a need to deal with traits / c_str / va_list / whatever might wind up in that module in the future

r? `@tgross35`
2025-02-04 05:36:53 -05:00
Jacob Pratt
d31e137d6a
Rollup merge of #136167 - pitaj:new_range, r=Nadrieril
Implement unstable `new_range` feature

Switches `a..b`, `a..`, and `a..=b` to resolve to the new range types.

For rust-lang/rfcs#3550
Tracking issue #123741

also adds the re-export that was missed in the original implementation of `new_range_api`
2025-02-04 05:36:52 -05:00
Jacob Pratt
648fd0e3ef
Rollup merge of #135844 - yaahc:tidy-feature-status-dump, r=jieyouxu
Add new tool for dumping feature status based on tidy

sequel to https://github.com/rust-lang/rust/pull/133514

meaning ...

supercedes https://github.com/rust-lang/rust/pull/133351

part of https://github.com/rust-lang/rust/issues/129485

r? `@jieyouxu`
cc `@estebank`
2025-02-04 05:36:51 -05:00
Jacob Pratt
d2aa3dec8a
Rollup merge of #135621 - bjorn3:move_tests_to_stdtests, r=Noratrieb
Move some std tests to integration tests

Unit tests directly inside of standard library crates require a very fragile way of building that is hard to reproduce outside of bootstrap.

Follow up to https://github.com/rust-lang/rust/pull/133859
2025-02-04 05:36:50 -05:00
Jacob Pratt
2a8a1911da
Rollup merge of #134777 - saethlin:enable-more-tests-on-windows, r=Noratrieb
Enable more tests on Windows

As part of the discussion of https://github.com/rust-lang/compiler-team/issues/822 on Zulip, it was mentioned that problems with the i686-pc-windows-gnu target may have resulted in tests being disabled on Windows.

So in this PR, I've ripped out all our `//@ ignore-windows` directives, then re-added all the ones that are definitely required based on the outcome of try-builds, and in some cases I've improved the justification or tightened the directives to `//@ ignore-msvc` or ignoring specific targets.
2025-02-04 05:36:50 -05:00
bors
019fc4de2f Auto merge of #135265 - pascaldekloe:fmt-int-speed, r=tgross35,ChrisDenton
Display of integers without raw pointers and without overflowing_literals

The benchmarks as is measure formatting speed of literals. The first commit `black_box`-es input to simulate runtime speed instead.

The second commit replaces `unsafe` pointer optimizations with plain array indices. The performance is equivalent on Apple M1. Needs peer review on Intel.

Happy to do the 128-bit version too if such change is welcome.
2025-02-04 09:15:53 +00:00
bors
8a8b464175 Auto merge of #136525 - matthiaskrgr:rollup-m8kqlek, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #134807 (fix(rustdoc): always use a channel when linking to doc.rust-lang.org)
 - #134814 (Add `kl` and `widekl` target features, and the feature gate)
 - #135836 (bootstrap: only build `crt{begin,end}.o` when compiling to MUSL)
 - #136022 (Port ui/simd tests to use the intrinsic macro)
 - #136309 (set rustc dylib on manually constructed rustc command)
 - #136462 (mir_build: Simplify `lower_pattern_range_endpoint`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-02-04 06:04:42 +00:00
Matthias Krüger
e7c09a8e12
Rollup merge of #136462 - Zalathar:endpoint, r=oli-obk
mir_build: Simplify `lower_pattern_range_endpoint`

By accumulating ascriptions and inline-consts in separate vectors, we can streamline some previously-tricky code for dealing with range patterns.
2025-02-04 06:14:00 +01:00
Matthias Krüger
a24d859f19
Rollup merge of #136309 - onur-ozkan:133629, r=jieyouxu
set rustc dylib on manually constructed rustc command

Fixes #133629
2025-02-04 06:13:59 +01:00
Matthias Krüger
4f3a11dff6
Rollup merge of #136022 - vayunbiyani:port_tests, r=RalfJung
Port ui/simd tests to use the intrinsic macro
2025-02-04 06:13:59 +01:00
Matthias Krüger
67e52b9f92
Rollup merge of #135836 - ferrocene:ja-gh135782-build-crt-only-for-musl, r=onur-ozkan
bootstrap: only build `crt{begin,end}.o` when compiling to MUSL

only MUSL needs those objects and trying to compile them to other targets, e.g. Windows or macOS, will produce C compilation errors

check the target before shelling out to the C compiler and tweak `make_run` to skip the actual C compilation when the target is not MUSL

fixes #135782

see the linked issue for additional context
2025-02-04 06:13:58 +01:00
Matthias Krüger
e4eedb5488
Rollup merge of #134814 - sayantn:keylocker, r=oli-obk
Add `kl` and `widekl` target features, and the feature gate

This is an effort towards #134813. This PR adds the target-features and the feature gate to `rustc`

<!--
```@rustbot``` label O-x86_64 O-x86_32 A-target-feature
r? compiler
-->
2025-02-04 06:13:58 +01:00
Matthias Krüger
f8f31faeb7
Rollup merge of #134807 - poliorcetics:ab/push-skpynvsmwkll, r=camelid
fix(rustdoc): always use a channel when linking to doc.rust-lang.org

Closes #131971

I manually checked the resulting links

One issue is that this will create `nightly/...` links in places that formerly linked to stable, is that ok ? (the `slice` and `array` links in the search help notably)
2025-02-04 06:13:57 +01:00
bors
c705b7d6f7 Auto merge of #136507 - matthiaskrgr:rollup-uzwv9mo, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #136289 (OnceCell & OnceLock docs: Using (un)initialized consistently)
 - #136299 (Ignore NLL boring locals in polonius diagnostics)
 - #136411 (Omit argument names from function pointers that do not have argument names)
 - #136430 (Use the type-level constant value `ty::Value` where needed)
 - #136476 (Remove generic `//@ ignore-{wasm,wasm32,emscripten}` in tests)
 - #136484 (Notes on types/traits used for in-memory query caching)
 - #136493 (platform-support: document CPU baseline for x86-32 targets)
 - #136498 (Update books)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-02-04 03:07:00 +00:00
bors
affdb59607 Auto merge of #136483 - marcoieni:dist-x86_64-msvc-windows-25, r=Kobzol
ci: move dist-x86_64-msvc to windows 2025

try-job: dist-x86_64-msvc
2025-02-03 22:51:35 +00:00
ricci009
3419e2f408 primitive type migration from mod.rs to primitives.rs 2025-02-03 17:21:32 -05:00
Matthias Krüger
1869633ea2
Rollup merge of #136498 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/book

2 commits in fa312a343fbff01bc6cef393e326817f70719813..e2fa4316c5a7c0d2499c5d6b799adcfad6ef7a45
2025-02-03 15:02:07 UTC to 2025-02-01 17:33:39 UTC

- Add missing word in ch17-04-streams.md (rust-lang/book#4218)
- Fix typo in ch5.3 and in CONTRIBUTING.md (rust-lang/book#4216)

## rust-lang/edition-guide

2 commits in 4ed5a1a4a2a7ecc2e529a5baaef04f7bc7917eda..f56aecc3b036dff16404b525a83b00f911b9bbea
2025-02-03 17:14:16 UTC to 2025-01-31 17:44:00 UTC

- Rustc{En,De}codable has been removed (rust-lang/edition-guide#353)
- Remove rustfmt-overflow-delimited-expr (rust-lang/edition-guide#357)

## rust-lang/nomicon

3 commits in bc2298865544695c63454fc1f9f98a3dc22e9948..336f75835a6c0514852cc65aba9a698b699b13c8
2025-02-02 10:06:30 UTC to 2025-02-02 08:35:20 UTC

- Improve grammar in exotic-sizes (rust-lang/nomicon#452)
- other-reprs: Add details for n!=1 repr(packed) (rust-lang/nomicon#460)
- Use `()` instead of `[u8; 0]` in opaque type (rust-lang/nomicon#456)

## rust-lang/reference

3 commits in 93b921c7d3213d38d920f7f905a3bec093d2217d..4249fb411dd27f945e2881eb0378044b94cee06f
2025-01-31 03:43:07 UTC to 2025-01-29 04:17:34 UTC

- Add Spec Identifier Syntax to expressions.md and subchapters (rust-lang/reference#1591)
- Exclude the test summary from the search index (rust-lang/reference#1723)
- Spec inline assembly tests (rust-lang/reference#1648)

## rust-lang/rust-by-example

1 commits in 054259ed1bf01cdee4309ee764c7e103f6df3de5..743766929f1e53e72fab74394ae259bbfb4a7619
2025-02-02 19:53:31 UTC to 2025-02-02 19:53:31 UTC

- Spanish translation to 1:2100 (rust-lang/rust-by-example#1910)
2025-02-03 21:11:38 +01:00
Matthias Krüger
628ae405f8
Rollup merge of #136493 - RalfJung:x86-platform-support, r=Noratrieb
platform-support: document CPU baseline for x86-32 targets

Also fixes the footnote for i686-unknown-hurd-gnu (which has the bad case of the x87 issue since it uses a non-SSE baseline) and adds the missing footnote for i686-unknown-redox. Both of those targets break our usual pattern by not using the Pentium 4 baseline, but fixing that is a much larger change that I will not pursue (see [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/x86-32.20target.20names)).

Cc ``@bjorn3``
2025-02-03 21:11:37 +01:00
Matthias Krüger
d6f94a683c
Rollup merge of #136484 - Zalathar:query-cache-notes, r=jieyouxu
Notes on types/traits used for in-memory query caching

When the word "cache" appears in the context of the query system, it often isn't obvious whether that is referring to the in-memory query cache or the on-disk incremental cache.

For these types, we can assure the reader that they are for in-memory caching.
2025-02-03 21:11:36 +01:00
Matthias Krüger
f180013800
Rollup merge of #136476 - jieyouxu:panic-panic-panic, r=lcnr
Remove generic `//@ ignore-{wasm,wasm32,emscripten}` in tests

Follow-up to #135926.

In favor of capability-based guards `//@ needs-{unwind,subprocess}`.

Resolves #135923.

r? ``@ghost``

try-job: test-various
2025-02-03 21:11:36 +01:00
Matthias Krüger
7e0118cdd2
Rollup merge of #136430 - FedericoBruzzone:follow-up-136180, r=oli-obk
Use the type-level constant value `ty::Value` where needed

**Follow-up to #136180**

### Summary

This PR refactors functions to accept a single type-level constant value `ty::Value` instead of separate `ty::ValTree` and `ty::Ty` parameters:

- `valtree_to_const_value`: now takes `ty::Value`
- `pretty_print_const_valtree`: now takes `ty::Value`
- Uses `pretty_print_const_valtree` for formatting valtrees  when `visit_const_operand`
- Moves `try_to_raw_bytes` from `ty::Valtree` to `ty::Value`

---

r? ``@lukas-code`` ``@oli-obk``
2025-02-03 21:11:35 +01:00
Matthias Krüger
2c6c7f8ef2
Rollup merge of #136411 - dtolnay:fnptr, r=notriddle
Omit argument names from function pointers that do not have argument names

This matches the style used for the vast majority of function pointer types in real-world code, in my experience. Prefixing `_: ` to every argument does not improve clarity.

**Before:**

<img src="https://github.com/user-attachments/assets/f07efa8b-d57e-4897-aa97-40db7d207862">

**After:**

<img src="https://github.com/user-attachments/assets/8405e08b-d6d2-4904-bcc3-a3eb866cecf0">
2025-02-03 21:11:34 +01:00
Matthias Krüger
e38f1152be
Rollup merge of #136299 - lqd:polonius-next-episode-9, r=jackh726
Ignore NLL boring locals in polonius diagnostics

Another easy one ``@jackh726`` (the diff is inflated by blessed test expectations don't worry :)

NLLs don't compute liveness for boring locals, and therefore cannot find them in causes explaining borrows. In polonius, we don't have this liveness optimization (we may be able to do something partially similar in the future, e.g. for function parameters and the like), so we do encounter these in diagnostics even though we don't want to. This PR:
- restructures the polonius context into per-phase data, in spirit as you requested in an earlier review
- stores the locals NLLs would consider boring into the errors/diagnostics data
- ignores these if a boring local is found when trying to explain borrows

This PR fixes around 80 cases of diagnostics differences between `-Zpolonius=next` and NLLs. I've also added explicit revisions to a few polonius tests (both for the in-tree implementation as well as the datalog implementation -- even if we'll eventually remove them). I didn't do this for all the "dead" expectations that were removed from #136112 for that same reason, it's fine. I'll soon/eventually add explicit revisions where they're needed: there's only a handful of tests left to fix.

r? ``@jackh726``
2025-02-03 21:11:34 +01:00
Matthias Krüger
f2b7a299d2
Rollup merge of #136289 - Pyr0de:oncecell-docs, r=tgross35
OnceCell & OnceLock docs: Using (un)initialized consistently

Changed
* `set` / `initialize` / `full` to `initialized state`
* `uninitialize` / `empty` to `uninitialized state`
* `f` to `f()`
* Added explaination of `uninitialized state` & `initialized state`

[OnceCell Docs](https://doc.rust-lang.org/nightly/std/cell/struct.OnceCell.html)
[OnceLock Docs](https://doc.rust-lang.org/nightly/std/sync/struct.OnceLock.html)

Fixes #85716
``@rustbot`` label +A-docs
2025-02-03 21:11:33 +01:00
bors
f027438f8b Auto merge of #136146 - RalfJung:x86-abi, r=workingjubilee
Explicitly choose x86 softfloat/hardfloat ABI

Part of https://github.com/rust-lang/rust/pull/135408:
Instead of choosing this based on the target features listed in the target spec, make that choice explicit.
All built-in targets are being updated here; custom (JSON-defined) x86 (32bit and 64bit) softfloat targets need to explicitly set `rustc-abi` to `x86-softfloat`.
2025-02-03 20:02:54 +00:00
Ralf Jung
56725e842a platform-support: document CPU baseline for x86-32 targets 2025-02-03 19:08:07 +01:00
FedericoBruzzone
00c61a81a0 Move try_to_raw_bytes from ty::Valtree to ty::Value
Signed-off-by: FedericoBruzzone <federico.bruzzone.i@gmail.com>
2025-02-03 18:33:27 +01:00
rustbot
e9b2349179 Update books 2025-02-03 12:22:15 -05:00
Pascal S. de Kloe
ebeaf2e302 no unsafe pointer and no overflowing_literals in fmt::Display of integers 2025-02-03 17:44:02 +01:00
bors
534d79adf9 Auto merge of #136481 - jieyouxu:rollup-w0lnnqb, r=jieyouxu
Rollup of 8 pull requests

Successful merges:

 - #136356 (Docs for f16 and f128: correct a typo and add details)
 - #136404 (Remove a footgun-y feature / relic of the past from the compiletest DSL)
 - #136432 (LTA: Actually check where-clauses for well-formedness at the def site)
 - #136438 (miri: improve error when offset_from preconditions are violated)
 - #136441 ([`compiletest`-related cleanups 1/7] Cleanup `is_rustdoc` logic and remove a useless path join in rustdoc-json runtest logic)
 - #136455 (Remove some `Clone` bounds and derives.)
 - #136464 (Remove hook calling via `TyCtxtAt`.)
 - #136467 (override default config profile on tarballs)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-02-03 16:42:25 +00:00
Ralf Jung
8596ce141c patch RfL job 2025-02-03 16:56:51 +01:00
Ralf Jung
f755f4cd1a add rustc_abi to control ABI decisions LLVM does not have flags for, and use it for x86 softfloat 2025-02-03 16:56:51 +01:00
Ralf Jung
f6c1c5718a platform-support docs: fix x87 errata footnotes 2025-02-03 16:56:25 +01:00
Ben Kimock
7dfc786df1 Enable more tests on Windows 2025-02-03 10:39:32 -05:00
许杰友 Jieyou Xu (Joe)
190a8a65db tests: remove redundant //@ ignore-{wasm,wasm32,emscripten} 2025-02-03 22:27:17 +08:00
bors
f2c4ccd852 Auto merge of #136352 - lqd:ensure-stacks, r=compiler-errors
Add a couple of missing `ensure_sufficient_stacks`

r? `@saethlin` I hope you didn't spend time on this already.

(I couldn't sleep, opened `check_tail_calls`, there was a single call where it could happen, might as well fix it)

This PR adds a couple of missing `ensure_sufficient_stack`s:
- one in `check_tail_calls` that prevented the #135709 backport on some targets.
- after that was fixed, the test still didn't pass starting at 4MB, so I also added one in `check_unsafety` and that made it pass.

I didn't add an `rmake` test purposefully limiting the min stack size on `issue-74564-if-expr-stack-overflow.rs`, but we could if we wanted to.

On `apple-aarch64-darwin`, this is enough to make `RUST_MIN_STACK=$((1024*1024*3)) ./x test tests/ui --test-args tests/ui/issues/issue-74564-if-expr-stack-overflow.rs` pass for me locally, and it does stack overflow otherwise.
2025-02-03 13:56:04 +00:00
FedericoBruzzone
6e0dfc813c Refactor using the type-level constant value ty::Value
Signed-off-by: FedericoBruzzone <federico.bruzzone.i@gmail.com>
2025-02-03 14:19:43 +01:00
Pyrode
f8b01b3d19 OnceCell & OnceLock docs: Using (un)initialized consistently 2025-02-03 17:48:39 +05:30
Zalathar
623d6e8ca4 Notes on types/traits used for in-memory query caching
When the word "cache" appears in the context of the query system, it often
isn't obvious whether that is referring to the in-memory query cache or the
on-disk incremental cache.

For these types, we can assure the reader that they are for in-memory caching.
2025-02-03 22:36:01 +11:00
MarcoIeni
d4dce76e19
ci: move dist-x86_64-msvc to windows 2025 2025-02-03 12:26:26 +01:00
许杰友 Jieyou Xu (Joe)
f65c6afcec
Rollup merge of #136467 - onur-ozkan:override-default-profile-on-tarballs, r=jieyouxu
override default config profile on tarballs

This is the same logic used in the Python script 613bdd4997/src/bootstrap/bootstrap.py (L1273-L1274)
2025-02-03 19:13:30 +08:00
许杰友 Jieyou Xu (Joe)
5bd0f32378
Rollup merge of #136464 - nnethercote:rm-TyCtxtAt-for-hooks, r=oli-obk
Remove hook calling via `TyCtxtAt`.

All hooks receive a `TyCtxtAt` argument.

Currently hooks can be called through `TyCtxtAt` or `TyCtxt`. In the latter case, a `TyCtxtAt` is constructed with a dummy span and passed to the hook.

However, in practice hooks are never called through `TyCtxtAt`, and always receive a dummy span. (I confirmed this via code inspection, and double-checked it by temporarily making the `TyCtxtAt` code path panic and running all the tests.)

This commit removes all the `TyCtxtAt` machinery for hooks. All hooks now receive `TyCtxt` instead of `TyCtxtAt`. There are two existing hooks that use `TyCtxtAt::span`: `const_caller_location_provider` and `try_destructure_mir_constant_for_user_output`. For both hooks the span is always a dummy span, probably unintentionally. This dummy span use is now explicit. If a non-dummy span is needed for these two hooks it would be easy to add it as an extra argument because hooks are less constrained than queries.

r? `@oli-obk`
2025-02-03 19:13:29 +08:00
许杰友 Jieyou Xu (Joe)
40d1cb406d
Rollup merge of #136455 - nnethercote:less-Clone, r=compiler-errors
Remove some `Clone` bounds and derives.

r? `@cjgillot`
2025-02-03 19:13:28 +08:00
许杰友 Jieyou Xu (Joe)
bdc6b4def5
Rollup merge of #136441 - jieyouxu:cleanup-is-rustdoc, r=compiler-errors
[`compiletest`-related cleanups 1/7] Cleanup `is_rustdoc` logic and remove a useless path join in rustdoc-json runtest logic

Reference for overall changes: https://github.com/rust-lang/rust/pull/136437
Part **1** of **7** of the *`compiletest`-related cleanups* PR series.

### Summary

- Don't match on path when we already have test suite names.
- Remove a useless path join.

r? bootstrap (or compiler)
2025-02-03 19:13:28 +08:00
许杰友 Jieyou Xu (Joe)
43764db758
Rollup merge of #136438 - RalfJung:offset_from_ub_errors, r=oli-obk
miri: improve error when offset_from preconditions are violated

Fixes https://github.com/rust-lang/miri/issues/4143
2025-02-03 19:13:27 +08:00
许杰友 Jieyou Xu (Joe)
1df7b30926
Rollup merge of #136432 - fmease:lta-fix-def-site-checks, r=compiler-errors
LTA: Actually check where-clauses for well-formedness at the def site

All of the added tests used to wrongfully pass.

r? oli-obk or types/compiler or reassign
2025-02-03 19:13:27 +08:00
许杰友 Jieyou Xu (Joe)
ca23707787
Rollup merge of #136404 - fmease:rm-compiletest-relic-of-the-past, r=Noratrieb,jieyouxu
Remove a footgun-y feature / relic of the past from the compiletest DSL

The compiletest DSL still features a historical remnant from the time when its directives were merely prefixed with `//` instead of `//`@`` when unknown directive names weren't rejected since they could just as well be part of prose:

As an "optimization", it stops looking for directives once it stumbles upon a line which starts with either `fn` or `mod`. This is super footgun-y as it obviously leads to any seeming compiletest directives below `fn` and `mod` items getting completely ignored.

See #136403 for a practical example. As well the assembly test updated in this PR.

~~Blocked on #136403.~~ (merged)
2025-02-03 19:13:26 +08:00
许杰友 Jieyou Xu (Joe)
7be7f3b50e
Rollup merge of #136356 - pthariensflame:patch-1, r=tgross35
Docs for f16 and f128: correct a typo and add details

CC: #116909; corrects and expands #124750.
2025-02-03 19:13:26 +08:00