Commit Graph

5112 Commits

Author SHA1 Message Date
bjorn3 099e5d2572 Update Cirrus CI to FreeBSD 14.2 2025-10-01 11:51:52 +00:00
bjorn3 f2798d6233 Workaround for TLS issue on FreeBSD 2025-09-26 13:56:59 +00:00
bjorn3 9b24d96173 Re-enable Cirrus CI 2025-09-26 13:50:17 +00:00
EriKWDev f1ce0ecb4d Remove $ (#1595)
Consider removing the redundant $:s that needs to be removed when copying commands
2025-09-26 11:26:52 +02:00
bjorn3 34eb0ce741 Use macos-15-intel runners for x86_64 2025-09-25 10:11:14 +00:00
bjorn3 6f8394e03f Merge pull request #1593 from kehrazy/embed-source
Support -Zembed-source in debuginfo
2025-09-25 11:12:05 +02:00
bjorn3 13748073d8 Update to Cranelift 0.124.1 2025-09-23 18:54:39 +00:00
bjorn3 64ec359283 Ignore rustc test again that still fails 2025-09-23 09:35:57 +00:00
bjorn3 72d8b6c7d5 Fix rustc test suite
And re-enable a no longer failing test.
2025-09-23 09:22:59 +00:00
bjorn3 fd7ec3a2c4 Rustup to rustc 1.92.0-nightly (f6092f224 2025-09-22) 2025-09-23 09:00:27 +00:00
bjorn3 821fe35c71 Sync from rust f6092f224d 2025-09-23 08:53:47 +00:00
Igor kehrazy 0e9595e648 Support -Zembed-source in debuginfo
- honour the session DWARF version, enabling v5 when embed-source is requested and plumb the flag through the debug context
  - attach embedded source bytes to line table FileInfo records alongside existing MD5 hashes
  - stop excluding rustc’s embed-source-dwarf run-make test so CG_CLIF exercises the feature
2025-09-22 20:11:49 +03:00
Stuart Cook 2e715184e9 Rollup merge of #146664 - fmease:clean-up-dyn, r=jdonszelmann
Clean up `ty::Dynamic`

1. As a follow-up to PR rust-lang/rust#143036, remove `DynKind` entirely.
2. Inside HIR ty lowering, consolidate modules `dyn_compatibility` and `lint` into `dyn_trait`
   * `dyn_compatibility` wasn't about dyn compatibility itself, it's about lowering trait object types
   * `lint` contained dyn-Trait-specific diagnostics+lints only
2025-09-18 11:48:51 +10:00
León Orell Valerian Liehr e53af72d29 Remove DynKind 2025-09-17 04:46:46 +02:00
Camille Gillot 8b7d5f1a45 Remove Rvalue::Len. 2025-09-16 22:23:19 +00:00
bjorn3 1988e68a35 Fix rustc test suite 2025-09-15 15:03:03 +00:00
bjorn3 7fdb85538d Rustup to rustc 1.92.0-nightly (52618eb33 2025-09-14) 2025-09-15 14:20:54 +00:00
bjorn3 1d61b61f69 Fix rustc test suite 2025-09-12 15:49:37 +00:00
bjorn3 8977078e1f Rustup to rustc 1.91.0-nightly (5eda692e7 2025-09-11) 2025-09-12 15:22:44 +00:00
bjorn3 d077c1e30c Fix rustc test suite 2025-09-07 14:55:38 +00:00
bjorn3 39aa1ee936 Rustup to rustc 1.91.0-nightly (1ed3cd703 2025-09-06) 2025-09-07 11:59:30 +00:00
bjorn3 623611d65a Sync from rust 1ed3cd7030 2025-09-07 11:53:31 +00:00
bors e2f00cbb5c Auto merge of #146233 - jieyouxu:run-make-fission, r=Kobzol
Split `run-make` into two {`run-make`,`run-make-cargo`} test suites

## Summary

Split `tests/run-make` into two test suites, to make it faster and more convenient for contributors to run run-make tests that do not need in-tree `cargo`.

| New test suites        | Explanation                                                                                                                                                                                                                              |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tests/run-make`       | The "fast path" test suite intended for run-make tests that do not need in-tree `cargo`. These tests may not use `cargo`.                                                                                                                |
| `tests/run-make-cargo` | The "slow path" test suite that requires checking out `cargo` submodule and building in-tree `cargo`, and thus will have access to in-tree `cargo`. In practice, these constitute a very small portion of the original `run-make` tests. |

This PR carries out [MCP 847: Split run-make test suite into slower-building test suite with suitably-staged cargo and faster-building test suite without cargo](https://github.com/rust-lang/compiler-team/issues/847).
Fixes rust-lang/rust#135573 (for the tests that do not need in-tree `cargo`).
Fixes rust-lang/rust#134109.

## Remarks

- I considered if we want to split by in-tree tools previously. However, as discussed rust-lang/rust#134109, in practice `rustdoc` is not very slow to build, but `cargo` takes a good few minutes. So, the partition boundary was determined to be along in-tree `cargo` availability.
- The `run-make` tests previously that wanted to use `cargo` cannot just use the bootstrap `cargo`, otherwise they would run into situations where bootstrap `cargo` can significantly diverge from in-tree `cargo` (see https://github.com/rust-lang/rust/pull/130642).

---

try-job: aarch64-msvc-1
try-job: test-various
try-job: x86_64-gnu-debug
try-job: aarch64-gnu-debug
try-job: aarch64-apple
try-job: dist-various-1
2025-09-06 18:37:35 +00:00
bjorn3 877448730a Ensure fat LTO doesn't merge everything into the allocator module 2025-09-06 13:31:41 +00:00
Jieyou Xu 719b14c3a7 cg_clif: run run-make-cargo test suite 2025-09-05 21:39:50 +08:00
Jieyou Xu 39d8f6a7a3 cg_clif: account for moved tests/run-make-cargo/compiler-builtins 2025-09-05 21:39:50 +08:00
bjorn3 8878a67f1b Special case allocator module submission to avoid special casing it elsewhere
A lot of places had special handling just in case they would get an
allocator module even though most of these places could never get one or
would have a trivial implementation for the allocator module. Moving all
handling of the allocator module to a single place simplifies things a
fair bit.
2025-09-04 08:21:10 +00:00
bjorn3 3b311c32e5 Rustup to rustc 1.91.0-nightly (7aef4bec4 2025-09-01) 2025-09-02 20:03:41 +00:00
bjorn3 e43eef8aa3 Sync from rust 7aef4bec4b 2025-09-02 18:43:17 +00:00
bjorn3 9de73c86f3 Rename the default branch to main 2025-09-02 17:23:07 +00:00
Nicholas Nethercote 3293a0b6b7 Introduce MirDumper and MirWriter.
MIR dumping is a mess. There are lots of functions and entry points,
e.g. `dump_mir`, `dump_mir_with_options`, `dump_polonius_mir`,
`dump_mir_to_writer`. Also, it's crucial that `create_dump_file` is
never called without `dump_enabled` first being checked, but there is no
mechanism for ensuring this and it's hard to tell if it is satisfied on
all paths. (`dump_enabled` is checked twice on some paths, however!)

This commit introduces `MirWriter`, which controls the MIR writing, and
encapsulates the `extra_data` closure and `options`. Two existing
functions are now methods of this type. It sets reasonable defaults,
allowing the removal of many `|_, _| Ok(())` closures.

The commit also introduces `MirDumper`, which is layered on top of
`MirWriter`, and which manages the creation of the dump files,
encapsulating pass names, disambiguators, etc. Four existing functions
are now methods of this type.
- `MirDumper::new` will only succeed if dumps are enabled, and will
  return `None` otherwise, which makes it impossible to dump when you
  shouldn't.
- It also sets reasonable defaults for various things like
  disambiguators, which means you no longer need to specify them in many
  cases. When they do need to be specified, it's now done via setter
  methods.
- It avoids some repetition. E.g. `dump_nll_mir` previously specifed the
  pass name `"nll"` four times and the disambiguator `&0` three times;
  now it specifies them just once, to put them in the `MirDumper`.
- For Polonius, the `extra_data` closure can now be specified earlier,
  which avoids having to pass some arguments through some functions.
2025-09-01 09:19:03 +10:00
Nicholas Nethercote b494d3e73d Avoid unnecessary mut-ness for various closures. 2025-09-01 08:52:34 +10:00
bjorn3 42943a93cc Re-enable x86_64 macOS CI builds 2025-08-29 18:41:14 +00:00
bjorn3 2da17a6384 Rustup to rustc 1.91.0-nightly (cdb45c87e 2025-08-27) 2025-08-28 09:45:53 +00:00
bjorn3 03505e815c Fix rustc test suite 2025-08-24 14:07:32 +00:00
bjorn3 cdab4cc90e Rustup to rustc 1.91.0-nightly (69b76df90 2025-08-23) 2025-08-24 13:22:55 +00:00
bjorn3 dbca51abe6 Temporarily disable x86_64 macOS
Upstream rustc broke it when turning it into a tier 2 target
2025-08-21 13:38:58 +00:00
bjorn3 8c3a60c087 Fix rustc test suite 2025-08-21 13:25:12 +00:00
bjorn3 69d5855ba3 Rustup to rustc 1.91.0-nightly (040a98af7 2025-08-20) 2025-08-21 13:19:08 +00:00
bjorn3 4a47066323 Update libloading
This pulls in a newer version of windows-targets. The region crate still
pulls in the older version though.
2025-08-20 15:31:54 +00:00
bjorn3 8cb157c17d Update to Cranelift 0.123 2025-08-20 15:31:48 +00:00
bjorn3 f4383ffa73 Fix rustc test suite 2025-08-18 16:43:49 +00:00
bjorn3 420235c0f8 Rustup to rustc 1.91.0-nightly (425a9c0a0 2025-08-17) 2025-08-18 16:24:09 +00:00
bjorn3 8691986bf6 Sync from rust 425a9c0a0e 2025-08-18 16:18:17 +00:00
Sasha Pourcelot 69402da11e Port the #[linkage] attribute to the new attribute system 2025-08-13 21:01:37 +02:00
bjorn3 d962e00471 Fix rustc test suite 2025-08-13 13:46:55 +00:00
bjorn3 20cc800415 Rustup to rustc 1.91.0-nightly (8e62bfd31 2025-08-12) 2025-08-13 13:39:03 +00:00
bjorn3 2aec422036 Sync from rust 8e62bfd311 2025-08-13 13:31:05 +00:00
Trevor Gross 10cc2ea427 Rollup merge of #144192 - RalfJung:atomicrmw-ptr, r=nikic
atomicrmw on pointers: move integer-pointer cast hacks into backend

Conceptually, we want to have atomic operations on pointers of the form `fn atomic_add(ptr: *mut T, offset: usize, ...)`. However, LLVM does not directly support such operations (https://github.com/llvm/llvm-project/issues/120837), so we have to cast the `offset` to a pointer somewhere.

This PR moves that hack into the LLVM backend, so that the standard library, intrinsic, and Miri all work with the conceptual operation we actually want. Hopefully, one day LLVM will gain a way to represent these operations without integer-pointer casts, and then the hack will disappear entirely.

Cc ```@nikic``` -- this is the best we can do right now, right?
Fixes https://github.com/rust-lang/rust/issues/134617
2025-08-08 14:22:44 -05:00
bjorn3 f4fde2092b Prevent name collisions with internal implementation details
The implementation of the linkage attribute inside extern blocks defines
symbols starting with _rust_extern_with_linkage_. If someone tries to
also define this symbol you will get a symbol conflict or even an ICE.
By adding an unpredictable component to the symbol name, this becomes
less of an issue.
2025-08-07 13:41:17 +00:00