Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
235 commits
Select commit Hold shift + click to select a range
e0d9940
rustc_codegen_ssa: Define ELF flag value for sparc-unknown-linux-gnu
taiki-e Mar 7, 2026
7463a85
ci: Bump all actions to latest
tgross35 Mar 15, 2026
8d51ad1
publish via trusted publishing
marcoieni Mar 16, 2026
f638250
export `__mulsi3` on `m68k`
folkertdev Mar 14, 2026
d723253
Revert "ci: Pin Miri to the 2026-02-11 nightly"
tgross35 Mar 14, 2026
7e44508
Merge pull request #1112 from marcoieni/publish-via-trusted-publishing
marcoieni Mar 17, 2026
51eea03
ci: Resolve audit issues reported by zizmore
tgross35 Mar 16, 2026
549b6d7
ci: Add configuration for renovatebot (#1114)
tgross35 Mar 17, 2026
741b5e9
Add zizmor to check Github Actions (static analysis)
yuzibo Mar 15, 2026
41a6f3e
ci: Resolve audit issues reported by zizmore
tgross35 Mar 17, 2026
d552a7c
libm: fix test for overflow in u256::shr
quaternic Mar 20, 2026
74955ac
libm: Remove `hexu` in favor of formatting traits on `u256`
tgross35 Mar 22, 2026
43b30e8
ci: update nextest to 0.9.131 with install-action
yuzibo Mar 19, 2026
ca309a4
ci: Test on riscv64 using a self-hosted runner
yuzibo Mar 23, 2026
d3e8724
test: Use the libm testing infra to test compiler-builtins
tgross35 Mar 23, 2026
16cb481
meta: Cover both `.yaml` and `.yml` in `.editorconfig`
tgross35 Mar 24, 2026
5ac9393
ci: Move `matrix.os` comparisons to an environment variable
tgross35 Mar 24, 2026
e8e3bdd
test: Better support tests that don't require a ulp value
tgross35 Mar 24, 2026
b6331ad
test: Clean up macro use in `builtins_wrappers`
tgross35 Mar 24, 2026
178cea5
test: Cover compiler-builtins float comparison in libm-test
tgross35 Mar 24, 2026
3e16dd3
test: Cover compiler-builtins float conversion in libm-test
tgross35 Mar 24, 2026
456bf77
macros: Update `skip_f16_f128` to handle return types
tgross35 Mar 24, 2026
3cef40c
test: Add benchmarks for c-b functions covered in libm-test
tgross35 Mar 24, 2026
5650d08
test: Consolidate `Hexf`, `Hexi`, and the `Hex` trait
tgross35 Mar 24, 2026
f4df517
test: Strip multiple suffixes when computing the base name
tgross35 Mar 24, 2026
4303aa9
test: Cover compiler-builtins float to int conversion in libm-test
tgross35 Mar 24, 2026
90bb1f2
ci: use CARGO_TARGET_DIR instead of .dockerenv for nextest config
yuzibo Mar 24, 2026
0adf2b3
test: Move the `math_op` function out of macro code
tgross35 Mar 24, 2026
383ddd1
test: Introduce a helper trait for tuple type access
tgross35 Mar 24, 2026
495d1e8
test: Migrate from using `FTy` to accessing individual arguments
tgross35 Mar 24, 2026
d713b42
test: Remove `FTy` from `libm-test` traits
tgross35 Mar 24, 2026
3135979
test: Cover compiler-builtins int to float conversion in libm-test
tgross35 Mar 24, 2026
6ff91b0
test: Cover compiler-builtins integer bit ops in libm-test
tgross35 Mar 25, 2026
c80dab6
test: Cover compiler-builtins integer arithmetic in libm-test
tgross35 Mar 25, 2026
693662d
test: Add new functions to icount benchmarks
tgross35 Mar 25, 2026
378a812
test: Switch to gungraun's new macro syntax
tgross35 Mar 25, 2026
b6d05f5
test: Move `libm-macros/shared.rs` to a new `api-list-common` crate
tgross35 Mar 27, 2026
7332ac0
api-list: Move sort and unique checks to tests
tgross35 Mar 27, 2026
d7f6c3d
ci: Add a retry to the `compiler-rt` download
tgross35 Mar 27, 2026
d7f20a9
ci: Add benchmarks for i686
tgross35 Mar 27, 2026
6dc3b26
ci: Remove wall time benchmarks from CI
tgross35 Mar 27, 2026
5e472e6
util: Allow a trailing comma for operands
tgross35 Mar 29, 2026
bd2b448
test: Introduce a `cases!` macro for adding specific test cases
tgross35 Mar 28, 2026
2b76b8e
test: Update precision defaults to be more accurate
tgross35 Mar 27, 2026
ef7d030
test: Allow special case overrides for list tests
tgross35 Mar 29, 2026
855bc87
test: Add a number of specific test cases
tgross35 Mar 29, 2026
220bcda
libm: Prepare to split files in `arch/`
tgross35 Mar 30, 2026
d11c9f6
libm: Split files in `arch/`
tgross35 Mar 30, 2026
bf73d7c
libm: Reorder functions in `arch/` from smallest to largest type
tgross35 Mar 30, 2026
b8ee2ff
etc: Search for `*_status` and `*_round` functions
tgross35 Mar 30, 2026
1a5220e
libm: Move tests out of `generic` to the consuming module
tgross35 Mar 30, 2026
9673c6c
libm: Clean up an unused type parameter
tgross35 Mar 30, 2026
c87cad8
c-b: Use libm `Int`, `MinInt`, `u256`, and related items
tgross35 Mar 30, 2026
a6aa04c
c-b: Use the libm `Float` trait
tgross35 Mar 30, 2026
4247543
libm: Add status output support to `rint_status`
tgross35 Mar 30, 2026
bfb6050
libm: Make unit test setup consistent across rounding functions
tgross35 Mar 30, 2026
cc4523f
test: Increase the ULP allowed against musl for `tanhf`
tgross35 Mar 30, 2026
419cad6
ci: Also use nextest to run compiler-builtins tests
tgross35 Mar 30, 2026
1560c85
config: Replace `cfg(x86_no_sse)` with `cfg(x86_no_sse2)`
tgross35 Mar 30, 2026
b10da67
libm: Use the shorthand `cfg(x86_no_sse2)` in more places
tgross35 Mar 30, 2026
7803d01
test: Benchmark i256 right shifts
tgross35 Mar 30, 2026
e273f94
ci: Rename updateTypes to matchUpdateTypes in renovate config
marcoieni Mar 30, 2026
3d384fa
test: Also test the non-generic function for rounding ops
tgross35 Mar 30, 2026
2dc08ea
hypot: Move the existing implementation to the `approx` module
tgross35 Mar 31, 2026
816765b
hypot: Add cr_hypot from CORE-math
tgross35 Apr 20, 2025
f9aeb48
libm: Add an `approx` module
tgross35 Feb 12, 2026
3f2745c
ci: fix rustc-pull permissions
ubiratansoares Mar 31, 2026
cf46b0a
Prepare for merging from rust-lang/rust
invalid-email-address Mar 31, 2026
2bea478
Merge ref '0e95a0f4c677' from rust-lang/rust
invalid-email-address Mar 31, 2026
03e408b
ci: Explicitly set the `compiler-builtins` feature for symcheck
tgross35 Mar 31, 2026
0f19a2d
ci: Temporarily disable the RISC-V runners
tgross35 Mar 31, 2026
cf6b8b3
ci: Allow both benchmark versions to run on regressions
tgross35 Mar 31, 2026
cb4025b
c-b: Remove the `mangled-names` feature from `builtins-test`
tgross35 Mar 31, 2026
ce25428
c-b: Change the `mangled-names` feature to `unmangled-names`
tgross35 Mar 31, 2026
9a7c3e1
bench: Enable unmangled-names when running benchmarks
tgross35 Mar 31, 2026
2257936
c-b: Clean up the `mem` feature
tgross35 Mar 31, 2026
ed12747
test: Turn `feature = "no-sys-f128"` and similar into plain cfg
tgross35 Apr 1, 2026
3975322
build: Print build config if LIBM_BUILD_VERBOSE is set
tgross35 Apr 1, 2026
b551fa8
c-b: Turn `mem-unaligned` from a feature to a cfg
tgross35 Apr 1, 2026
c1c8651
ci: Fix rustc-pull workflow
Kobzol Apr 1, 2026
7d709d1
renovate: don't raise individual PRs for crates non breaking changes
marcoieni Apr 1, 2026
6dd2ec0
chore(deps): update rust crate object to 0.39.0
renovate-bot Apr 1, 2026
9c41dad
chore(deps): update actions/upload-artifact action to v7
renovate-bot Apr 1, 2026
d89fb1d
chore(deps): update github actions
renovate-bot Apr 1, 2026
858156e
chore(deps): lock file maintenance
renovate-bot Apr 1, 2026
fc47fbc
ci: Don't re-archive the tar.xz benchmark baseline
tgross35 Apr 1, 2026
6b97e03
c-b: Replace the `no-asm` feature with an opposite-polarity `arch`
tgross35 Mar 31, 2026
2f57167
Revert "ci: Don't re-archive the tar.xz benchmark baseline"
tgross35 Apr 1, 2026
5448797
ci: Bump ubuntu:25.10 docker images to 26.04
tgross35 Apr 1, 2026
dee26f7
libm: Deprecate `feature = "force-soft-float"`
tgross35 Apr 1, 2026
719d7f9
bench: Rename the benchmark baselines
tgross35 Apr 1, 2026
312b994
c-b: Add hexagon common entry/exit ABI routines and memcpy_dwloop
androm3da Apr 2, 2026
6bbf64e
roundeven: Use an assembly implementation on i586
tgross35 Mar 29, 2026
73cb91d
test: Give helper functions in `spaced` more accurate names
tgross35 Apr 7, 2026
5344da9
test: Make use of `strict_mul` rather than `checked_mul(..).unwrap()`
tgross35 Apr 7, 2026
5678e61
test: Use `let` chains to simplify patterns in generator macros
tgross35 Apr 7, 2026
bbcba28
test: Use a more consistent setup for `iter` and `steps`
tgross35 Apr 7, 2026
2510454
test: Extract `flat_map`s to `product*` functions
tgross35 Apr 7, 2026
2b288d3
build: Make c-b `configue::Target` match libm `configure::Config`
tgross35 Apr 1, 2026
f5ca8e5
build: Use a single configure file for all libraries
tgross35 Apr 2, 2026
2df9726
build: Fix c-b builds always being marked dirty
tgross35 Apr 7, 2026
cea20e0
ci: Increase the timeout for benchmark jobs to 30 minutes
tgross35 Apr 7, 2026
5fd3020
Prepare for merging from rust-lang/rust
invalid-email-address Apr 9, 2026
6ea1978
Merge ref 'd0442e2800d3' from rust-lang/rust
invalid-email-address Apr 9, 2026
06ea856
libm: Add basic tests for u256::shl
tgross35 Mar 20, 2026
a6de511
libm: Add tests against `rug` for `i256`
tgross35 Mar 22, 2026
a4fe265
hexagon: Implement `__clear_cache` using inline assembly
androm3da Apr 7, 2026
c2c30c9
hex: Eliminate parser hacks needed for the previous MSRV
tgross35 Apr 8, 2026
5c66a58
hex: Always print a leading `+` sign and the NaN payload
tgross35 Apr 8, 2026
dd79b03
Add docs about SDKs on armv7a-vex-v5
lewisfm Apr 10, 2026
c25fbeb
Add C compilation instructions
lewisfm Apr 10, 2026
ae6376a
Instruct users to build `std` (not `core`) on armv7a-vex-v5
lewisfm Apr 10, 2026
df9fb65
Fix grammar issues in armv7a-vex-v5 docs
lewisfm Apr 10, 2026
70af5cf
Move deref-patterns tests to pattern sub directory
reddevilmidzy Apr 7, 2026
df2fe31
Fix format and bless test
reddevilmidzy Apr 7, 2026
d2e978e
Move unknown_lints tests into lint/unknown-lints dir
reddevilmidzy Apr 10, 2026
e110275
Clean up unknown-lints ui tests
reddevilmidzy Apr 10, 2026
7c23ee6
Move reserved tests to keyword
reddevilmidzy Apr 10, 2026
3af9faa
test: Move `tidy_lists` from `update-api-list.py` to a new crate
tgross35 Mar 23, 2026
fd47f70
chore(deps): update rust crate rand to v0.10.1 [security]
renovate-bot Apr 14, 2026
b2877ac
ci: Exclude update-api-list from libm tests
tgross35 Apr 16, 2026
b61f171
chore(deps): update rust crate gungraun to 0.18.0
renovate-bot Apr 16, 2026
c7c1c1a
c-b: Better document where `CmpResult` comes from
tgross35 Apr 16, 2026
32ccc13
fix: Remove duplicate icount_bench_gef128_group in libm-test benches
gamma0987 Apr 10, 2026
dcb70de
Fix the type of `CmpResult` on wasm64
Spxg Apr 16, 2026
5d4b176
bench: Use a group with many benches rather than many groups
tgross35 Apr 10, 2026
9064d17
Do not suggest borrowing enclosing calls for nested where-clause obli…
nataliakokoromyti Apr 18, 2026
0cc3a7d
c-b: add missing word in src/mem/impls.rs docs
DanielEScherzer Apr 17, 2026
996b57d
test: Fix printing bitwise float reprs in error printing
tgross35 Apr 19, 2026
aa38b7f
add `MaybeUninit` to `minicore`
folkertdev Oct 8, 2025
640c4b4
cmse: test returning `MaybeUninit<T>`
folkertdev Apr 19, 2026
90a0227
support: Update vendored cfg-if to upstream for `true` and `false` su…
tgross35 Apr 20, 2026
e981edd
Enable AddressSanitizer on arm-unknown-linux-gnueabihf and armv7-unkn…
chrisburel Apr 20, 2026
70cf3f4
Put `#[diagnostic::on_move]` on `File`
mejrs Apr 21, 2026
0548502
tests/ui/macros: add annotations for reference rules
DanielEScherzer Mar 6, 2026
a21eee0
Update LLVM to 22.1.4
dianqk Apr 22, 2026
ab1500b
Separate out some `IndexItem` fields into a new struct and DRY
yotamofek Nov 29, 2025
ca43552
add the `mem` feature back to `compiler-builtins/Cargo.toml`
folkertdev Apr 22, 2026
4f7a26f
Update maintainers of armv7a-vex-v5
lewisfm Apr 23, 2026
c0441d4
Fix Mlibc env pretty print to Managarm C Library
teor2345 Apr 16, 2026
140dad0
Resolve FIXME: os = none is bare metal
teor2345 Apr 16, 2026
34c0fe8
Fix some typos
teor2345 Apr 16, 2026
b15544d
Handle index projections in call destinations in DSE
Amanieu Apr 23, 2026
ce880a4
Document `#[diagnostic::on_move]` in the unstable book
mejrs Apr 23, 2026
2f99ab1
Fix classify_union to return Union for regular unions
fneddy Apr 23, 2026
c1936ba
fix `get_child_at_index` return type hints
Walnut356 Apr 23, 2026
b86c9e7
fix array template arg lookup behavior
Walnut356 Apr 23, 2026
7970597
c-variadic: fix for sparc64
folkertdev Apr 22, 2026
892f176
Const initialize `LOCK_LATCH` thread local
zetanumbers Apr 23, 2026
714df2b
privacy: Assert that compared visibilities are (usually) ordered
petrochenkov Apr 13, 2026
07d015e
Syntactically reject tuple index shorthands in struct patterns to fix…
fmease Apr 23, 2026
87b0ce5
Remove `AttributeLintKind::MissingOptionsForDiagnosticAttribute` variant
GuillaumeGomez Apr 23, 2026
7a07b79
Remove `AttributeLintKind::NonMetaItemDiagnosticAttribute` variant
GuillaumeGomez Apr 23, 2026
874b7d3
Remove myself as a maintainer of `wasm32-wasip1-threads`
alexcrichton Apr 23, 2026
250beb3
explicit-tail-calls: disable two tests on LoongArch for LLVM 22 also
dianqk Apr 23, 2026
804e419
Eliminate `CrateMetadataRef`.
nnethercote Apr 22, 2026
70fe8a6
Add `Sender` diagnostic item for `std::sync::mpsc::Sender`
cammeresi Apr 23, 2026
0a57857
c-b: Ensure check-cfg is set for all targets
tgross35 Apr 23, 2026
85468d1
Rollup merge of #155660 - folkertdev:sparc64-c-variadic, r=tgross35
tgross35 Apr 24, 2026
6c683ad
Rollup merge of #153482 - DanielEScherzer:test-references-macros, r=e…
tgross35 Apr 24, 2026
8a12dc6
Rollup merge of #155075 - vexide:more-docs, r=ehuss
tgross35 Apr 24, 2026
9ca29a8
Rollup merge of #155685 - Walnut356:ret_type, r=jieyouxu
tgross35 Apr 24, 2026
b08772c
Rollup merge of #155686 - Walnut356:array_type, r=jieyouxu
tgross35 Apr 24, 2026
b7f0235
Rollup merge of #155689 - zetanumbers:lock_latch_thread_local, r=Shoy…
tgross35 Apr 24, 2026
2493328
Rollup merge of #155690 - fneddy:fix_classify_union, r=jieyouxu
tgross35 Apr 24, 2026
bcb1af0
Forbid `*-pass` and `*-fail` directives in tests/crashes
Zalathar Apr 22, 2026
d493b7c
Auto merge of #155710 - tgross35:rollup-skXlTFI, r=tgross35
bors Apr 24, 2026
4b1f392
Avoid query cycles in DataflowConstProp
saethlin Apr 24, 2026
7ba9478
Implement `Read`/`Write`/`Seek` for `Arc<T>`
bushrat011899 Apr 23, 2026
e002c6c
Rollup merge of #155684 - bushrat011899:blanket_io_seek_for_ref, r=jh…
jhpratt Apr 24, 2026
b9cf909
Rollup merge of #155081 - reddevilmidzy:ui-fixme, r=Kivooeo
jhpratt Apr 24, 2026
cdba0ce
Rollup merge of #155379 - ashivaram23:mir-query-cycle, r=saethlin
jhpratt Apr 24, 2026
0c25381
Rollup merge of #155663 - nnethercote:eliminate-CrateMetadataRef, r=m…
jhpratt Apr 24, 2026
46362de
Rollup merge of #155669 - cammeresi:20260422-sender-diag, r=mejrs
jhpratt Apr 24, 2026
1230f74
Rollup merge of #155698 - fmease:no-struct-pat-tuple-index-shorthand,…
jhpratt Apr 24, 2026
7127505
Rollup merge of #155703 - alexcrichton:remove-myself-from-wasm32-wasi…
jhpratt Apr 24, 2026
87c27a9
Rollup merge of #155706 - GuillaumeGomez:rm-attributelintkind, r=Jona…
jhpratt Apr 24, 2026
a2622ef
Rollup merge of #155712 - Zalathar:crashes, r=jieyouxu
jhpratt Apr 24, 2026
7f2a98d
Rename Self generic param to This in recursive delegations
aerooneqq Apr 24, 2026
cf79d03
Auto merge of #155720 - jhpratt:rollup-OEB9tQ5, r=jhpratt
bors Apr 24, 2026
27e12b8
Fix tier level for 5 thumb bare-metal ARM targets
cezarbbb Apr 24, 2026
150905c
test: Add a regression test for Apple platforms aborting on `free`
tgross35 Apr 24, 2026
ec6f9a5
Auto merge of #155709 - tgross35:compiler-builtins-sync-2026-04-22, r…
bors Apr 24, 2026
e90878b
All nested statics in a single interning run have the same parent
oli-obk Apr 21, 2026
bfb085d
All generated associated types for opaque types in traits/impls have …
oli-obk Apr 24, 2026
bbdc7c4
bootstrap: Don't clone submodules unconditionally in dry-run
jyn514 Apr 24, 2026
52b93e0
Fix typo by removing extra 'to'
Muhtasim-Rasheed Apr 24, 2026
ece632c
Remove `AllVariants` workaround for rust-analyzer
makai410 Apr 24, 2026
acb65f3
Auto merge of #155645 - dianqk:update-llvm, r=nikic
bors Apr 24, 2026
84ebb22
account for `GetSyntheticValue` failures
Walnut356 Apr 24, 2026
f69946a
Avoid redundant clone suggestions in borrowck diagnostics
yuk1ty Mar 21, 2026
180bfef
Pass fields to `is_tuple_fields` instead of `SBValue` object
Walnut356 Apr 24, 2026
15e60eb
std: Refactor flush method in BufWriter to use the `?` operator
xtqqczze Apr 24, 2026
d4a700a
Rollup merge of #149452 - yotamofek:pr/rustdoc/IndexItem-new, r=notri…
JonathanBrouwer Apr 24, 2026
e873839
Rollup merge of #155621 - mejrs:document_diagnostic_on_move, r=chenyu…
JonathanBrouwer Apr 24, 2026
ef162a5
Rollup merge of #155635 - aerooneqq:delegation-generics-Self-rename, …
JonathanBrouwer Apr 24, 2026
bbdfe21
Rollup merge of #155730 - oli-obk:cleanups, r=petrochenkov
JonathanBrouwer Apr 24, 2026
08571af
Rollup merge of #153537 - taiki-e:ef-sparc-32plus, r=wesleywiser
JonathanBrouwer Apr 24, 2026
a51a163
Rollup merge of #155219 - nataliakokoromyti:fix-155088-borrow-suggest…
JonathanBrouwer Apr 24, 2026
39d5d45
Rollup merge of #155408 - teor2345:rustdoc-env-names, r=lolbinarycat
JonathanBrouwer Apr 24, 2026
396f99f
Rollup merge of #155571 - chrisburel:asan-armv7, r=wesleywiser
JonathanBrouwer Apr 24, 2026
3ad0c70
Rollup merge of #155713 - tgross35:150898-regression-test, r=dianqk
JonathanBrouwer Apr 24, 2026
75234e5
Rollup merge of #155723 - cezarbbb:fix-thumb-target-tier-spec, r=wesl…
JonathanBrouwer Apr 24, 2026
4eaa44b
Rollup merge of #155735 - Muhtasim-Rasheed:issue-155695-fix-typo, r=w…
JonathanBrouwer Apr 24, 2026
2a885bb
Rollup merge of #155736 - makai410:rm-ra-workaround, r=petrochenkov
JonathanBrouwer Apr 24, 2026
7c61a35
Auto merge of #155745 - JonathanBrouwer:rollup-D6OSAOt, r=JonathanBro…
bors Apr 24, 2026
c2916be
Permit `{This}` in diagnostic attribute format literals
mejrs Apr 23, 2026
2b46d92
Improve suggestion for `$`-prefixed fragment specifiers
qaijuang Apr 22, 2026
3851c60
make the `core::ffi::va_list` module private
folkertdev Apr 24, 2026
80729d7
Auto merge of #155662 - mejrs:this_the_thing, r=petrochenkov
bors Apr 24, 2026
d439d07
Update cargo submodule
weihanglo Apr 24, 2026
6d6b99e
Rollup merge of #155754 - folkertdev:hide-core-ffi-va-list, r=tgross35
JonathanBrouwer Apr 24, 2026
39d8424
Rollup merge of #155522 - folkertdev:cmse-test-maybe-uninit, r=Waffle…
JonathanBrouwer Apr 24, 2026
6f536cf
Rollup merge of #155741 - xtqqczze:question-mark-bufwriter-flush, r=W…
JonathanBrouwer Apr 24, 2026
d5b941d
added float masks feature
Apersoma Apr 24, 2026
61ff157
Address custom type implementing Derefs to suggest UFCS clone
yuk1ty Apr 11, 2026
0705bba
Do not modify resolver outputs during lowering
cjgillot Apr 17, 2026
9044aba
Use imported NodeId.
cjgillot Apr 21, 2026
4433512
Lighten and document partial_res_overrides.
cjgillot Apr 21, 2026
597d9e4
Auto merge of #155755 - JonathanBrouwer:rollup-oG1Wz3V, r=JonathanBro…
bors Apr 25, 2026
0a4ee3f
Auto merge of #155756 - weihanglo:update-cargo, r=weihanglo
bors Apr 25, 2026
d3eddcf
Rollup merge of #155643 - qaijuang:fix-macro-missing-fragment-dollar-…
jhpratt Apr 25, 2026
0af72af
Rollup merge of #154197 - yuk1ty:fix-redundant-clone-error2, r=adwinw…
jhpratt Apr 25, 2026
b3ccc96
Rollup merge of #154372 - Apersoma:float_masks, r=tgross35
jhpratt Apr 25, 2026
fa82155
Rollup merge of #155680 - Amanieu:call-arg-move-index, r=cjgillot
jhpratt Apr 25, 2026
780e699
Rollup merge of #155732 - ferrocene:jyn/dry-run, r=jieyouxu
jhpratt Apr 25, 2026
0c27f91
Rollup merge of #155737 - Walnut356:getsyntheticvalue, r=jieyouxu
jhpratt Apr 25, 2026
84fd561
Rollup merge of #155738 - Walnut356:tuple_fields, r=jieyouxu
jhpratt Apr 25, 2026
7e0430f
Auto merge of #155766 - jhpratt:rollup-EcXAaqS, r=jhpratt
bors Apr 25, 2026
fb76025
Auto merge of #155460 - cjgillot:unmut-resolver-ast, r=oli-obk
bors Apr 25, 2026
9838411
Auto merge of #155257 - petrochenkov:visatleast, r=adwinwhite
bors Apr 25, 2026
f0cb3a7
arm64e: set ptrauth ABI subtype on metadata objects
cypherair Apr 25, 2026
5abd4ae
bootstrap: handle fork shallow upstream detection
cypherair Apr 24, 2026
e812242
bootstrap: tolerate missing upstream in shallow fork CI
cypherair Apr 25, 2026
a9d110a
ci: scope arm64e integration validation to prep patches
cypherair Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
113 changes: 113 additions & 0 deletions .github/workflows/arm64e-upstream-sync-prep.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: arm64e Upstream Sync Prep

on:
workflow_dispatch:
inputs:
integration_branch:
description: CypherAir arm64e integration branch to inspect.
required: true
default: integration/arm64e-upstream-prs
type: string
upstream_ref:
description: Upstream Rust ref to merge in the dry-run workspace.
required: true
default: upstream/main
type: string
create_refresh_pr:
description: Push a refresh branch and open a draft PR when the dry-run merge succeeds.
required: true
default: false
type: boolean
permissions:
contents: write
pull-requests: write
actions: write

jobs:
sync-prep:
if: github.repository == 'cypherair/rust'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout fork
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Fetch upstream and integration refs
env:
INTEGRATION_BRANCH: ${{ inputs.integration_branch }}
run: |
set -euo pipefail
git remote add upstream https://github.com/rust-lang/rust.git 2>/dev/null || git remote set-url upstream https://github.com/rust-lang/rust.git
git fetch --prune origin \
"+refs/heads/${INTEGRATION_BRANCH}:refs/remotes/origin/${INTEGRATION_BRANCH}" \
+refs/heads/main:refs/remotes/origin/main
git fetch --prune upstream +refs/heads/main:refs/remotes/upstream/main

- name: Report branch posture
env:
INTEGRATION_BRANCH: ${{ inputs.integration_branch }}
UPSTREAM_REF: ${{ inputs.upstream_ref }}
run: |
set -euo pipefail
{
echo "## arm64e upstream sync prep"
echo
echo "- integration branch: \`${INTEGRATION_BRANCH}\`"
echo "- upstream ref: \`${UPSTREAM_REF}\`"
echo "- origin/main: \`$(git rev-parse refs/remotes/origin/main)\`"
echo "- upstream/main: \`$(git rev-parse refs/remotes/upstream/main)\`"
echo "- integration head: \`$(git rev-parse refs/remotes/origin/${INTEGRATION_BRANCH})\`"
echo "- origin/main...upstream/main: \`$(git rev-list --left-right --count refs/remotes/origin/main...refs/remotes/upstream/main)\`"
echo "- integration...upstream: \`$(git rev-list --left-right --count refs/remotes/origin/${INTEGRATION_BRANCH}...${UPSTREAM_REF})\`"
} >> "$GITHUB_STEP_SUMMARY"

- name: Dry-run merge upstream into integration branch
id: dry_run
env:
INTEGRATION_BRANCH: ${{ inputs.integration_branch }}
UPSTREAM_REF: ${{ inputs.upstream_ref }}
run: |
set -euo pipefail
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git checkout -B arm64e-sync-dry-run "refs/remotes/origin/${INTEGRATION_BRANCH}"
if git merge --no-ff --no-commit "$UPSTREAM_REF"; then
echo "merge_ok=true" >> "$GITHUB_OUTPUT"
git diff --stat --cached || true
git merge --abort || true
else
echo "merge_ok=false" >> "$GITHUB_OUTPUT"
git status --short
exit 1
fi

- name: Create refresh branch and draft PR
id: refresh
if: ${{ inputs.create_refresh_pr && steps.dry_run.outputs.merge_ok == 'true' }}
env:
GITHUB_TOKEN: ${{ github.token }}
INTEGRATION_BRANCH: ${{ inputs.integration_branch }}
UPSTREAM_REF: ${{ inputs.upstream_ref }}
run: |
set -euo pipefail
SHORT_SHA="$(git rev-parse --short=7 "refs/remotes/origin/${INTEGRATION_BRANCH}")"
REFRESH_BRANCH="automation/arm64e-refresh-$(date -u +"%Y%m%dT%H%M%SZ")-${SHORT_SHA}"

git checkout -B "$REFRESH_BRANCH" "refs/remotes/origin/${INTEGRATION_BRANCH}"
git merge --no-ff "$UPSTREAM_REF" -m "Merge ${UPSTREAM_REF} into ${INTEGRATION_BRANCH}"
git push origin "HEAD:refs/heads/${REFRESH_BRANCH}"

gh pr create \
--repo "$GITHUB_REPOSITORY" \
--base "$INTEGRATION_BRANCH" \
--head "$REFRESH_BRANCH" \
--title "[automation] Refresh arm64e integration branch from ${UPSTREAM_REF}" \
--body "Automated dry-run refresh branch for CypherAir arm64e Rust integration. This PR intentionally targets the integration branch and does not force-push it." \
--draft

echo "REFRESH_BRANCH=$REFRESH_BRANCH" >> "$GITHUB_ENV"
echo "branch=$REFRESH_BRANCH" >> "$GITHUB_OUTPUT"
64 changes: 64 additions & 0 deletions .github/workflows/fork-arm64e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Fork arm64e validation

# Fork-only CypherAir validation. Drop this workflow before proposing the
# upstreamable arm64e prep patches to rust-lang/rust.

on:
workflow_dispatch:
push:
branches:
- integration/arm64e-upstream-prs
pull_request:
branches:
- main

permissions:
contents: read

concurrency:
group: fork-arm64e-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
prep:
if: github.repository == 'cypherair/rust'
name: arm64e prep validation
runs-on: macos-15
timeout-minutes: 180
defaults:
run:
shell: bash
steps:
- name: Checkout source
uses: actions/checkout@v5
with:
fetch-depth: 2
submodules: recursive

# CypherAir fork push runs reproduced a shallow-clone case where bootstrap could not
# safely treat HEAD^1 as the upstream nightly base commit. Keep this in sync with src/stage0.
- name: Fetch nightly base ref
run: |
git fetch --no-tags --prune --depth=1 origin \
+refs/heads/main:refs/remotes/origin/main

- name: Show environment
run: |
sw_vers
uname -a
git show -s --format='HEAD: %H %P %ae %s' HEAD
git show -s --format='origin/main: %H %P %ae %s' refs/remotes/origin/main
python3 --version

- name: Check metadata codegen crate
run: |
python3 x.py check compiler/rustc_codegen_ssa --stage 1

- name: Run Mach-O metadata subtype test
run: |
python3 x.py test --stage 1 --force-rerun \
tests/run-make/arm64e-macho-metadata-subtype

- name: Run bootstrap tests
run: |
python3 x.py test src/bootstrap --stage 1
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
[submodule "src/llvm-project"]
path = src/llvm-project
url = https://github.com/rust-lang/llvm-project.git
branch = rustc/22.1-2026-01-27
branch = rustc/22.1-2026-03-22
shallow = true
[submodule "src/doc/embedded-book"]
path = src/doc/embedded-book
Expand Down
7 changes: 2 additions & 5 deletions compiler/rustc_ast_lowering/src/asm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,9 @@ use super::errors::{
InvalidRegisterClass, RegisterClassOnlyClobber, RegisterClassOnlyClobberStable,
RegisterConflict,
};
use crate::{
AllowReturnTypeNotation, ImplTraitContext, ImplTraitPosition, ParamMode, ResolverAstLoweringExt,
};
use crate::{AllowReturnTypeNotation, ImplTraitContext, ImplTraitPosition, ParamMode};

impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
impl<'hir> LoweringContext<'_, 'hir> {
pub(crate) fn lower_inline_asm(
&mut self,
sp: Span,
Expand Down Expand Up @@ -203,7 +201,6 @@ impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
},
InlineAsmOperand::Sym { sym } => {
let static_def_id = self
.resolver
.get_partial_res(sym.id)
.and_then(|res| res.full_res())
.and_then(|res| match res {
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_ast_lowering/src/block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ use rustc_hir::Target;
use rustc_span::sym;
use smallvec::SmallVec;

use crate::{ImplTraitContext, ImplTraitPosition, LoweringContext, ResolverAstLoweringExt};
use crate::{ImplTraitContext, ImplTraitPosition, LoweringContext};

impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
impl<'hir> LoweringContext<'_, 'hir> {
pub(super) fn lower_block(
&mut self,
b: &Block,
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_ast_lowering/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ use std::sync::Arc;

use thin_vec::thin_vec;

use crate::{LoweringContext, ResolverAstLoweringExt};
use crate::LoweringContext;

impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
impl<'hir> LoweringContext<'_, 'hir> {
/// Lowered contracts are guarded with the `contract_checks` compiler flag,
/// i.e. the flag turns into a boolean guard in the lowered HIR. The reason
/// for not eliminating the contract code entirely when the `contract_checks`
Expand Down
36 changes: 15 additions & 21 deletions compiler/rustc_ast_lowering/src/delegation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
use std::iter;

use ast::visit::Visitor;
use hir::def::{DefKind, PartialRes, Res};
use hir::def::{DefKind, Res};
use hir::{BodyId, HirId};
use rustc_abi::ExternAbi;
use rustc_ast as ast;
Expand Down Expand Up @@ -105,7 +105,7 @@ static ATTRS_ADDITIONS: &[AttrAdditionInfo] = &[
},
];

impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
impl<'hir> LoweringContext<'_, 'hir> {
fn is_method(&self, def_id: DefId, span: Span) -> bool {
match self.tcx.def_kind(def_id) {
DefKind::Fn => false,
Expand Down Expand Up @@ -266,7 +266,7 @@ impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
}

fn get_resolution_id(&self, node_id: NodeId) -> Option<DefId> {
self.resolver.get_partial_res(node_id).and_then(|r| r.expect_full_res().opt_def_id())
self.get_partial_res(node_id).and_then(|r| r.expect_full_res().opt_def_id())
}

// Function parameter count, including C variadic `...` if present.
Expand Down Expand Up @@ -417,7 +417,7 @@ impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
&& idx == 0
{
let mut self_resolver = SelfResolver {
resolver: this.resolver,
ctxt: this,
path_id: delegation.id,
self_param_id: pat_node_id,
};
Expand Down Expand Up @@ -508,7 +508,7 @@ impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {

// FIXME(fn_delegation): proper support for parent generics propagation
// in method call scenario.
let segment = self.process_segment(span, &segment, &mut generics.child, false);
let segment = self.process_segment(span, &segment, &mut generics.child);
let segment = self.arena.alloc(segment);

self.arena.alloc(hir::Expr {
Expand All @@ -534,14 +534,10 @@ impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {

new_path.segments = self.arena.alloc_from_iter(
new_path.segments.iter().enumerate().map(|(idx, segment)| {
let mut process_segment = |result, add_lifetimes| {
self.process_segment(span, segment, result, add_lifetimes)
};

if idx + 2 == len {
process_segment(&mut generics.parent, true)
self.process_segment(span, segment, &mut generics.parent)
} else if idx + 1 == len {
process_segment(&mut generics.child, false)
self.process_segment(span, segment, &mut generics.child)
} else {
segment.clone()
}
Expand All @@ -551,7 +547,7 @@ impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
hir::QPath::Resolved(ty, self.arena.alloc(new_path))
}
hir::QPath::TypeRelative(ty, segment) => {
let segment = self.process_segment(span, segment, &mut generics.child, false);
let segment = self.process_segment(span, segment, &mut generics.child);

hir::QPath::TypeRelative(ty, self.arena.alloc(segment))
}
Expand Down Expand Up @@ -584,13 +580,12 @@ impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
span: Span,
segment: &hir::PathSegment<'hir>,
result: &mut GenericsGenerationResult<'hir>,
add_lifetimes: bool,
) -> hir::PathSegment<'hir> {
let details = result.generics.args_propagation_details();

let segment = if details.should_propagate {
let generics = result.generics.into_hir_generics(self, span);
let args = generics.into_generic_args(self, add_lifetimes, span);
let args = generics.into_generic_args(self, span);

// Needed for better error messages (`trait-impl-wrong-args-count.rs` test).
let args = if args.is_empty() { None } else { Some(args) };
Expand Down Expand Up @@ -670,25 +665,24 @@ impl<'hir, R: ResolverAstLoweringExt<'hir>> LoweringContext<'_, 'hir, R> {
}
}

struct SelfResolver<'a, R> {
resolver: &'a mut R,
struct SelfResolver<'a, 'b, 'hir> {
ctxt: &'a mut LoweringContext<'b, 'hir>,
path_id: NodeId,
self_param_id: NodeId,
}

impl<'tcx, R: ResolverAstLoweringExt<'tcx>> SelfResolver<'_, R> {
impl SelfResolver<'_, '_, '_> {
fn try_replace_id(&mut self, id: NodeId) {
if let Some(res) = self.resolver.get_partial_res(id)
if let Some(res) = self.ctxt.get_partial_res(id)
&& let Some(Res::Local(sig_id)) = res.full_res()
&& sig_id == self.path_id
{
let new_res = PartialRes::new(Res::Local(self.self_param_id));
self.resolver.insert_partial_res(id, new_res);
self.ctxt.partial_res_overrides.insert(id, self.self_param_id);
}
}
}

impl<'ast, 'tcx, R: ResolverAstLoweringExt<'tcx>> Visitor<'ast> for SelfResolver<'_, R> {
impl<'ast> Visitor<'ast> for SelfResolver<'_, '_, '_> {
fn visit_id(&mut self, id: NodeId) {
self.try_replace_id(id);
}
Expand Down
Loading
Loading