Commit graph

158453 commits

Author SHA1 Message Date
许杰友 Jieyou Xu (Joe)
ead78bb243 run-make-support: add set_aux_fd helper
Co-authored-by: Noa <coolreader18@gmail.com>
Co-authored-by: Oneirical <manchot@videotron.ca>
2025-01-22 12:26:14 +08:00
bors
c234b839d1 Auto merge of #135848 - matthiaskrgr:rollup-sftciqm, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #132232 (CI: build FreeBSD artifacts on FreeBSD 13.4)
 - #135706 (Move `supertrait_def_ids` into the elaborate module like all other fns)
 - #135750 (Add an example of using `carrying_mul_add` to write wider multiplication)
 - #135793 (Ignore `mermaid.min.js`)
 - #135810 (Add Kobzol on vacation)
 - #135821 (fix OsString::from_encoded_bytes_unchecked description)
 - #135824 (tests: delete `cat-and-grep-sanity-check`)
 - #135833 (Add fixme and test for issue #135289)

Failed merges:

 - #135816 (Use `structurally_normalize` instead of manual `normalizes-to` goals in alias relate errors)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-22 01:13:23 +00:00
Matthias Krüger
60cb6c4044
Rollup merge of #135824 - jieyouxu:delete-bintools-check, r=Noratrieb
tests: delete `cat-and-grep-sanity-check`

Part of #121876.

All remaining `Makefile`s have open PRs that do not rely on platform `cat` or `grep` or the `cat-and-grep` script.
2025-01-21 23:30:22 +01:00
Matthias Krüger
4af3ff8cd1
Rollup merge of #135706 - compiler-errors:elaborate, r=lcnr
Move `supertrait_def_ids` into the elaborate module like all other fns

It's strange that this is the only elaborate-like fn on tcx.

r? lcnr
2025-01-21 23:30:18 +01:00
Matthias Krüger
ea594c692b
Rollup merge of #132232 - asomers:fbsd-13.4, r=Mark-Simulacrum
CI: build FreeBSD artifacts on FreeBSD 13.4

13.2 is EoL, and 13.3 will be EoL too in about 2 months.  Plus, both suffer from a bug in LLVM's libunwind.  It causes a segfault inside of std::backtrace::Backtrace::capture().

Fixes #132185

cc ``````@ehuss`````` .  before you can do the trybuild, you'll also have to download new FreeBSD 13.4 base.txz images and place them in https://ci-mirrors.rust-lang.org/rustc , then update this PR with the correct file names.

try-job: dist-x86_64-freebsd
try-job: dist-various-2
2025-01-21 23:30:17 +01:00
bors
a24bdc60ce Auto merge of #135487 - klensy:windows-0.59, r=Mark-Simulacrum
bump compiler and tools to windows 0.59, bootstrap to 0.57

This bumps compiler and tools to windows 0.59 (temporary dupes version, as `sysinfo` still depend on <= 0.57).
Bootstrap bumps only to 0.57 (the same sysinfo dep).

This additionally resolves my comment https://github.com/rust-lang/rust/pull/130874#issuecomment-2393562071

Will work on it in follow up pr: There still some sus imports for `rustc_driver.dll` like ws2_32 or RoOriginateErrorW, but i will look at them later.
2025-01-21 22:29:46 +00:00
bors
ed43cbcb88 Auto merge of #134299 - RalfJung:remove-start, r=compiler-errors
remove support for the (unstable) #[start] attribute

As explained by `@Noratrieb:`
`#[start]` should be deleted. It's nothing but an accidentally leaked implementation detail that's a not very useful mix between "portable" entrypoint logic and bad abstraction.

I think the way the stable user-facing entrypoint should work (and works today on stable) is pretty simple:
- `std`-using cross-platform programs should use `fn main()`. the compiler, together with `std`, will then ensure that code ends up at `main` (by having a platform-specific entrypoint that gets directed through `lang_start` in `std` to `main` - but that's just an implementation detail)
- `no_std` platform-specific programs should use `#![no_main]` and define their own platform-specific entrypoint symbol with `#[no_mangle]`, like `main`, `_start`, `WinMain` or `my_embedded_platform_wants_to_start_here`. most of them only support a single platform anyways, and need cfg for the different platform's ways of passing arguments or other things *anyways*

`#[start]` is in a super weird position of being neither of those two. It tries to pretend that it's cross-platform, but its signature is  a total lie. Those arguments are just stubbed out to zero on ~~Windows~~ wasm, for example. It also only handles the platform-specific entrypoints for a few platforms that are supported by `std`, like Windows or Unix-likes. `my_embedded_platform_wants_to_start_here` can't use it, and neither could a libc-less Linux program.
So we have an attribute that only works in some cases anyways, that has a signature that's a total lie (and a signature that, as I might want to add, has changed recently, and that I definitely would not be comfortable giving *any* stability guarantees on), and where there's a pretty easy way to get things working without it in the first place.

Note that this feature has **not** been RFCed in the first place.

*This comment was posted [in May](https://github.com/rust-lang/rust/issues/29633#issuecomment-2088596042) and so far nobody spoke up in that issue with a usecase that would require keeping the attribute.*

Closes https://github.com/rust-lang/rust/issues/29633

try-job: x86_64-gnu-nopt
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: test-various
2025-01-21 19:46:20 +00:00
Michael Goulet
45929a8f46 Move supertrait_def_ids into the elaborate module like all other fns 2025-01-21 17:36:57 +00:00
Ralf Jung
56c90dc31e remove support for the #[start] attribute 2025-01-21 06:59:15 -07:00
klensy
6c5f084c77 tidy 2025-01-21 16:48:44 +03:00
klensy
5619398f40 bump bootsrap windows to 0.57 2025-01-21 16:48:44 +03:00
klensy
84ce2e129a bumpt compiler and tools to windows 0.59 2025-01-21 16:48:44 +03:00
许杰友 Jieyou Xu (Joe)
c45e97c549 tests: delete cat-and-grep-sanity-check
All remaining `Makefile`s have open PRs that do not rely on platform
`cat` or `grep`.
2025-01-21 21:37:14 +08:00
bors
ebbe63891f Auto merge of #135632 - marcoieni:split-x86_64-msvc-2025, r=Kobzol
CI: split x86_64-msvc job using windows 2025

try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: dist-x86_64-msvc
2025-01-21 06:58:11 +00:00
bors
a42d5ecf34 Auto merge of #134286 - Urgau:unreach_pub-std, r=ibraheemdev
Enable `unreachable_pub` lint in core

This PR enables the [`unreachable_pub`](https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html#unreachable-pub) as warn in `core`, `rtstartup` and `panic_unwind`.

The motivation is similar to the compiler [MCP: Enable deny(unreachable_pub) on `rustc_*` crates](https://github.com/rust-lang/compiler-team/issues/773#issue-2467219005) :

> "Where is this thing used?" is a question I ask all the time when reading unfamiliar code. Because of this, I generally find it annoying when things are marked with a more permissive visibility than necessary. "This thing marked pub, which other crates is it used in? Oh, it's not used in any other crates."

Another motivation is to help to lint by utilizing it in-tree and seeing it's limitation in more complex scenarios.

The diff was mostly generated with `./x.py fix --stage 1 library/core/ -- --broken-code`, as well as manual edits for code in macros, generated code and other targets.

r? libs
2025-01-20 23:34:04 +00:00
Matthias Krüger
b0eadb1a37
Rollup merge of #135775 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? ``@ghost``
2025-01-20 20:58:37 +01:00
Matthias Krüger
0d5b8138bb
Rollup merge of #135333 - vayunbiyani:test-environment, r=RalfJung
Partial progress on #132735: Replace extern "rust-intrinsic" with #[rustc_intrinsic] across the codebase

Part of #132735: Replace `extern "rust-intrinsic"` with `#[rustc_intrinsic]` macro

- Updated all instances of `extern "rust-intrinsic"` to use the `#[rustc_intrinsic]` macro.
- Skipped `.md` files and test files to avoid unnecessary changes.
2025-01-20 20:58:35 +01:00
Urgau
8e61502484 core: add #![warn(unreachable_pub)] 2025-01-20 18:35:32 +01:00
vayunbiyani
c79fc90e9a Updated several files to use rust intrinsic macros instead of the legacy extern "rust-intrinsic" blocks 2025-01-20 09:15:23 -05:00
Lukas Wirth
1eb9d15e42
Merge pull request #18967 from Veykril/push-pwonkmwqmmol
Properly record meaningful imports as re-exports in symbol index
2025-01-20 13:46:52 +00:00
Lukas Wirth
fe034eddc2
Merge pull request #18934 from 1hakusai1/goto_definition_from_into
feat: Add the ability to jump from `into` to `from` definitions
2025-01-20 13:46:47 +00:00
Lukas Wirth
5770977d72
Merge pull request #18982 from Veykril/push-lstmvzsowxyt
Extract variable assist triggers less eagerly
2025-01-20 13:45:26 +00:00
许杰友 Jieyou Xu (Joe)
a41d652d10
Rollup merge of #135658 - Kobzol:src-tarball-remove-gcc, r=jieyouxu
Do not include GCC source code in source tarballs

The licensing story is unclear, it makes the archive much larger, and we should not need it for building anything in the tarballs (yet).

```
Before:
121s building the archive
1.3 GiB gzipped size
5.7 GiB extracted size
402519 extracted files

After:
64s building the archive
961 MiB gzipped size
4.5 GiB extracted size
257719 extracfed files
```

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

r? `@ehuss`
2025-01-20 21:45:05 +08:00
许杰友 Jieyou Xu (Joe)
bdd88ddd30
Rollup merge of #135433 - tanvincible:patch-1, r=onur-ozkan
Add Profile Override for Non-Git Sources

## PR description

- Fixes #135358

This PR introduces the following updates to

1. `bootstrap.py`:
    - If the `profile` is `None` and the source is non-git, the `profile` is automatically overridden to `"dist"`.
    - Ensures that options like `download-ci-llvm` and `download-rustc` are not used with non-git sources. An exception is raised if these options are present in the configuration when the source is non-git.

2. `bootstrap_test.py`
   - Added unit tests to verify both the profile override mechanism and the assertion for restricted options.
These tests ensure the correct behavior for non-git sources and the handling of `if-unchanged` options.

r? `@onur-ozkan`
`@rustbot` T-bootstrap
2025-01-20 21:45:04 +08:00
Lukas Wirth
2233c31531
Merge pull request #18972 from osiewicz/drop-outgoing-messages-on-background-thread
lsp-server: Drop outgoing messages on background thread
2025-01-20 13:39:29 +00:00
Lukas Wirth
64d4181a3c
Merge pull request #18976 from ChayimFriedman2/non-module-generic-args
fix: Fix a bug where enum variants were not considered properly in type ns resolution
2025-01-20 13:35:03 +00:00
Lukas Wirth
4193abc3fe Fix import search not discarding rawness 2025-01-20 14:29:11 +01:00
Lukas Wirth
7ddeabaa74 Less allocs 2025-01-20 14:29:11 +01:00
Lukas Wirth
dbf7ccc889 Preserve impl assoc names in ImplData 2025-01-20 14:29:11 +01:00
Lukas Wirth
70e93ed898 Vec -> Box<[_]> 2025-01-20 14:29:11 +01:00
Lukas Wirth
241fd2ff4d Properly record meaningful imports as re-exports in symbol index 2025-01-20 14:29:11 +01:00
1hakusai1
f7096db910 Add a test case 2025-01-20 21:22:58 +09:00
1hakusai1
55aee5470b Use Semantics::resolve_method_call_as_callable to find implementation 2025-01-20 21:17:48 +09:00
Laurențiu Nicola
618b913663
Merge pull request #18981 from Fabian-Gruenbichler/proc-macro-srv-portability
proc-macro-srv: make usage of RTLD_DEEPBIND portable
2025-01-20 09:35:11 +00:00
Fabian Grünbichler
5f4f6fb961 proc-macro-srv: make usage of RTLD_DEEPBIND portable
the constant is wrong on some platforms (e.g., on mips64el it's 0x10, and 0x8
is RTLD_NOLOAD which makes all this functionality broken), the libc crate takes
care of those differences for us.

fallback to not setting the flag in non-glibc environments - some of them might
have support for it using a different value that we don't know about, and some
of them lack it entirely.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2025-01-20 10:19:24 +01:00
Laurențiu Nicola
3af5c080e6 Bump rustc crates 2025-01-20 11:12:56 +02:00
Laurențiu Nicola
4cf9f491aa Merge from rust-lang/rust 2025-01-20 11:09:36 +02:00
Laurențiu Nicola
b81474b722 Preparing for merge from rust-lang/rust 2025-01-20 11:09:18 +02:00
Tanvi Pooranmal Meena
7d806171d0 Add logic to override profile for non git sources 2025-01-20 11:07:32 +05:30
许杰友 Jieyou Xu (Joe)
9cd0e8efdc
Rollup merge of #135729 - Noratrieb:compiler-profile-debug-assert, r=lqd
Add debug assertions to compiler profile

Working on the compiler without debug assertions is not a very productive way to work on the compiler.
2025-01-20 12:37:55 +08:00
许杰友 Jieyou Xu (Joe)
afdf3aa457
Rollup merge of #135722 - onur-ozkan:handle-tarball-ci-commit, r=jieyouxu
make it possible to use ci-rustc on tarball sources

Previously, bootstrap was using `Config::last_modified_commit` unconditionally to figure the commit to download precompiled rustc artifact from CI, which was leading builds to fail on tarball sources as `Config::last_modified_commit` requires `git` to be present in the project source. This change makes bootstrap to call `Config::last_modified_commit` only when it's running on git-managed source and read `git-commit-hash` file otherwise.
2025-01-20 12:37:54 +08:00
bors
9a1d156f38 Auto merge of #135742 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2025-01-19 20:46:10 +00:00
Ralf Jung
544695506c fix location of pipe module 2025-01-19 10:05:51 -07:00
Noratrieb
2e69bd2ce9 Add debug assertions to compiler profile
Working on the compiler without debug assertions is not a very
productive way to work on the compiler.
2025-01-19 16:01:54 +01:00
bors
39dc268459 Auto merge of #135714 - rust-lang:cargo_update, r=clubby789
Weekly `cargo update`

Automation to keep dependencies in `Cargo.lock` current.

The following is the output from `cargo update`:

```txt

compiler & tools dependencies:
     Locking 13 packages to latest compatible versions
    Updating anstyle-wincon v3.0.6 -> v3.0.7
    Updating bitflags v2.7.0 -> v2.8.0
    Updating chrono-tz v0.10.0 -> v0.10.1
    Updating js-sys v0.3.76 -> v0.3.77
    Updating log v0.4.22 -> v0.4.25
    Updating miniz_oxide v0.8.2 -> v0.8.3
    Updating uuid v1.11.1 -> v1.12.0
    Updating valuable v0.1.0 -> v0.1.1
    Updating wasm-bindgen v0.2.99 -> v0.2.100
    Updating wasm-bindgen-backend v0.2.99 -> v0.2.100
    Updating wasm-bindgen-macro v0.2.99 -> v0.2.100
    Updating wasm-bindgen-macro-support v0.2.99 -> v0.2.100
    Updating wasm-bindgen-shared v0.2.99 -> v0.2.100
note: pass `--verbose` to see 41 unchanged dependencies behind latest

library dependencies:
     Locking 1 package to latest compatible version
    Updating miniz_oxide v0.8.2 -> v0.8.3
note: pass `--verbose` to see 4 unchanged dependencies behind latest

rustbook dependencies:
     Locking 12 packages to latest compatible versions
    Updating anstyle-wincon v3.0.6 -> v3.0.7
    Updating bitflags v2.7.0 -> v2.8.0
    Updating cc v1.2.8 -> v1.2.10
    Updating js-sys v0.3.76 -> v0.3.77
    Updating log v0.4.22 -> v0.4.25
    Updating miniz_oxide v0.8.2 -> v0.8.3
      Adding rustversion v1.0.19
    Updating wasm-bindgen v0.2.99 -> v0.2.100
    Updating wasm-bindgen-backend v0.2.99 -> v0.2.100
    Updating wasm-bindgen-macro v0.2.99 -> v0.2.100
    Updating wasm-bindgen-macro-support v0.2.99 -> v0.2.100
    Updating wasm-bindgen-shared v0.2.99 -> v0.2.100
```
2025-01-19 14:19:27 +00:00
MarcoIeni
242b0e32b6
CI: split x86_64-msvc job using windows 2025 2025-01-19 12:30:12 +01:00
Guillaume Gomez
78d9a52a1d
Rollup merge of #135723 - Noratrieb:error-pattern-my-a-, r=jieyouxu
Fix dev guide docs for error-pattern

I know it would have made more sense to make this PR to the dev guide repo but I had already made the fix before I realized that.

r? `@jieyouxu`
2025-01-19 11:48:17 +01:00
Guillaume Gomez
20443dbe1b Remove unused item-row CSS class 2025-01-19 11:47:32 +01:00
Noratrieb
f1b83fe5d9 Fix dev guide docs for error-pattern
I know it would have made more sense to make this PR to the dev guide
repo but I had already made the fix before I realized that.
2025-01-19 11:36:41 +01:00
onur-ozkan
903cddb392 make it possible to use ci-rustc on tarball sources
Previously, bootstrap was using `Config::last_modified_commit` unconditionally to figure
the commit has to download precompiled rustc artifact from CI, which was leading builds to
fail on tarball sources as `Config::last_modified_commit` requires `git` to be present in the project
source. This change makes bootstrap to call `Config::last_modified_commit` only when it's running on
git-managed source and read `git-commit-hash` file otherwise.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-19 12:57:39 +03:00