Commit Graph

257175 Commits

Author SHA1 Message Date
Steve Lau
63ec8dd24f fix: build on haiku 2024-06-10 10:38:00 +08:00
bors
d2fb97fcec Auto merge of #126153 - onur-ozkan:fix-rustdoc-issue-with-ci-rustc, r=Mark-Simulacrum
resolve rustdoc incompatibility with `rust.download-rustc=true` + `rust.channel= beta/stable`

Previously, we were unable to use `rust.download-rustc` with the beta or stable
channel settings through `rust.channel` due to breaking rustdoc UI tests.
This was because when using a precompiled nightly compiler from CI, we must use the
channel of precompiled compiler and ignore `rust.channel` from the configuration.

This change addresses that issue in `Builder::doc_rust_lang_org_channel` and allows rustdoc
UI tests to work with the precompiled compiler even if the channel specified in config.toml is
"beta" or "stable".

Blocker for https://github.com/rust-lang/rust/pull/122709
2024-06-10 02:27:43 +00:00
binarycat
fe52b5439e docs(core): make more const_ptr doctests assert instead of printing
fixes #124669
2024-06-09 20:22:46 -04:00
bors
6d94a87275 Auto merge of #107099 - edward-shen:edward-shen/rustdoc-remap-path-prefix, r=GuillaumeGomez
rustdoc: Add support for --remap-path-prefix

Adds `--remap-path-prefix` as an unstable option. This is implemented to mimic the behavior of `rustc`'s `--remap-path-prefix`.

This flag similarly takes in two paths, a prefix to replace and a replacement string.

This is useful for build tools (e.g. Buck) other than cargo that can run doc tests.

cc: `@dtolnay`
2024-06-10 00:07:18 +00:00
Vadim Petrochenkov
d5dd2d8284 rustc_span: Optimize syntax context updates in spans 2024-06-10 02:20:16 +03:00
bors
a70b2ae577 Auto merge of #126205 - jieyouxu:rollup-s64z5ng, r=jieyouxu
Rollup of 4 pull requests

Successful merges:

 - #126172 (Weekly `cargo update`)
 - #126176 (rustdoc-search: use lowercase, non-normalized name for type search)
 - #126190 (Autolabel run-make tests, remind to update tracking issue)
 - #126194 (Migrate more things to `WinError`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-06-09 21:03:04 +00:00
Jakub Beránek
5349476a03 Remove libstdc++ version check 2024-06-09 22:10:49 +02:00
许杰友 Jieyou Xu (Joe)
60657d36af
Rollup merge of #126194 - ChrisDenton:winerror, r=Mark-Simulacrum
Migrate more things to `WinError`

In `library/std/src/sys/pal/windows`, we prefer to use the `WinError` type in place of using either `io::Result` or `unsafe { GetLastError }`. The latter is unsafe and weakly typed whereas the former is larger and requires unwrapping because it returns an `Option`.

I also fixed up a couple of places where we were unnecessarily defining error constants that are already defined.
2024-06-09 20:54:24 +01:00
许杰友 Jieyou Xu (Joe)
7e643932a5
Rollup merge of #126190 - jieyouxu:run-make-triagebot, r=Nilstrieb,Kobzol
Autolabel run-make tests, remind to update tracking issue

- Autolabel PRs modifying `tests/run-make/` and `src/tools/run-make-support/` with `A-run-make` label.
- Add reminder to update the tracking issue <https://github.com/rust-lang/rust/issues/121876> if applicable when `tests/run-make/` is modified by a PR.

r? `@Kobzol`
2024-06-09 20:54:23 +01:00
许杰友 Jieyou Xu (Joe)
1fb4805341
Rollup merge of #126176 - notriddle:notriddle/fix-type-name-normalize, r=fmease
rustdoc-search: use lowercase, non-normalized name for type search

The type name ID map has underscores in its names, so the query element should have them, too.

Fixes #125993
2024-06-09 20:54:23 +01:00
许杰友 Jieyou Xu (Joe)
cbb986945b
Rollup merge of #126172 - clubby789:cargo-update, r=Mark-Simulacrum
Weekly `cargo update`

Replaces #125562

`r-efi` needs to be bumped in two places.
The `icu4x` dependencies also added a SPDX license identifer, so remove the license checking exception and add `Unicode-3.0` to the list.
2024-06-09 20:54:22 +01:00
onur-ozkan
99c5476edb remove the outdated incompatibility check
This check is no longer needed as rustdoc ui tests works with any
channel + precompiled compiler.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-09 22:49:32 +03:00
onur-ozkan
e61d3b8372 fix Builder::doc_rust_lang_org_channel
Previously, we were unable to use `rust.download-rustc` with the beta or stable
channel settings through `rust.channel` due to breaking rustdoc UI tests.
This was because when using a precompiled nightly compiler from CI, we must use the
channel of precompiled compiler and ignore `rust.channel` from the configuration.

This change addresses that issue in `Builder::doc_rust_lang_org_channel` and allows rustdoc
UI tests to work with the precompiled compiler even if the channel specified in config.toml is
"beta" or "stable".

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-09 22:48:56 +03:00
Michael Howell
8865b8c639 rustdoc-search: use lowercase, non-normalized name for type search
The type name ID map has underscores in its names, so the query
element should have them, too.
2024-06-09 11:56:52 -07:00
bors
503dfcf4e0 Auto merge of #126202 - jieyouxu:rollup-2ixnizz, r=jieyouxu
Rollup of 6 pull requests

Successful merges:

 - #125041 (Enable GVN for `AggregateKind::RawPtr`)
 - #125253 (Add `FRAC_1_SQRT_2PI` constant to f16/f32/f64/f128)
 - #125465 (bootstrap: vendor crates required by opt-dist to collect profiles )
 - #125470 (Add release notes for 1.79.0)
 - #125963 (Remove hard-coded hashes from codegen tests)
 - #126188 (Fix documentation for `impl_common_helpers` in `run-make-support`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-06-09 18:54:46 +00:00
许杰友 Jieyou Xu (Joe)
a8cba36cbf
Rollup merge of #126188 - Kobzol:runmake-command-docs, r=jieyouxu
Fix documentation for `impl_common_helpers` in `run-make-support`

Forgot to do this in https://github.com/rust-lang/rust/pull/126121.

`@bors` rollup

r? `@jieyouxu`
2024-06-09 19:16:21 +01:00
许杰友 Jieyou Xu (Joe)
3720757d21
Rollup merge of #125963 - workingjubilee:remove-hashes-from-codegen-tests, r=Mark-Simulacrum
Remove hard-coded hashes from codegen tests

This removes hard-coded hashes from the codegen and assembly tests. These use FileCheck, which supports eliding part of the pattern being matched, including by capturing it as a pattern parameter for later matching-on. This is much more appropriate than asking contributors to engage with deliberately-opaque identifier schemes.

In order to reduce the likelihood of error, every hash-coded segment I've touched now expects a certain length. This correctly represents these cases, as our hash outputs have a predetermined amount of entropy attached to them.

This is not done for the UI test suite as those are comparatively easy to simply `--bless`, whereas that would be inappropriate for codegen tests. It is also not done for debuginfo tests as those tests do not support such elision in a correct and useful way.
2024-06-09 19:16:21 +01:00
许杰友 Jieyou Xu (Joe)
74408b1862
Rollup merge of #125470 - cuviper:relnotes-1.79.0, r=Mark-Simulacrum
Add release notes for 1.79.0

cc `@rust-lang/release`
r? `@Mark-Simulacrum`
2024-06-09 19:16:20 +01:00
许杰友 Jieyou Xu (Joe)
4ca52f1869
Rollup merge of #125465 - weihanglo:opt-dist-vendor, r=Mark-Simulacrum
bootstrap: vendor crates required by opt-dist to collect profiles

These are the default package set required by opt-dist to correctly work,
hence for people wanting to build a production grade of rustc in a
sandboxed / air-gapped environment, these need to be vendored.

The size of `rustc-src-nightly.tar.xz` before and after this change:

* Before: 298M
* After: 323M (+8%)

Size change might or might not be a concern.
See the previous discussion: https://github.com/rust-lang/rust/pull/125166#issuecomment-2113626468

Previous efforts on making:

* https://github.com/rust-lang/rust/pull/125125
* https://github.com/rust-lang/rust/pull/125166

---

Note that extra works still need to be done to make it fully vendored.

* The current pinned rustc-perf uses `tempfile::Tempdir` as the working
  directory when collecting profiles from some of these packages.
  This "tmp" working directory usage make it impossible for Cargo to pick
  up the correct vendor sources setting in `.cargo/config.toml` bundled
  in the rustc-src tarball. [^1]
* opt-dist verifies the final built rustc against a subset of rustc test
  suite. However it rolls out its own `config.toml` without setting
  `vendor = true`, and that results in `./vendor/` directory removed.
  [^2]

[^1]: 4f313add60/collector/src/compile/benchmark/mod.rs (L164-L173)
[^2]: 606afbb617/src/tools/opt-dist/src/tests.rs (L62-L77)
2024-06-09 19:16:20 +01:00
许杰友 Jieyou Xu (Joe)
61671a7e34
Rollup merge of #125253 - sunsided:feature/FRAC_1_SQRT_PI, r=Mark-Simulacrum
Add `FRAC_1_SQRT_2PI` constant to f16/f32/f64/f128

This adds the `FRAC_1_SQRT_2PI` to the `f16`, `f32`, `f64` and `f128` as [`1/√(2π)`](https://www.wolframalpha.com/input?i=1%2Fsqrt%282*pi%29). The rationale is that while `FRAC_1_SQRT_PI` already exists, [Gaussian calculations](https://en.wikipedia.org/wiki/Gaussian_function) for random normal distributions require a `1/(σ√(2π))` term, which could then be directly expressed e.g. as `f32::FRAC_1_SQRT_2PI / sigma`.

The actual value is approximately `1/√(2π) = 0.3989422804014326779399460599343818684758586311649346576659258296…`. Truncated/rounded forms were used for the individual types.

---

~~I did not any of the `#[unstable]` attributes since I am not aware of their implications.~~

**Edit:** I applied the stability attributes from the surrounding types according to what seemed most likely correct. I believe the `more_float_constants` feature marker is incorrectly applied, but I wasn't sure how to proceed.
2024-06-09 19:16:19 +01:00
许杰友 Jieyou Xu (Joe)
f000b428bd
Rollup merge of #125041 - scottmcm:gvn-for-from-raw-parts, r=cjgillot
Enable GVN for `AggregateKind::RawPtr`

Looks like I was worried for nothing; this seems like it's much easier than I was originally thinking it would be.
r? `@cjgillot`

This should be useful for `x[..4]`-like things, should those start inlining enough to expose the lengths.
2024-06-09 19:16:19 +01:00
Edward Shen
d9f78cb793
rustdoc: Add support for --remap-path-prefix
Adds --remap-path-prefix as an unstable option. This is implemented to
mimic the behavior of rustc's --remap-path-prefix but with minor
adjustments.

This flag similarly takes in two paths, a prefix to replace and a
replacement string.
2024-06-09 10:34:54 -07:00
bors
65d1a73aab Auto merge of #125999 - XrXr:dist-aarch64-gcc-13, r=Kobzol
ci: use GCC 13 as cross compiler in `dist-aarch64-linux`

I'm proposing this GCC upgrade since it addresses bug https://github.com/rust-lang/rust/issues/125619. The
regression in question affects stable release consumers who tend to have
no exposure to Rust build tools, so if at all possible, I would like to
have it resolved in the next stable release. I have tried to fix the bug
in `compiler-builtins`, which led to submitting a PR for `compiler-rt`
in upstream LLVM, but it may take a long time before these upstreams
address this regression.

A summary of why upgrading GCC solves the regression follows.
`__multc3()` is a builtin function `compiler-builtins` exposes for
specifically aarch64, non-Windows targets [1]. The object file for it is
included in `staticlib` archives through `libstd`. The implementation
for `__multc3()` is from `multc3.c`, part of LLVM's `compiler-rt`.
Upstream `compiler-rt` normally builds the C file using the Clang
from the same LLVM version. On the other hand, `compiler-builtins`
builds the C file using GCC, outside of the usual LLVM build system.
The upstream implementation doesn't have feature detection which
works for GCC version older than 10, and ends up producing an
unlinkable object.

Upstream LLVM might be slow to respond to this issue as they might deem
`compiler-builtin` as doing something out of the ordinary from their
perspective. They might reasonably assume everyone builds `compiler-rt`
through LLVM's build system.

I have done the following to test this change:
 - verified that a local build without this patch exhibits the
   regression.
 - verified that with this patch, the object for `__multc3()` has no
   reference to undefined functions in the symbol table.
 - verified that with this patch, `rustc` is usable to build Ruby with
   YJIT, and that the reported regression is resolved.

Since `loongarch64-linux-gnu` already uses GCC 13.2.0, I hope we can upgrade without issues.

try-job: dist-aarch64-linux

[1]: c04eb9e1af/build.rs (L524-L539)
2024-06-09 16:46:02 +00:00
Weihang Lo
377870386f
tidy: add license exceptions for rustc-perf
`ring` is included because it is an optional dependency of `hyper`,
which is a training data in rustc-pref for optimized build.
The license of it is generally `ISC AND MIT AND OpenSSL`,
though the `package.license` field is not set.

See https://github.com/briansmith/ring/issues/902

`git+https://github.com/rust-lang/team` git source is from
`rust_team_data`, which is used by `site` in src/tools/rustc-perf.
This doesn't really a part of the compiler,
so doesn't really affect the bootstrapping process.

See https://github.com/rust-lang/rustc-perf/pull/1914.
2024-06-09 12:33:11 -04:00
Weihang Lo
e24be071e3
feat: vendor crates required by opt-dist to collect profiles
These are the default package set required by opt-dist to correctly work,
hence for people wanting to build a production grade of rustc in a
sandboxed / air-gapped environment, these need to be vendored.

The size of `rustc-src-nightly.tar.xz` before and after this change:

* Before: 298M
* After: 323M (+8%)

These crates are the default set of packages required by opt-dist
to correctly work, hence for people wanting to build a production grade
of rustc in an sandboxed / air-gapped environment, these need to be vendored.

The size of `rustc-src-nightly.tar.xz` before and after this change:

* Before: 298M
* After: 323M (+8%)

Size change might or might not be a concern.
See the previous discussion: https://github.com/rust-lang/rust/pull/125166#issuecomment-2113626468

Previous efforts on making:

* https://github.com/rust-lang/rust/pull/125125
* https://github.com/rust-lang/rust/pull/125166

---

Note that extra works still need to be done to make it fully vendored.

* The current pinned rustc-perf uses `tempfile::Tempdir` as the working
  directory when collecting profiles from some of these packages.
  This "tmp" working directory usage make it impossible for Cargo to pick
  up the correct vendor sources setting in `.cargo/config.toml` bundled
  in the rustc-src tarball. [^1]
* opt-dist verifies the final built rustc against a subset of rustc test
  suite. However it rolls out its own `config.toml` without setting
  `vendor = true`, and that results in `./vendor/` directory removed.
  [^2]

[^1]: 4f313add60/collector/src/compile/benchmark/mod.rs (L164-L173)
[^2]: 606afbb617/src/tools/opt-dist/src/tests.rs (L62-L77)
2024-06-09 12:33:11 -04:00
Josh Stone
4977608f72 Add release notes for 1.79.0 2024-06-09 12:31:12 -04:00
许杰友 Jieyou Xu (Joe)
d3b1367c43 Autolabel run-make tests, remind to update tracking issue
- Autolabel PRs modifying `tests/run-make/` and
  `src/tools/run-make-support/` with `X-run-make` label.
- Add reminder to update the tracking issue
  <https://github.com/rust-lang/rust/issues/121876>
  if applicable when `tests/run-make/` is modified by a PR.
2024-06-09 15:52:41 +00:00
bors
7bb0ef4902 Auto merge of #126193 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-06-09 14:37:00 +00:00
Chris Denton
3606818010
Migrate more things to WinError 2024-06-09 14:29:28 +00:00
bors
212841e17c Auto merge of #126166 - matthiaskrgr:crsh, r=jieyouxu
tests: add more crashes

r? `@jieyouxu`
2024-06-09 12:26:10 +00:00
bors
ad85a20031 Auto merge of #3661 - tiif:fix/eventfd, r=RalfJung
Follow up PR for eventfd shim

Follow up of https://github.com/rust-lang/miri/pull/3650
2024-06-09 12:15:39 +00:00
ivan-shrimp
041e204e0d fix NonZero doctest inconsistencies 2024-06-09 19:45:12 +08:00
tiif
69512c7b1e Follow up fix for eventfd shim 2024-06-09 19:44:06 +08:00
bors
b5ae8bdb01 Auto merge of #3663 - RalfJung:timeouts, r=RalfJung
don't panic if time computaton overflows

Let the thread blocking system handle timeout computation, and on overflows we just set the timeout to 1h.
2024-06-09 11:11:26 +00:00
Ralf Jung
87c4d29ce2 don't panic if time computaton overflows 2024-06-09 13:07:36 +02:00
bors
509eec19c4 Auto merge of #3653 - tiif:bug/futex_ice, r=RalfJung
Fix futex with large timeout ICE

Fixes #3647.

This PR changed the type of ``nanoseconds`` from ``u64`` to ``u128``. In ``duration_since``, nanoseconds is manually converted to second by dividing it with 1e9. But overflow is still possible.
2024-06-09 10:18:56 +00:00
tiif
40182becc3 Run cargo fmt 2024-06-09 18:00:58 +08:00
tiif
21d66afb8f Saturate to u64::MAX 2024-06-09 18:00:58 +08:00
byt
e85c521f37 Checked add for duration update
Co-authored-by: Ralf Jung <post@ralfj.de>
2024-06-09 18:00:58 +08:00
byt
d0fb350b6a Add comment for u128 to u64 conversion.
Co-authored-by: Ralf Jung <post@ralfj.de>
2024-06-09 18:00:58 +08:00
tiif
aa8323585c Move duration division out 2024-06-09 18:00:58 +08:00
tiif
9cf04b5a22 Use modulo operation to convert nanosecond to Duration 2024-06-09 18:00:58 +08:00
tiif
9f60709ffd Remove test 2024-06-09 18:00:58 +08:00
tiif
0bca4e1a22 Convert u128 to nanosecond 2024-06-09 18:00:58 +08:00
tiif
844450ae3a First attempt 2024-06-09 18:00:58 +08:00
Ralf Jung
d5fb8257e7 interpret: do not ICE on padded non-pow2 SIMD vectors 2024-06-09 11:54:23 +02:00
Jakub Beránek
fbe5015480
Fix documentation for impl_common_helpers in run-make-support 2024-06-09 11:52:16 +02:00
bors
de822dc602 Auto merge of #3662 - RalfJung:simd-bitmask, r=RalfJung
simd_bitmask: work correctly for sizes like 24
2024-06-09 09:48:26 +00:00
Ralf Jung
ba45198c9b use strict ops in some places 2024-06-09 11:44:05 +02:00
Ralf Jung
110b092203 simd_bitmask: work correctly for sizes like 24 2024-06-09 11:44:05 +02:00