about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-11-04Don't try to auto-publish text-editLaurențiu Nicola-1/+0
2024-11-04Merge pull request #18475 from Veykril/push-zkvkpxttozupLukas Wirth-174/+143
Support new #[rustc_intrinsic] attribute and fallback bodies
2024-11-04Support new #[rustc_intrinsic] attribute and fallback bodiesLukas Wirth-174/+143
2024-11-04Merge pull request #18473 from Veykril/push-xnlzukoqttvzLukas Wirth-15/+45
Render extern blocks in `file_structure`
2024-11-04Render extern blocks in file_structureLukas Wirth-15/+45
2024-11-04Merge pull request #18472 from lnicola/reinterpret-function-casingLaurențiu Nicola-1/+1
minor: Fix feature name casing
2024-11-04Fix feature name casingLaurențiu Nicola-1/+1
2024-11-03Merge pull request #18470 from Veykril/push-rxmtkvpulotnLukas Wirth-86/+114
Allow interpreting consts and statics with interpret function command
2024-11-03Allow interpreting consts and statics with interpret function commandLukas Wirth-86/+114
2024-11-03Merge pull request #18469 from Veykril/push-zwnywqmvtutsLukas Wirth-28/+87
feat: Show `static` values on hover
2024-11-02Merge pull request #18463 from benluiwj/fix/proc-macro-server-msg-improvementLaurențiu Nicola-2/+2
Improve error message for too new proc-macro server
2024-11-02Improve error message for too new proc-macro serverbenluiwj-2/+2
2024-11-02Allow static initializers to be const evaluatedLukas Wirth-28/+87
2024-11-01Merge pull request #18457 from lnicola/sync-from-rustLaurențiu Nicola-6525/+8788
minor: Sync from downstream
2024-11-01Format codeLaurențiu Nicola-7/+9
2024-11-01Bump rustc cratesLaurențiu Nicola-18/+17
2024-11-01Merge from rust-lang/rustLaurențiu Nicola-6503/+8765
2024-11-01Preparing for merge from rust-lang/rustLaurențiu Nicola-1/+1
2024-11-01Auto merge of #132402 - bjorn3:remove_snap_decompression, r=jieyouxu,Veykrilbors-58/+8
Remove support for decompressing dylib metadata We haven't been compressing dylib metadata for a while now. Removing decompression support will regress error messages about an incompatible rustc version being used, but dylibs are pretty rare anyway. Fixes https://github.com/rust-lang/rust-analyzer/issues/18451
2024-11-01Auto merge of #131634 - davidlattimore:lld-protected, r=Kobzolbors-0/+8
Use protected visibility when building rustc with LLD https://github.com/rust-lang/compiler-team/issues/782 I wasn't sure about having two commits in a PR, but I figured, at least initially it might make sense to discuss these commits together. Happy to squash, or move the second commit to a separate PR. I contemplated trying to enable protected visibility for more cases when LLD will be used other than just `-Zlinker-features=+lld`, but that would be more a complex change that probably still wouldn't cover all cases when LLD is used, so went with the simplest option of just checking if the linker-feature is enabled. r? lqd
2024-11-01Auto merge of #132435 - workingjubilee:rollup-3mgogw9, r=workingjubileebors-220/+364
Rollup of 9 pull requests Successful merges: - #131168 (Fix `target_os` for `mipsel-sony-psx`) - #132209 (Fix validation when lowering `?` trait bounds) - #132294 (Bump Fuchsia) - #132357 (Improve missing_abi lint) - #132385 (compiler: Move `rustc_target::spec::abi::Abi` to `rustc_abi::ExternAbi`) - #132403 (continue `TypingMode` refactor) - #132417 (macOS: Document the difference between Clang's `-darwin` and `-macosx` targets) - #132421 (Remove `""` case from RISC-V `llvm_abiname` match statement) - #132422 (llvm: Match new LLVM 128-bit integer alignment on sparc) r? `@ghost` `@rustbot` modify labels: rollup
2024-10-31Rollup merge of #132422 - maurer:sparc-layout, r=durin42Jubilee-6/+11
llvm: Match new LLVM 128-bit integer alignment on sparc LLVM continues to align more 128-bit integers to 128-bits in the data layout rather than relying on the high level language to do it. Update SPARC target files to match and add a backcompat replacement for current LLVMs. See llvm/llvm-project#106951 for details `@rustbot` label: +llvm-main r? `@durin42` (Please wait for the LLVM CI to come back before approving), creating this PR to get it tested there.
2024-10-31Rollup merge of #132421 - beetrees:riscv-abi-no-empty-string, r=workingjubileeJubilee-1/+1
Remove `""` case from RISC-V `llvm_abiname` match statement For RISC-V, `""` isn't the always the same ABI as `"ilp32"`/`"lp64"` (`""` means LLVM will infer the ABI based on the enabled target features), but `create_object_file` currently assumes that it is. Since all RISC-V targets explicitly specify their ABI since #131807, this PR removes `""` from the match arm's pattern (meaning an empty string will now fall through to the `_ => bug!` arm). r? `@workingjubilee`
2024-10-31Rollup merge of #132417 - madsmtm:document-darwin-macos-difference, r=jieyouxuJubilee-0/+5
macOS: Document the difference between Clang's `-darwin` and `-macosx` targets `rustc`'s `*-apple-darwin` targets are badly named (they should've been called `*-apple-macos`), and this causes confusion wrt. the similarly named but somewhat incompatible Clang targets. So let's document the difference to at least make things a _little_ easier on our users. ``@rustbot`` label O-macos A-docs
2024-10-31Rollup merge of #132403 - lcnr:typing-mode, r=compiler-errorsJubilee-105/+155
continue `TypingMode` refactor There are still quite a few places which (indirectly) rely on the `Reveal` of a `ParamEnv`, but we're slowly getting there r? `@compiler-errors`
2024-10-31Rollup merge of #132385 - workingjubilee:move-abi-to-rustc-abi, ↵Jubilee-25/+47
r=jieyouxu,compiler-errors compiler: Move `rustc_target::spec::abi::Abi` to `rustc_abi::ExternAbi` Lift `enum Abi` from its rather odd place in the middle of rustc_target, and make it available again from rustc_abi. You know, the crate where you would expect the enum that describes all the ABIs to be? The platform-neutral ones, at least. This will help further refactoring of how we handle ABIs in the near future[^0]. Rename `Abi` to `ExternAbi` because quite a lot of the compiler overloads the concept of "ABI" enough that the existing name is imprecise and it is often renamed _anyway_. Often this was to avoid conflicts with the *other* type formerly known as `Abi` (now named BackendRepr[^1]), but sometimes it is just for clarity, and this name seems more self-explanatory. It does get reexported, though, using its old name, to reduce the odds of merge-conflicting over the entire tree. All of `ExternAbi`'s friends come along for the ride, which costs adding some optional dependencies to the rustc_abi crate. However, all of this also allows simply moving three crates entirely off rustc_target: - rustc_hir_pretty - rustc_lint_defs - rustc_mir_build This odd selection is mostly to demonstrate a secondary motivation: The majority of the front-end of the compiler should be as target-agnostic as possible, and it is easier to assure this if they simply don't depend on the crate that describes targets. Note that I didn't migrate crates that don't benefit from it in this way yet, and I didn't survey every last crate. [^0]: This is being undertaken as part of https://github.com/rust-lang/rust/issues/119183 [^1]: https://github.com/rust-lang/rust/pull/132246
2024-10-31Rollup merge of #132357 - m-ou-se:explicit-abi, r=compiler-errorsJubilee-19/+17
Improve missing_abi lint This is for the migration lint for https://github.com/rust-lang/rfcs/pull/3722 It is not yet marked as an edition migration lint, because `Edition2027` doesn't exist yet. The lint now includes a machine applicable suggestion: ``` warning: extern declarations without an explicit ABI are deprecated --> src/main.rs:3:1 | 3 | extern fn a() {} | ^^^^^^ help: explicitly specify the C ABI: `extern "C"` | ```
2024-10-31Rollup merge of #132294 - tmandry:bump-fuchsia, r=lqdJubilee-1/+1
Bump Fuchsia r? `@Kobzol` try-job: x86_64-fuchsia https://fxbug.dev/376114512
2024-10-31Rollup merge of #132209 - compiler-errors:modifiers, r=fmeaseJubilee-58/+119
Fix validation when lowering `?` trait bounds Pass the unlowered (`rustc_hir`) polarity to `lower_poly_trait_ref`. This allows us to actually *validate* that generic args are actually valid on `?Trait` paths. This actually regressed in #113671 because that PR changed the behavior where we were inadvertently re-lowering paths as `BoundPolarity::Positive`, which was also coincidentally the only place we were enforcing the generics on `?Trait` paths were correct.
2024-10-31Rollup merge of #131168 - madsmtm:target-info-psx-os, r=davidtwcoJubilee-5/+8
Fix `target_os` for `mipsel-sony-psx` Previously set to `target_os = "none"` and `target_env = "psx"` in [the PR introducing the target](https://github.com/rust-lang/rust/pull/102689/), but although the Playstation 1 is _close_ to a bare metal target in some regards, it's still very much an operating system, so we should instead set `target_os = "psx"`. This also matches the `mipsel-sony-psp` target, which sets `target_os = "psp"`. CC target maintainer ``@ayrtonm.`` If there's any code out there that uses `cfg(target_env = "psx")`, they can use `cfg(any(target_os = "psx", target_env = "psx"))` until they bump their MSRV to a version where this is fully fixed.
2024-10-31Auto merge of #132206 - tgross35:update-builtins, r=wesleywiserbors-4/+5
Update compiler-builtins to 0.1.136 This includes: * The license change https://github.com/rust-lang/compiler-builtins/pull/717 * The `libm` submodule update, which also has a license change https://github.com/rust-lang/libm/pull/317 * Re-enabling `math` on i686 UEFI https://github.com/rust-lang/compiler-builtins/pull/715 Fixes: https://github.com/rust-lang/rust/issues/128533
2024-10-31llvm: Match new LLVM 128-bit integer alignment on sparcMatthew Maurer-6/+11
LLVM continues to align more 128-bit integers to 128-bits in the data layout rather than relying on the high level language to do it. Update SPARC target files to match and add a backcompat replacement for current LLVMs. See llvm/llvm-project#106951 for details
2024-10-31Remove `""` case from RISC-V `llvm_abiname` match statementbeetrees-1/+1
2024-10-31Bump FuchsiaTyler Mandry-1/+1
2024-10-31Document the difference between Clang's `-darwin` and `-macosx` targetsMads Marquart-0/+5
2024-10-31Auto merge of #132356 - jieyouxu:unsound-simplify_aggregate_to_copy, ↵bors-43/+192
r=cjgillot,DianQK Mark `simplify_aggregate_to_copy` mir-opt as unsound Mark the `simplify_aggregate_to_copy` mir-opt added in #128299 as unsound as it seems to miscompile the MCVE reported in https://github.com/rust-lang/rust/issues/132353. The mir-opt can be re-enabled once this case is fixed. ```rs fn pop_min(mut score2head: Vec<Option<usize>>) -> Option<usize> { loop { if let Some(col) = score2head[0] { score2head[0] = None; return Some(col); } } } fn main() { let min = pop_min(vec![Some(1)]); println!("min: {:?}", min); // panic happens here on beta in release mode // but not in debug mode min.unwrap(); } ``` This MCVE is included as a `run-pass` ui regression test in the first commit. I built the ui test with a nightly manually, and can reproduce the behavioral difference with `-C opt-level=0` and `-C opt-level=1`. Locally, this ui test will fail unless it was run on a compiler built with the second commit marking the mir-opt as unsound thus disabling it by default. This PR **partially reverts** commit e7386b3, reversing changes made to 02b1be1. The mir-opt implementation is just marked as unsound but **not** reverted to make reland reviews easier. Test changes are **reverted if they were not pure additions**. Tests added by the original PR received `-Z unsound-mir-opts` compile-flags. cc `@DianQK` `@cjgillot` (PR author and reviewer of #128299)
2024-10-31Merge pull request #18453 from ChayimFriedman2/leading-orLukas Wirth-16/+73
Parse patterns with leading pipe properly in all places
2024-10-31normalization folders, yeet `ParamEnv::reveal`lcnr-24/+31
2024-10-31stop using `ParamEnv::reveal` while handling MIRlcnr-60/+100
2024-10-31Parse patterns with leading pipe properly in all placesChayim Refael Friedman-16/+73
2024-10-31Auto merge of #132401 - matthiaskrgr:rollup-599ieqr, r=matthiaskrgrbors-96/+283
Rollup of 5 pull requests Successful merges: - #130693 (Add `minicore` test auxiliary and support `//@ add-core-stubs` directive in ui/assembly/codegen tests) - #132316 (CI: use free runners for 3 fast windows jobs) - #132354 (Add `lp64e` RISC-V ABI) - #132395 (coverage: Avoid ICE when `coverage_cx` is unexpectedly unavailable) - #132396 (CI: use free runners for x86_64-gnu-tools and x86_64-rust-for-linux) r? `@ghost` `@rustbot` modify labels: rollup
2024-10-31Merge pull request #18447 from ChayimFriedman2/cleanup-tylowerctxLukas Wirth-224/+201
Avoid interior mutability in `TyLoweringContext`
2024-10-31Remove support for compressed dylib metadata from rust-analyzerbjorn3-23/+4
2024-10-31Remove support for decompressing dylib metadatabjorn3-35/+4
We haven't been compressing dylib metadata for a while now. Removing decompression support will regress error messages about an incompatible rustc version being used, but dylibs are pretty rare anyway.
2024-10-31clippy: we've got a `LateContext` use it for `TypingMode`lcnr-1/+1
2024-10-31`ConstCx` stop using `ParamEnv::reveal`lcnr-27/+27
2024-10-31Rollup merge of #132396 - ↵Matthias Krüger-2/+2
MarcoIeni:ci-use-free-runners-for-x86_64-gnu-tools-and-x86_64-rust-for-linux, r=Kobzol CI: use free runners for x86_64-gnu-tools and x86_64-rust-for-linux try-job: x86_64-gnu-tools try-job: x86_64-rust-for-linux
2024-10-31Rollup merge of #132395 - Zalathar:coverage-cx-ice, r=jieyouxuMatthias Krüger-2/+12
coverage: Avoid ICE when `coverage_cx` is unexpectedly unavailable In #132124, `coverage_cx()` was changed to panic if the context was unavailable, under the assumption that it would always be available whenever coverage instrumentation is enabled. However, there have been reports of this change causing ICEs in `polars` CI. I don't yet understand why this is happening, but for now it seems wisest to revert that part of the change, restoring the two early returns that had been replaced with panics.
2024-10-31Rollup merge of #132354 - koute:master, r=workingjubileeMatthias Krüger-2/+4
Add `lp64e` RISC-V ABI This PR adds support for the `lp64e` RISC-V ABI, which is the 64-bit equivalent of the `ilp32e` ABI that is already supported. For reference, this ABI was originally added to LLVM in [this PR](https://reviews.llvm.org/D70401).
2024-10-31Rollup merge of #132316 - MarcoIeni:ci-free-runners-windows, r=Mark-SimulacrumMatthias Krüger-3/+3
CI: use free runners for 3 fast windows jobs try-job: dist-i686-msvc try-job: dist-i686-mingw try-job: dist-x86_64-mingw try-job: dist-x86_64-msvc-alt