Commit graph

147831 commits

Author SHA1 Message Date
Matthias Krüger
b0fb3c56e0
Rollup merge of #124765 - GuillaumeGomez:fix-wrong-cog-colotr, r=notriddle
[rustdoc] Fix bad color for setting cog in ayu theme

Before:

![Screenshot from 2024-05-05 19-29-36](https://github.com/rust-lang/rust/assets/3050060/e1f078e5-7fb3-472d-91e7-b4bde551d411)

After:

![image](https://github.com/rust-lang/rust/assets/3050060/0aa115ac-dd69-48e1-b93e-067a39cf25d2)

r? ````@notriddle````
2024-05-06 06:21:04 +02:00
Matthias Krüger
3d97660f40
Rollup merge of #124742 - Urgau:check-cfg-rustfmt, r=fmease
Add `rustfmt` cfg to well known cfgs list

This PR adds the `rustfmt` cfg to the well known cfgs list.

Related to https://github.com/rust-lang/rust/issues/124735
2024-05-06 06:21:03 +02:00
bors
80420a693f Auto merge of #124747 - MasterAwesome:master, r=davidtwco
Support Result<T, E> across FFI when niche optimization can be used (v2)

This PR is identical to #122253, which was approved and merged but then removed from master by a force-push due to a [CI bug](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/ci.20broken.3F).

r? ghost

Original PR description:

---

Allow allow enums like `Result<T, E>` to be used across FFI if the T/E can be niche optimized and the non-niche-optimized type is FFI safe.

Implementation of https://github.com/rust-lang/rfcs/pull/3391
Tracking issue: https://github.com/rust-lang/rust/issues/110503

Additional ABI and codegen tests were added in https://github.com/rust-lang/rust/pull/115372
2024-05-06 00:55:49 +00:00
Guillaume Gomez
0cbebd07ee Fix bad color for setting cog in ayu theme 2024-05-05 20:07:12 +02:00
bors
872a85658d Auto merge of #124754 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-05-05 17:08:24 +00:00
Guillaume Gomez
d3e042dc4e
Rollup merge of #124749 - RossSmyth:stable_range, r=davidtwco
Stabilize exclusive_range_pattern (v2)

This PR is identical to #124459, which was approved and merged but then removed from master by a force-push due to a [CI bug](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/ci.20broken.3F).

r? ghost

Original PR description:

---

Stabilization report: https://github.com/rust-lang/rust/issues/37854#issuecomment-1842398130
FCP: https://github.com/rust-lang/rust/issues/37854#issuecomment-1872520294

Stabilization was blocked by a lint that was merged here: #118879

Documentation PR is here: rust-lang/reference#1484

`@rustbot` label +F-exclusive_range_pattern +T-lang
2024-05-05 16:42:48 +02:00
Guillaume Gomez
b3342e1f62
Rollup merge of #124668 - 12101111:fix-bootstrap-tarball, r=onur-ozkan
Fix bootstrap panic when build from tarball

Got this error when build from beta tarball (2024-05-03)

regression of 6f4f39a8d5

panic info:

```
thread 'main' panicked at src/core/builder.rs:583:25:
`should_run.paths` should correspond to real on-disk paths - use `alias` if there is no relevant path: src/llvm-project/compiler-rt/lib/crt
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: bootstrap::core::builder::ShouldRun::paths::{{closure}}
             at ./src/bootstrap/src/core/builder.rs:583:25
   3: core::iter::adapters::map::map_fold::{{closure}}
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/adapters/map.rs:89:28
   4: <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/slice/iter/macros.rs:232:27
   5: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/adapters/map.rs:129:9
   6: core::iter::traits::iterator::Iterator::for_each
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/traits/iterator.rs:817:9
   7: alloc::vec::Vec<T,A>::extend_trusted
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/mod.rs:3020:17
   8: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/spec_extend.rs:26:9
   9: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/spec_from_iter_nested.rs:62:9
  10: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/spec_from_iter.rs:33:9
  11: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/mod.rs:2894:9
  12: core::iter::traits::iterator::Iterator::collect
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/traits/iterator.rs:2003:9
  13: <alloc::collections::btree::set::BTreeSet<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/collections/btree/set.rs:1191:34
  14: core::iter::traits::iterator::Iterator::collect
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/traits/iterator.rs:2003:9
  15: bootstrap::core::builder::ShouldRun::paths
             at ./src/bootstrap/src/core/builder.rs:578:13
  16: bootstrap::core::builder::ShouldRun::path
             at ./src/bootstrap/src/core/builder.rs:562:9
  17: <bootstrap::core::build_steps::llvm::CrtBeginEnd as bootstrap::core::builder::Step>::should_run
             at ./src/bootstrap/src/core/build_steps/llvm.rs:1174:9
  18: bootstrap::core::builder::StepDescription::run::{{closure}}
             at ./src/bootstrap/src/core/builder.rs:416:25
  19: core::iter::adapters::map::map_fold::{{closure}}
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/adapters/map.rs:89:28
  20: <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/slice/iter/macros.rs:232:27
  21: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/adapters/map.rs:129:9
  22: core::iter::traits::iterator::Iterator::for_each
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/traits/iterator.rs:817:9
  23: alloc::vec::Vec<T,A>::extend_trusted
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/mod.rs:3020:17
  24: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/spec_extend.rs:26:9
  25: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/spec_from_iter_nested.rs:62:9
  26: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/spec_from_iter.rs:33:9
  27: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/vec/mod.rs:2894:9
  28: core::iter::traits::iterator::Iterator::collect
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/traits/iterator.rs:2003:9
  29: bootstrap::core::builder::StepDescription::run
             at ./src/bootstrap/src/core/builder.rs:414:27
  30: bootstrap::core::builder::Builder::run_step_descriptions
             at ./src/bootstrap/src/core/builder.rs:1047:9
  31: bootstrap::core::builder::Builder::execute_cli
             at ./src/bootstrap/src/core/builder.rs:1028:9
  32: bootstrap::Build::build
             at ./src/bootstrap/src/lib.rs:683:17
  33: bootstrap::main
             at ./src/bootstrap/src/bin/main.rs:79:5
  34: core::ops::function::FnOnce::call_once
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:250:5
```
2024-05-05 16:42:46 +02:00
Guillaume Gomez
042d0f5266
Rollup merge of #124148 - notriddle:notriddle/reference, r=GuillaumeGomez
rustdoc-search: search for references

This feature extends rustdoc with syntax and search index information for searching borrow references. Part of https://github.com/rust-lang/rust/issues/60485

## Preview

- [`&mut`](https://notriddle.com/rustdoc-html-demo-11/reference/std/index.html?search=%26mut)
- [`&Option<T> -> Option<&T>`](https://notriddle.com/rustdoc-html-demo-11/reference/std/index.html?search=%26Option%3CT%3E%20-%3E%20Option%3C%26T%3E)
- [`&mut Option<T> -> Option<&mut T>`](https://notriddle.com/rustdoc-html-demo-11/reference/std/index.html?search=%26mut%20Option%3CT%3E%20-%3E%20Option%3C%26mut%20T%3E)

Updated chapter of the book: https://notriddle.com/rustdoc-html-demo-11/reference/rustdoc/read-documentation/search.html

## Motivation

See https://github.com/rust-lang/rust/pull/119676

## Guide-level explanation

You can't search by lifetimes, but other than that it's the same syntax references normally use.

## Reference-level description

<table>
<thead>
  <tr>
    <th>Shorthand</th>
    <th>Explicit names</th>
  </tr>
</thead>
<tbody>
  <tr><td colspan="2">Before this PR</td></tr>
  <tr>
    <td><code>[]</code></td>
    <td><code>primitive:slice</code> and/or <code>primitive:array</code></td>
  </tr>
  <tr>
    <td><code>[T]</code></td>
    <td><code>primitive:slice&lt;T&gt;</code> and/or <code>primitive:array&lt;T&gt;</code></td>
  </tr>
  <tr>
    <td><code>!</code></td>
    <td><code>primitive:never</code></td>
  </tr>
  <tr>
    <td><code>()</code></td>
    <td><code>primitive:unit</code> and/or <code>primitive:tuple</code></td>
  </tr>
  <tr>
    <td><code>(T)</code></td>
    <td><code>T</code></td>
  </tr>
  <tr>
    <td><code>(T,)</code></td>
    <td><code>primitive:tuple&lt;T&gt;</code></td>
  </tr>
  <tr>
    <td><code>(T, U -> V, W)</code></td>
    <td><code>fn(T, U) -> (V, W)</code>, Fn, FnMut, and FnOnce</td>
  </tr>
  <tr><td colspan="2">New additions with this PR</td></tr>
  <tr>
    <td><code>&</code></td>
    <td><code>primitive:reference</td>
  </tr>
  <tr>
    <td><code>&mut</code></td>
    <td><code>primitive:reference&lt;keyword:mut&gt;</td>
  </tr>
  <tr>
    <td><code>&T</code></td>
    <td><code>primitive:reference&lt;T&gt;</td>
  </tr>
  <tr>
    <td><code>&mut T</code></td>
    <td><code>primitive:reference&lt;keyword:mut, T&gt;</td>
  </tr>
</tbody>
</table>

### Search query grammar

<code><pre><strong>borrow-ref = AMP *WS [MUT] *WS [arg]</strong>
arg = [type-filter *WS COLON *WS] (path [generics] / slice-like / tuple-like / <strong>borrow-ref</strong>)</pre></code>

```
AMP = "&"
MUT = "mut"
```

## Future direction

As described in https://github.com/rust-lang/rust/pull/118194 and https://github.com/rust-lang/rust/pull/119676

* The remaining type expression grammar (this is another step in the type expression grammar: `ReferenceType` is now supported)
* Search subtyping and traits
2024-05-05 16:42:46 +02:00
bors
19a5d475f2 Auto merge of #3565 - RalfJung:libc, r=RalfJung
re-organize libc tests

And share some more things across unices
2024-05-05 14:07:43 +00:00
Ralf Jung
f3018409fc hello: also ensure stderr works 2024-05-05 15:46:13 +02:00
Ralf Jung
aaf5c5e742 move randomness tests into a single file and share the getrandom implementation across unices 2024-05-05 15:46:12 +02:00
Ralf Jung
352b21033a move things out of libc-misc that have a better home; make libc-misc work on illumos 2024-05-05 15:45:28 +02:00
bors
e1b5e5540f Auto merge of #3569 - RalfJung:cargo-update, r=RalfJung
housekeeping: update dependencies

This also pulls in the new rustc-build-sysroot that hides all the unexpected_cfgs noise.
2024-05-05 13:41:36 +00:00
Ralf Jung
067e33d701 housekeeping: update dependencies 2024-05-05 15:31:13 +02:00
Ralf Jung
5b6df92d54 unix/thread: properly use pthread_t for thread IDs 2024-05-05 15:12:23 +02:00
Urgau
f90b15b7fc Add rustfmt cfg to well known cfgs list 2024-05-05 14:30:35 +02:00
Ralf Jung
e5597b20c4 sanity-check the pthread offsets against the static initializers 2024-05-05 14:24:21 +02:00
Ralf Jung
ba1a00af15 pthread shims: reorganize field offset handling 2024-05-05 13:35:07 +02:00
David Carlier
b4011a08e8 illumos support. 2024-05-05 12:52:47 +01:00
Ralf Jung
745e3f224c make ExitProcess Windows-only 2024-05-04 22:50:51 +02:00
Ralf Jung
85e061af8f fix/extend some comments 2024-05-04 22:48:02 +02:00
Ralf Jung
ef5a574af4 rustc_pull: explain order of operations 2024-05-04 22:44:56 +02:00
Ralf Jung
8db37a3cb5 Merge from rustc 2024-05-04 22:44:01 +02:00
Ralf Jung
89e828889a Preparing for merge from rustc 2024-05-04 22:28:57 +02:00
Matthias Krüger
e1867404a8
Rollup merge of #124723 - onkoe:issue-124722-fix, r=workingjubilee
Use correct Hermit links in The `rustc` Book

As is, this documentation links to the old Hermit organization, `hermitcore`, which isn't used anymore.

I've updated the links to point to the new organization. This PR also changes the incorrect "rusty loader" link to point to the new `hermit-rs-template` repo.

(fixes #124722)
2024-05-04 22:27:34 +02:00
Matthias Krüger
f4d0776b4f
Rollup merge of #124663 - Kobzol:docker-local-download, r=Mark-Simulacrum
Enable reusing CI Docker cache when running CI images locally

When running a CI image locally, e.g. using `DEPLOY=1 src/ci/docker/run.sh dist-x86_64-linux`, it can take a long time until the Docker image is built, which is annoying.

Since we now use proper Docker caching on CI, it should be possible to just `docker pull` the prebuilt image to reuse the cache. We didn't want to do this on CI, since our caching key isn't perfect and it's possible that we can miss some changes, but I think that for local usage it is fine (we could introduce some env. var. to force disable the image download, if needed).

r? `@Mark-Simulacrum`
2024-05-04 22:27:31 +02:00
Matthias Krüger
bad5382346
Rollup merge of #124573 - onur-ozkan:update-dep-comment, r=Mark-Simulacrum
add a reference link to the comment of the "cc" and "cmake".

Having a reference link provides more context for the problems of bumping cc and cmake.
2024-05-04 22:27:30 +02:00
Matthias Krüger
43a5e3fb95
Rollup merge of #124501 - VladimirMakaev:add-lldb-to-config-toml, r=Mark-Simulacrum
add support to override lldb binary path for ./x test

When running debuginfo tests I couldn't set custom build of lldb. The `src/bootstrap/src/core/build_steps/test.rs` has "lldb" hardcoded. I ended up hacking `src/bootstrap/src/core/build_steps/test.rs` just to get the tests running the way I wanted.

Then I've found out that we can override `gdb` under [build] section. This PR enables the same for `lldb`
2024-05-04 22:27:30 +02:00
barrett
3abefa17fb
docs(hermit): Explain Hermit's template link
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2024-05-04 14:53:08 -05:00
Ralf Jung
cdf3f3c202 only show the 'basic API common for this target' message when this is a missing foreign function 2024-05-04 20:56:51 +02:00
Barrett
da961a8b92 fix(docs): Correct Hermit links to loader + 'rusty-demo'
Both are renamed! Sorry for the initial incorrect commit,
but this should correct it. 😄
2024-05-04 13:39:38 -05:00
Barrett
eade8365b1 docs(fix): incorrect Hermit links in the rustc book
the Hermit team seems to have moved from `hermitcore` to
`hermit-os` on GitHub. this change corrects the old links on its
target page.
2024-05-04 13:28:25 -05:00
bors
d0e77727b1 Auto merge of #3561 - RalfJung:rustup, r=RalfJung
Rustup
2024-05-04 17:36:03 +00:00
bors
7eda989cc9 Auto merge of #3557 - RalfJung:getaffinity, r=RalfJung
Move sched_getaffinity back to Linux

This reverts commit c1a3f8576ea12b0bed68ad3dedf4069ca3d9816f. The shim isn't actually useful for anything, and it is untested on FreeBSD. On Linux it exists solely because std and num_cpus are trying this before falling back to `sysconf`, but on FreeBSD that's not how they work, so there's no reason I can see to have this stub shim on FreeBSD.
2024-05-04 17:11:02 +00:00
Ralf Jung
a040df7e4e remove some dead code 2024-05-04 19:09:40 +02:00
Ralf Jung
c6e273cccd bless and fmt 2024-05-04 18:40:02 +02:00
Ralf Jung
0c989293ce Merge from rustc 2024-05-04 18:37:35 +02:00
Ralf Jung
adb74ae486 Preparing for merge from rustc 2024-05-04 18:37:23 +02:00
Ralf Jung
9503c41ecc also test pthread_condattr_getclock 2024-05-04 18:28:37 +02:00
Ralf Jung
86d7dff0b8 factor some pthread offset into constants 2024-05-04 18:08:41 +02:00
Ralf Jung
98bb8acb5b sync: better error in invalid synchronization primitive ID 2024-05-04 17:52:50 +02:00
Ralf Jung
8e4466497f interpret, miri: uniform treatments of intrinsics/functions with and without return block 2024-05-04 17:39:29 +02:00
bors
37537d1485 Auto merge of #3559 - RalfJung:weak-extern-static, r=RalfJung
add helper function to declare an extern static for a weak symbol

and use it to make `statx` a regular function and get rid of the syscall
2024-05-04 13:22:53 +00:00
Ralf Jung
19aa8a021d make statx a regular function (so we don't need to support the syscall) 2024-05-04 15:21:08 +02:00
Ralf Jung
823e31d9fa add helper function to declare an extern static for a weak symbol 2024-05-04 14:42:58 +02:00
bors
d7ea27808d Auto merge of #124703 - matthiaskrgr:rollup-2lljptd, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #123356 (Reduce code size of `thread::set_current`)
 - #124159 (Move thread parking to `sys::sync`)
 - #124293 (Let miri and const eval execute intrinsics' fallback bodies)
 - #124677 (Set non-leaf frame pointers on Fuchsia targets)
 - #124692 (We do not coerce `&mut &mut T -> *mut mut T`)
 - #124698 (Rewrite `rustdoc-determinism` test in Rust)
 - #124700 (Remove an unnecessary cast)
 - #124701 (Docs: suggest `uN::checked_sub` instead of check-then-unchecked)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-05-04 12:41:40 +00:00
bors
3a6faee1e2 Auto merge of #3554 - RalfJung:freebsd, r=RalfJung
document unofficially supported OSes

Also tweak the freeBSD testing a bit.
2024-05-04 12:33:22 +00:00
bors
fd15dc391b Auto merge of #3558 - RalfJung:unsupported, r=RalfJung
update 'unsupported' message

Instead of "the interpreter", just say Miri.

Also be a more more clear about what is expected to be supported and what not (Cc https://github.com/rust-lang/miri/issues/2325).
2024-05-04 12:07:24 +00:00
Ralf Jung
05e7850d7a make some tests not need output (so they work on wasm) 2024-05-04 14:07:17 +02:00
Ralf Jung
38598e68c5 document unofficially supported OSes 2024-05-04 14:07:17 +02:00