Commit Graph

160022 Commits

Author SHA1 Message Date
Michael Goulet b16f1ac5ff Rollup merge of #138053 - Kobzol:more-try-jobs, r=marcoieni
Increase the max. custom try jobs requested to `20`

Requested [here](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Increase.20try-job.20limit).

r? ````@marcoieni````
2025-03-06 15:40:02 -05:00
Michael Goulet 3ce0614950 Rollup merge of #138046 - onur-ozkan:trim-include-str, r=jieyouxu
trim channel value in `get_closest_merge_commit`

This was a silly bug which caused `git_upstream_merge_base` to never work because it was `nightly\n` not `nightly`.
2025-03-06 15:40:01 -05:00
Michael Goulet 65b5a2398a Rollup merge of #138041 - thaliaarchi:use-prelude-size-of.boostrap-compiletest, r=jieyouxu
bootstrap and compiletest: Use `size_of_val` from the prelude instead of imported

Use `std::mem::size_of_val` from the prelude instead of importing or qualifying it.

This function was added to all preludes in Rust 1.80.

r? ``@jieyouxu``
2025-03-06 15:40:01 -05:00
bors e6af292f91 Auto merge of #138039 - onur-ozkan:handle-forced-compiler-on-tools, r=jieyouxu
handle forced compiler and revert #137476

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

I would appreciate it if we could measure CI pipelines with the current changes to see if this reduces recent CI overhead. cc `@rust-lang/infra`

try-job: dist-powerpc64le-linux
2025-03-06 17:20:24 +00:00
Thalia Archibald c85d3f6e87 bootstrap and compiletest: Use size_of_val from the prelude instead of imported
Use `std::mem::size_of_val` from the prelude instead of importing or
qualifying it.

This function was added to all preludes in Rust 1.80.
2025-03-05 11:11:57 -08:00
许杰友 Jieyou Xu (Joe) 257b4947ed Rollup merge of #137728 - Darksonn:no-tuple-unsize, r=oli-obk
Remove unsizing coercions for tuples

See https://github.com/rust-lang/rust/issues/42877#issuecomment-2686010847 and below comments for justification.

Tracking issue: #42877
Fixes: #135217
2025-03-05 21:46:44 +08:00
许杰友 Jieyou Xu (Joe) dac4ffd5c0 Rollup merge of #137723 - onur-ozkan:cfg-ver-description, r=pietroalbini,weihanglo
Make `rust.description` more general-purpose and pass `CFG_VER_DESCRIPTION`

Moves the `description` field from the `rust` section to the `build` section as it can be useful for tools and is not specific to rustc. Also passes this value to tool builds through the `CFG_VER_DESCRIPTION` env.

Motivated from https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Propagate.20rust.2Edescription.20to.20tools.20in.20dist.20build
2025-03-05 21:46:43 +08:00
许杰友 Jieyou Xu (Joe) 4aa61e77ff Rollup merge of #137679 - bjorn3:coretests_improvements, r=jieyouxu,onur-ozkan
Various coretests improvements

The first commit is not yet strictly necessary as directly testing libcore works though useless work, but will be necessary once https://github.com/rust-lang/rust/pull/136642 migrates the liballoc tests into a separate package. The second commit fixes https://github.com/rust-lang/rust/issues/137478 and ensures that coretests actually gets tested on all CI job. The third commit fixes an error that didn't get caught because coretests doesn't run on the wasm32 CI job.
2025-03-05 21:46:42 +08:00
许杰友 Jieyou Xu (Joe) ab29c707ba Rollup merge of #136977 - Kobzol:citool-datadog, r=marcoieni
Upload Datadog metrics with citool

This removes one Python script and also the installation of the `datadog-ci` JavaScript package, along with the corresponding package and lock file.

r? `@ghost`
2025-03-05 21:46:37 +08:00
许杰友 Jieyou Xu (Joe) 9aaf46ea23 Rollup merge of #136865 - jieyouxu:long-type-path-compare-mode, r=lqd
Perform deeper compiletest path normalization for `$TEST_BUILD_DIR` to account for compare-mode/debugger cases, and normalize long type file filename hashes

Fixes #136510.

### Summary

- Whereas previously `$TEST_BUILD_DIR` is a normalization of `/path/to/build/test/<test_suite_name>/`, we now more deeply normalize. `$TEST_BUILD_DIR` now becomes a normalization of `/path/to/build/test/<test_suite_name>/<subdirs>/$name.$revision.$compare_mode.$debugger/` to normalize away path name differences when `--compare-mode` and/or `--debugger` are specified.
- We also centralize the normalization of long type name hashes

cf. https://github.com/rust-lang/rust/pull/136328#discussion_r1936760908.

### Review advice

- Best reviewed commit-by-commit.
- Split into 3 commits:
    - **Commit 1**: compiletest changes to have `$TEST_BUILD_DIR` more deeply normalize.
    - **Commit 2**: remove per-test hacks for long type path hash normalizations, and rebless tests *specifically* affected by that.
    - **Commit 3**: rebless other tests that were changed as a side-effect of deeper `$TEST_BUILD_DIR` normalizations.

**Commit 2** is created via first finding tests that try to perform long type file hash normalizations on an ad hoc, per-test basis:

```
rg --no-ignore -l --no-ignore -F -e "long-type" tests/ui/**/*.rs
```

<details>
<summary>Tests with ad hoc long-type hash normalizations</summary>

```
tests/ui/type_length_limit.rs
tests/ui/traits/on_unimplemented_long_types.rs
tests/ui/regions/issue-102374.rs
tests/ui/recursion/recursion.rs
tests/ui/recursion/issue-83150.rs
tests/ui/recursion/issue-23122-2.rs
tests/ui/methods/inherent-bound-in-probe.rs
tests/ui/issues/issue-67552.rs
tests/ui/issues/issue-37311-type-length-limit/issue-37311.rs
tests/ui/issues/issue-20413.rs
tests/ui/issues/issue-8727.rs
tests/ui/infinite/infinite-instantiation.rs
tests/ui/infinite/infinite-instantiation-struct-tail-ice-114484.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-1.rs
tests/ui/higher-ranked/trait-bounds/hrtb-doesnt-borrow-self-2.rs
tests/ui/higher-ranked/trait-bounds/hang-on-deeply-nested-dyn.rs
tests/ui/error-codes/E0275.rs
tests/ui/diagnostic-width/secondary-label-with-long-type.rs
tests/ui/diagnostic-width/long-e0277.rs
tests/ui/diagnostic-width/non-copy-type-moved.rs
tests/ui/diagnostic-width/long-E0308.rs
tests/ui/diagnostic-width/E0271.rs
tests/ui/diagnostic-width/binop.rs
```
</details>

These ad hoc normalizations were removed, and they are reblessed.

r? `````@lqd`````
2025-03-05 21:46:35 +08:00
许杰友 Jieyou Xu (Joe) 65da1ffe41 Rollup merge of #136581 - jieyouxu:makefile-be-gone, r=Kobzol
Retire the legacy `Makefile`-based `run-make` test infra

The final piece of [porting run-make tests to use Rust #121876](https://github.com/rust-lang/rust/issues/121876).
Closes #121876.
Closes #40713.
Closes #81791 (no longer using `wc`).
Closes #56475 (no longer a problem in current form of that test; we don't ignore the test on `aarch64-unknown-linux-gnu`).

### Summary

This PR removes the legacy `Makefile`-based `run-make` test infra which has served us well over the years. The legacy infra is no longer needed since we ported all of `Makefile`-based `run-make` tests to the new `rmake.rs` infra.

Additionally, this PR:

- Removes `tests/run-make/tools.mk` since no more `Makefile`-based tests remain.
- Updates `tests/run-make/README.md` and rustc-dev-guide docs to remove mention about `Makefile`-based `run-make` tests
- Update test suite requirements in rustc-dev-guide on Windows to no longer need MSYS2 (they should also now run successfully on native Windows MSVC).
- Update `triagebot.toml` to stop backlinking to #121876.

**Thanks to everyone who helped in this effort to modernize the `run-make` test infra and test suite!**

r? bootstrap
2025-03-05 21:46:32 +08:00
许杰友 Jieyou Xu (Joe) 9b8accbeb6 Rollup merge of #134063 - tgross35:dec2flt-refactoring, r=Noratrieb
dec2flt: Clean up float parsing modules

This is the first portion of my work adding support for parsing and printing `f16`. Changes in `float.rs` replace the magic constants with expressions and add some use of generics to better support the new float types. Everything else is related to documentation or naming; there are no functional changes in this PR.

This can be reviewed by commit.
2025-03-05 21:46:31 +08:00
onur-ozkan 64dd484f48 bless bootstrap tests
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 14:28:05 +03:00
Jakub Beránek 3dbf3dc1e1 Increase the max. custom try jobs requested to 20 2025-03-05 12:27:10 +01:00
Jakub Beránek 6c2c5dcb6e Apply review remarks 2025-03-05 12:13:29 +01:00
Jakub Beránek 6166f3d212 Remove Python metric upload script and package.json 2025-03-05 12:13:29 +01:00
Jakub Beránek 6130b3da18 Upload Datadog average CPU usage metric in citool 2025-03-05 12:13:29 +01:00
Jakub Beránek 26e42de17c Make citool compilation faster 2025-03-05 12:11:15 +01:00
onur-ozkan 0acc0c874b Revert "avoid compiler_for for dist tools and force the current compiler"
This reverts commit 50f84129e6.
2025-03-05 13:29:51 +03:00
onur-ozkan 9e4b3d6bc4 handle forced compiler in get_tool_rustc_compiler
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 13:29:41 +03:00
onur-ozkan b885407c0c add new field forced_compiler to Compiler
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 13:28:32 +03:00
onur-ozkan 056ec72efe trim channel value in get_closest_merge_commit
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 12:05:19 +03:00
bors 4559163ccb Auto merge of #138031 - workingjubilee:rollup-5bsotpz, r=workingjubilee
Rollup of 15 pull requests

Successful merges:

 - #137829 (Stabilize [T]::split_off... methods)
 - #137850 (Stabilize `box_uninit_write`)
 - #137912 (Do not recover missing lifetime with random in-scope lifetime)
 - #137913 (Allow struct field default values to reference struct's generics)
 - #137923 (Simplify `<Postorder as Iterator>::size_hint`)
 - #137949 (Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK)
 - #137963 (Add ``dyn`` keyword to `E0373` examples)
 - #137975 (Remove unused `PpMode::needs_hir`)
 - #137981 (rustdoc search: increase strictness of typechecking)
 - #137986 (Fix some typos)
 - #137991 (Add `avr-none` to SUMMARY.md and platform-support.md)
 - #137993 (Remove obsolete comment from DeduceReadOnly)
 - #137996 (Revert "compiler/rustc_data_structures/src/sync/worker_local.rs: delete "unsafe impl Sync"")
 - #138019 (Pretty-print `#[deprecated]` attribute in HIR.)
 - #138026 (Make CrateItem::body() function return an option)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-03-05 06:59:11 +00:00
onur-ozkan 9646c2f642 replace rust.description with build.description
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 08:39:56 +03:00
onur-ozkan 853e34dbe1 pass CFG_VER_DESCRIPTION to tool builds
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 08:39:53 +03:00
onur-ozkan 92956e8cd6 add change-entry
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 08:39:42 +03:00
onur-ozkan 31e612bd7b move rust.description to build.description
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 08:38:40 +03:00
Jubilee 349f6af4e9 Rollup merge of #137991 - tgross35:avr-book-links, r=jieyouxu
Add `avr-none` to SUMMARY.md and platform-support.md

This was missed this in the implementation PR, so update the links here.
2025-03-04 19:37:05 -08:00
Jubilee 131867b68b Rollup merge of #137986 - fuyangpengqi:master, r=Amanieu
Fix some typos

Fix some typos
2025-03-04 19:37:04 -08:00
Jubilee c32124fac0 Rollup merge of #137981 - lolbinarycat:rustdoc-js-less-expect-error, r=notriddle
rustdoc search: increase strictness of typechecking

r? `@notriddle`

The signature of `makePrimitiveElement` is now more accurate.

I believe the intent of the code is that `name` cannot be null if `bindingName.name` is null, and I believe typescript is expressive enough to encode this, but I'm not quite sure how, or if this would be desirable.

I'm also introducing mapped types into `rustdoc.d.ts`, but I think it's worth it in order to avoid keeping two interfaces in sync.

I may add more commits onto this to remove more ``@ts-expect-error`` instances.
2025-03-04 19:37:04 -08:00
Jubilee 7ba7cc835e Rollup merge of #137947 - Kobzol:fix-rfl, r=marcoieni
Do not install rustup on Rust for Linux job

Trying to fix the RfL job after the recent rustup update.

r? ``@ghost``

try-job: x86_64-rust-for-linux
2025-03-04 14:50:42 -08:00
Jubilee dcc85e3e1a Rollup merge of #137722 - yotamofek:pr/rustdoc/edition-2024, r=notriddle
`librustdoc`: 2024 edition! 🎊

Like #137333 , but for rustdoc 😁
2025-03-04 14:50:42 -08:00
Jubilee df2a263ec2 Rollup merge of #137667 - Kobzol:gcc-dist-build, r=onur-ozkan
Add `dist::Gcc` build step

This PR adds a `dist:Gcc` bootstrap step to distribute a prebuilt `libgccjit.so` from CI on x64 Linux.

With primed sccache, the build takes ~4 minutes on CI, and produces a 50 MiB archive.

I want to land this before adding something akin to `[gcc] download-ci-gcc = true`, to already have the artifacts available on CI, to make it easier to setup the download merge-base logic.

r? ``@ghost``
2025-03-04 14:50:41 -08:00
Jubilee e5ac9f89eb Rollup merge of #137373 - Kobzol:tool-stage0-improve, r=jieyouxu
Compile run-make-support and run-make tests with the bootstrap compiler

It does not seem necessary to have to recompile run-make-support on changes to the local compiler/stdlib. This PR simplifies the implementation of a few tools, then switches rms to stage0 and also makes the handling of environment variables in run-make tests simpler.

Best reviewed commit-by-commit. I can split it into multiple PRs if you want.

Also tested that `COMPILETEST_FORCE_STAGE0=1 ./x test tests/run-make --stage 0` still works. Incredibly, it looks like it even passes more tests than on `master` 😆

r? ``@jieyouxu``
2025-03-04 14:50:39 -08:00
Jubilee ee1d01939f Rollup merge of #137077 - Kobzol:citool-test-metrics, r=marcoieni
Postprocess bootstrap metrics into GitHub job summary

This PR adds a postprocessing step to each CI job that writes the build and test step bootstrap metrics into [GitHub job summary](https://github.blog/news-insights/product-news/supercharging-github-actions-with-job-summaries/). You can see an example result for dist and test jobs [here](https://github.com/rust-lang-ci/rust/actions/runs/13619495480).

r? ``@ghost``

try-job: dist-x86_64-illumos
try-job: x86_64-gnu
2025-03-04 14:50:39 -08:00
binarycat 892016766a search.js: remove incorrect outdated comment 2025-03-04 15:54:48 -06:00
binarycat a9a52ddc04 search.js: give RawSearchIndexCrate.a an index signature 2025-03-04 15:53:35 -06:00
binarycat 5f39026540 search.js: allow empty result arrays 2025-03-04 15:26:46 -06:00
binarycat 374de12dad search.js: give buildIndex a proper return type
some of the fields of rustdoc.Row were confusing null and undefined.
2025-03-04 15:19:20 -06:00
binarycat c05f6bf98d search.js: give local where a type 2025-03-04 14:31:35 -06:00
binarycat 4f6772d2ac give local mgens a type 2025-03-04 14:28:45 -06:00
binarycat 9581f1935b search.js: give pathSplitter a type signature 2025-03-04 14:27:09 -06:00
binarycat 78b92f08f9 search.js: second argument of convertNameToId is optional 2025-03-04 13:58:35 -06:00
binarycat d130e25455 search.js: local variable extra is an array, annotate it as such. 2025-03-04 13:55:28 -06:00
binarycat 32ebe8ed04 don't use double quotes 2025-03-04 13:37:56 -06:00
binarycat 7635f2bfc6 fix whitespace 2025-03-04 11:03:55 -06:00
bors f9e0239a7b Auto merge of #135695 - Noratrieb:elf-raw-dylib, r=bjorn3
Support raw-dylib link kind on ELF

raw-dylib is a link kind that allows rustc to link against a library without having any library files present.
This currently only exists on Windows. rustc will take all the symbols from raw-dylib link blocks and put them in an import library, where they can then be resolved by the linker.

While import libraries don't exist on ELF, it would still be convenient to have this same functionality. Not having the libraries present at build-time can be convenient for several reasons, especially cross-compilation. With raw-dylib, code linking against a library can be cross-compiled without needing to have these libraries available on the build machine. If the libc crate makes use of this, it would allow cross-compilation without having any libc available on the build machine. This is not yet possible with this implementation, at least against libc's like glibc that use symbol versioning. The raw-dylib kind could be extended with support for symbol versioning in the future.

This implementation is very experimental and I have not tested it very well. I have tested it for a toy example and the lz4-sys crate, where it was able to successfully link a binary despite not having a corresponding library at build-time.

I was inspired by Björn's comments in https://internals.rust-lang.org/t/bundle-zig-cc-in-rustup-by-default/22096/27
Tracking issue: #135694

r? bjorn3

try-job: aarch64-apple
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: test-various
2025-03-04 15:39:44 +00:00
Jakub Beránek 7b53ac7ee6 Record bootstrap step durations into GitHub summary in citool 2025-03-04 12:31:53 +01:00
Jakub Beránek ead58ea6f8 Move BuildStep and metric logging into build_helper 2025-03-04 12:30:41 +01:00
Jakub Beránek 2e5ab4e6a0 Store bootstrap command-line into metrics 2025-03-04 12:30:41 +01:00