about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-11-07Rollup merge of #132741 - zmodem:mips_data_layout, r=nikicJubilee-7/+12
Update mips64 data layout to match LLVM 20 change LLVM changed the data layout in https://github.com/llvm/llvm-project/pull/112084
2024-11-07Rollup merge of #132740 - zmodem:simd_syntax_update, r=durin42Jubilee-3/+3
Update test for LLVM 20's new vector splat syntax that was introduced in https://github.com/llvm/llvm-project/pull/112548
2024-11-07Rollup merge of #132739 - GuillaumeGomez:cleanup-scrape-code, r=notriddleJubilee-11/+22
Fix `librustdoc/scrape_examples.rs` formatting Still working on the intra-doc link feature. This time I encountered this file and it bothered me a bit so fixing formatting. :3 r? ````@notriddle````
2024-11-07Rollup merge of #132737 - clubby789:lock-no-pid, r=jieyouxuJubilee-2/+6
bootstrap: Print better message if lock pid isn't available Not actually sure why, but sometimes the PID isn't available so we print ``` WARNING: build directory locked by process , waiting for lock ``` This makes the message a bit nicer in this case
2024-11-07Rollup merge of #132696 - ↵Jubilee-2/+20
fortanix:raoul/rte-235-fix_fmodl_missing_symbol_issue, r=tgross35 Compile `test_num_f128` conditionally on `reliable_f128_math` config With #132434 merged, our internal SGX CI started failing with: ``` 05:27:34 = note: rust-lld: error: undefined symbol: fmodl 05:27:34 >>> referenced by arith.rs:617 (core/src/ops/arith.rs:617) 05:27:34 >>> /home/jenkins/workspace/rust-sgx-ci/rust/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-fortanix-unknown-sgx/release/deps/std-5d5f11eb008c9091.std.d8141acc61ab7ac8-cgu.10.rcgu.o:(std::num::test_num::h7dd9449f6c01fde8) 05:27:34 >>> did you mean: fmodf 05:27:34 >>> defined in: /home/jenkins/workspace/rust-sgx-ci/rust/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-fortanix-unknown-sgx/release/deps/libcompiler_builtins-0376f439a2ebf305.rlib(compiler_builtins-0376f439a2ebf305.compiler_builtins.c22db39d25d6f802-cgu.148.rcgu.o) ``` This originated from the `test_num_f128` test not having the required conditional compilation. This PR fixes that issue. cc: ````@jethrogb,```` ````@workingjubilee````
2024-11-07Rollup merge of #132639 - RalfJung:intrinsics, r=workingjubilee,AmanieuJubilee-6/+6
core: move intrinsics.rs into intrinsics folder This makes the rustbot notification we have set up for this folder in `triagebot.toml` actually work. Also IMO it makes more sense to have it all in one folder.
2024-11-07Rollup merge of #132131 - celinval:smir-crate-defs, r=compiler-errorsJubilee-4/+225
[StableMIR] API to retrieve definitions from crates Add functions to retrieve function definitions and static items from all crates (local and external). For external crates, we're still missing items from trait implementation and primitives. r? ````@compiler-errors:```` Do you know what is the best way to retrieve the associated items for primitives and trait implementations for external crates? Thanks!
2024-11-07Rollup merge of #132095 - gechelberger:fix-131977, r=wesleywiserJubilee-8/+61
Fix #131977 parens mangled in shared mut static lint suggestion Resolves #131977 for static mut references after discussion with Esteban & Jieyou on [t-compiler/help](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/linting.20with.20parens.20in.20the.20HIR). This doesn't do anything to change the underlying issue if there are other expressions that generate lint suggestions which need to be applied within parentheses.
2024-11-07Rollup merge of #131913 - jieyouxu:only_debug_assertions, r=onur-ozkanJubilee-43/+119
Add `{ignore,needs}-{rustc,std}-debug-assertions` directive support Add `{ignore,needs}-{rustc,std}-debug-assertions` compiletest directives and retire the old `{ignore,only}-debug` directives. The old `{ignore,only}-debug` directives were ambiguous because you could have std built with debug assertions but rustc not built with debug assertions or vice versa. If we want to support the use case of controlling test run based on if rustc was built with debug assertions, then having `{ignore,only}-debug` will be very confusing. cc ````@matthiaskrgr```` Closes #123987. r? bootstrap (or compiler tbh)
2024-11-07Rollup merge of #130586 - dpaoliello:fixrawdylib, r=wesleywiserJubilee-55/+95
Set "symbol name" in raw-dylib import libraries to the decorated name `windows-rs` received a bug report that mixing raw-dylib generated and the Windows SDK import libraries was causing linker failures: <https://github.com/microsoft/windows-rs/issues/3285> The root cause turned out to be #124958, that is we are not including the decorated name in the import library and so the import name type is also not being correctly set. This change modifies the generation of import libraries to set the "symbol name" to the fully decorated name and correctly marks the import as being data vs function. Note that this also required some changes to how the symbol is named within Rust: for MSVC we now need to use the decorated name but for MinGW we still need to use partially decorated (or undecorated) name. Fixes #124958 Passing i686 MSVC and MinGW build: <https://github.com/rust-lang/rust/actions/runs/11000433888?pr=130586> r? `@ChrisDenton`
2024-11-07[StableMIR] API to retrieve definitions from cratesCelina G. Val-4/+225
Add functions to retrieve function definitions and static items from all crates (local and external). For external crates, add a query to retrieve the number of defs in a foreign crate.
2024-11-07Auto merge of #132472 - taiki-e:sparc-asm, r=Amanieubors-43/+770
Basic inline assembly support for SPARC and SPARC64 This implements asm_experimental_arch (tracking issue https://github.com/rust-lang/rust/issues/93335) for SPARC and SPARC64. This PR includes: - General-purpose registers `r[0-31]` (`reg` register class, LLVM/GCC constraint `r`) Supported types: i8, i16, i32, i64 (SPARC64-only) Aliases: `g[0-7]` (`r[0-7]`), `o[0-7]` (`r[8-15]`), `l[0-7]` (`r[16-23]`), `i[0-7]` (`r[24-31]`) - `y` register (clobber-only, needed for clobber_abi) - preserves_flags: Integer condition codes (`icc`, `xcc`) and floating-point condition codes (`fcc*`) The following are *not* included: - 64-bit integer support on SPARC-V8+'s global or out registers (`g[0-7]`, `o[0-7]`): GCC's `h` constraint (it seems that there is no corresponding constraint in LLVM?) - Floating-point registers (LLVM/GCC constraint `e`/`f`): I initially tried to implement this, but postponed it for now because there seemed to be several parts in LLVM that behaved differently than in the LangRef's description. - clobber_abi: Support for floating-point registers is needed. Refs: - LLVM - Reserved registers https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp#L52 - Register definitions https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Sparc/SparcRegisterInfo.td - Supported constraints https://llvm.org/docs/LangRef.html#supported-constraint-code-list - GCC - Reserved registers https://github.com/gcc-mirror/gcc/blob/63b6967b06b5387821c4e5f2c113da6aaeeae2b7/gcc/config/sparc/sparc.h#L633-L658 - Supported constraints https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html - SPARC ISA/ABI - (64-bit ISA) The SPARC Architecture Manual, Version 9 (32-bit ISA) The SPARC Architecture Manual, Version 8 (64-bit ABI) System V Application Binary Interface SPARC Version 9 Processor Supplement, Rev 1.35 (32-bit ABI) System V Application Binary Interface SPARC Processor Supplement, Third Edition The above docs can be downloaded from https://sparc.org/technical-documents - (32-bit V8+ ABI) The V8+ Technical Specification https://temlib.org/pub/SparcStation/Standards/V8plus.pdf cc `@thejpster` (sparc-unknown-none-elf target maintainer) (AFAIK, other sparc/sprac64 targets don't have target maintainers) r? `@Amanieu` `@rustbot` label +O-SPARC +A-inline-assembly
2024-11-07remove the extra specification for llvm versions < 20Hans Wennborg-0/+5
2024-11-07Update mips64 data layout to match LLVM 20 changeHans Wennborg-7/+7
LLVM changed the data layout in https://github.com/llvm/llvm-project/pull/112084
2024-11-07Update test for LLVM 20's new vector splat syntaxHans Wennborg-3/+3
that was introduced in https://github.com/llvm/llvm-project/pull/112548
2024-11-07Auto merge of #132736 - matthiaskrgr:rollup-66naqwb, r=matthiaskrgrbors-61/+72
Rollup of 4 pull requests Successful merges: - #132638 (Remove fixme comment about clobber_abi on PowerPC) - #132726 (Remove unused intercrate dependencies) - #132729 (Make fn_abi_sanity_check a bit stricter) - #132734 ( remove 'platform-intrinsic' ABI leftovers) r? `@ghost` `@rustbot` modify labels: rollup
2024-11-07bootstrap: Print better message if lock pid isn't availableclubby789-2/+6
2024-11-07Rollup merge of #132734 - RalfJung:platform-intrinsic, r=compiler-errorsMatthias Krüger-5/+4
remove 'platform-intrinsic' ABI leftovers This was removed a while ago, but some parts haven't been fully cleaned up.
2024-11-07Rollup merge of #132729 - bjorn3:fn_abi_extra_sanity_checks, r=compiler-errorsMatthias Krüger-30/+51
Make fn_abi_sanity_check a bit stricter The Rust ABI must ignore all ZST arguments, all ignored arguments must be either ZST or uninhabited. And finally ScalarPair should never be passed as PassMode::Direct.
2024-11-07Rollup merge of #132726 - clubby789:unused-deps, r=compiler-errorsMatthias Krüger-24/+2
Remove unused intercrate dependencies Checked by enabling `-Wunused-crate-dependencies` `driver_impl` still depends on `index` to forward the `rustc_randomized_layouts` feature, and `rustc_main` depends on several unused crates for sysroot reasons r? compiler
2024-11-07Rollup merge of #132638 - taiki-e:ppc-asm-fixme, r=jieyouxuMatthias Krüger-2/+15
Remove fixme comment about clobber_abi on PowerPC This was considered an unresolved question in https://github.com/rust-lang/rust/pull/131341, but according to the ABI document published in 2011 by Power.org the current implementation is fine as-is. https://github.com/rust-lang/rust/pull/131341#discussion_r1829358396 > According to [Power Architecture 32-bit Application Binary Interface Supplement 1.0 - Linux & Embedded](https://web.archive.org/web/20120608163804/https://www.power.org/resources/downloads/Power-Arch-32-bit-ABI-supp-1.0-Unified.pdf) published in 2011, PPC32 has the same convention here as PPC64. > > Therefore, we can just remove the FIXME comment here. r? workingjubilee
2024-11-07core: move intrinsics.rs into intrinsics folderRalf Jung-6/+6
2024-11-07 remove 'platform-intrinsic' ABI leftoversRalf Jung-5/+4
2024-11-07Fix file formattingGuillaume Gomez-11/+22
2024-11-07Make fn_abi_sanity_check a bit stricterbjorn3-30/+51
The Rust ABI must ignore all ZST arguments, all ignored arguments must be either ZST or uninhabited. And finally ScalarPair should never be passed as PassMode::Direct.
2024-11-07Auto merge of #132714 - mati865:update-memchr, r=tgross35bors-7/+2
unpin and update memchr I'm unable to build x86_64-pc-windows-gnu Rust due to some weird binutils bug, but thinlto issue seems to be no longer present. Let's give it a go on the CI. Possibly fixed by https://github.com/rust-lang/rust/pull/129079 Fixes #127890
2024-11-07Remove unused intercrate dependenciesclubby789-24/+2
2024-11-07Add links about clobber_abi on PowerPCTaiki Endo-0/+15
2024-11-07Remove fixme comment about clobber_abi on PowerPCTaiki Endo-2/+0
2024-11-07Auto merge of #132722 - joboet:rollup-0q67jyo, r=joboetbors-76/+150
Rollup of 6 pull requests Successful merges: - #132057 (miri: update ABI compat checks to accept Option-like types) - #132665 (Implement `div_ceil` for `NonZero<unsigned>`) - #132694 (fix(x): fix a regex used to find python executable) - #132707 (Add --diagnostic-width to some tests failing after 1a0c5021838) - #132715 (fix `LazyLock::get` and `LazyLock::get_mut` document) - #132716 (chore(issue-template): fix branch name) r? `@ghost` `@rustbot` modify labels: rollup
2024-11-07Basic inline assembly support for SPARC and SPARC64Taiki Endo-43/+770
2024-11-07Rollup merge of #132716 - ismailarilik:chore/issue-template/fix-branch-name, ↵Jonas Böttiger-1/+1
r=tgross35 chore(issue-template): fix branch name It was renamed to "main" from "master". It might seem not important (actually it is not important) but I think there is no need to see this every time when we clicked this link: ![image](https://github.com/user-attachments/assets/145dc587-c365-47e6-83da-69c17f409f71) And this way is faster I guess.
2024-11-07Rollup merge of #132715 - tabokie:fix-lazy-lock-doc, r=NoratriebJonas Böttiger-2/+2
fix `LazyLock::get` and `LazyLock::get_mut` document
2024-11-07Rollup merge of #132707 - zmodem:tests_vs_diagnostic_width, r=jieyouxuJonas Böttiger-54/+58
Add --diagnostic-width to some tests failing after 1a0c5021838 Otherwise the tests would fail depending on the execution environment.
2024-11-07Rollup merge of #132694 - ↵Jonas Böttiger-1/+1
ismailarilik:fix/x/fix-a-regex-used-to-find-python-executable, r=jieyouxu fix(x): fix a regex used to find python executable Isn't the regex `^python[2-3]\.[0-9]\+$` wrong? It doesn't match, for example, with `python2.8`. There should be a plus sign at the end for a match, like `python2.8+`. I think `[0-9]+` is meant here instead of `[0-9]\+`. In that case a string like `python2.8` would match. This wasn't noticed because the script probably find and run the Python executable before this line.
2024-11-07Rollup merge of #132665 - tyilo:nonzero-u-div-ceil, r=joboetJonas Böttiger-0/+29
Implement `div_ceil` for `NonZero<unsigned>` ACP: https://github.com/rust-lang/libs-team/issues/471
2024-11-07Rollup merge of #132057 - RalfJung:miri-abi-compat, r=wesleywiserJonas Böttiger-18/+59
miri: update ABI compat checks to accept Option-like types This implements the t-lang decision described [here](https://github.com/rust-lang/rust/pull/130628#issuecomment-2402761599). Fixes https://github.com/rust-lang/miri/issues/3983
2024-11-07Separate f128 `%` operation to deal with missing `fmodl` symbolRaoul Strackx-2/+20
2024-11-07Auto merge of #132635 - kiike:fix/dots_in_target, r=onur-ozkanbors-3/+11
bootstrap: add quoting support to avoid splitting With this change, it is now possible to pass quotes to the configure script, such as `./configure.py --set=target.\"thumbv8m.main-none-eabi\".linker=/linker` or `./configure.py '--set=target."thumbv8m.main-none-eabi".linker=/linker'` , which will treat `thumbv8.main-none-eabi` as a whole part. Currently, the string would be split into two elements: `thumbv8`, and `main-none-eabi`. The approach taken is to perform custom splitting instead of using `str.split()` and then repairing the split. Also, There are numerous corner cases not handled: the custom split doesn't differentiate between single quotes or double quotes, so it is perfectly possible to pass `./configure.py --set=target.\"thumbv8m.main-none-eabi\'.linker=/linker` and the behaviour would be the same as with all double quotes or single quotes. As for the code, i'm unsure on whether to delimit strings with double or single quotes. I've seen both single quotes and double quotes used to delimit strings, like in ```py err("Option '{}' provided more than once".format(key)) ``` and this a handful of lines down: ```py if option.name == 'sccache': set('llvm.ccache', 'sccache', config) ``` Please advise on the wanted one. Fixes #130602 r? `@onur-ozkan` Thanks in advance for the feedback!
2024-11-07Auto merge of #132710 - matthiaskrgr:padautz, r=jieyouxubors-0/+94
more crash tests r? `@jieyouxu`
2024-11-07chore(issue-template): fix branch nameismailarilik-1/+1
It was renamed to "main" from "master".
2024-11-07Auto merge of #132705 - kornelski:inline-repeat, r=tgross35bors-0/+1
Inline str::repeat `str` is non-generic and `str.repeat()` doesn't get inlined, which makes it use a slower algorithm in case of 1-char repetitions. Equivalent byte slice does get inlined: https://rust.godbolt.org/z/4arvh97r4
2024-11-07fix lazylock commentXinye-2/+2
Signed-off-by: Xinye <xinye.tao@metabit-trading.com>
2024-11-07Auto merge of #131888 - ChrisDenton:deopt, r=ibraheemdevbors-57/+12
Revert using `HEAP` static in Windows alloc Fixes #131468 This does the minimum to remove the `HEAP` static that was causing chromium issues. It would be worth having a more substantial look at this module but for now I think this addresses the immediate issue. cc `@danakj`
2024-11-07unpin and update memchrMateusz Mikuła-7/+2
2024-11-06Auto merge of #132625 - compiler-errors:cache-only-if-opaque, r=lcnrbors-6/+18
Only disable cache if predicate has opaques within it This is an alternative to https://github.com/rust-lang/rust/pull/132075. This refines the check implemented in https://github.com/rust-lang/rust/pull/126024 to only disable the global cache if the predicate being considered has opaques in it. This is still theoretically unsound, since goals can indirectly rely on opaques in the defining scope, but we're much less likely to hit it. It doesn't totally fix https://github.com/rust-lang/rust/issues/132064: for example, `lemmy` goes from 1:29 (on rust 1.81) to 9:53 (on nightly) to 4:07 (after this PR). But I think it's at least *more* sound than a total revert :/ r? lcnr
2024-11-06more crash testsMatthias Krüger-0/+94
2024-11-06bootstrap: add quoting support to avoid splittingEnric Morales-3/+11
With this change, it is now possible to pass quotes to the configure script, such as `./configure.py --set=target.\"thumbv8m.main-none-eabi\".linker=/linker` , which will treat `thumbv8.main-none-eabi` as a whole part. Currently, the string would be split into two elements: `thumbv8`, and `main-none-eabi`.
2024-11-06Add --diagnostic-width to some tests failing after 1a0c5021838Hans Wennborg-54/+58
Otherwise the tests would fail depending on the execution environment.
2024-11-06Inline str::repeatKornel-0/+1