about summary refs log tree commit diff
path: root/compiler/rustc_abi/src/extern_abi.rs
AgeCommit message (Collapse)AuthorLines
2025-09-02stabilize extended_varargs_abi_supportRalf Jung-3/+22
2025-08-20Move `IntoDiagArg` earlier in the dependency chainsJosh Triplett-0/+3
`rustc_errors` depends on numerous crates, solely to implement its `IntoDiagArg` trait on types from those crates. Many crates depend on `rustc_errors`, and it's on the critical path. We can't swap things around to make all of those crates depend on `rustc_errors` instead, because `rustc_errors` would end up in dependency cycles. Instead, move `IntoDiagArg` into `rustc_error_messages`, which has far fewer dependencies, and then have most of these crates depend on `rustc_error_messages`. This allows `rustc_errors` to drop dependencies on several crates, including the large `rustc_target`. (This doesn't fully reduce dependency chains yet, as `rustc_errors` still depends on `rustc_hir` which depends on `rustc_target`. That will get fixed in a subsequent commit.)
2025-06-25compiler: Trim the misleading C from ExternAbi::CCmse*Jubilee Young-4/+4
2025-06-24Add rust-invalid ABIMichael Goulet-0/+5
2025-06-12add `extern "custom"` functionsFolkert de Vries-0/+6
2025-06-06compiler: Remove superfluous renaming import of ExternAbiJubilee Young-3/+1
2025-06-06compiler: Sort and doc ExternAbi variantsJubilee Young-33/+62
2025-05-31compiler: add CanonAbiJubilee Young-5/+2
2025-04-06remove compiler support for `extern "rust-intrinsic"` blocksSkgland-3/+1
2025-03-04compiler: add `ExternAbi::is_rustic_abi`Jubilee Young-0/+11
2025-02-12Split out the `extern_system_varargs` featureJubilee Young-2/+0
After the stabilization PR was opened, `extern "system"` functions were added to `extended_varargs_abi_support`. This has a number of questions regarding it that were not discussed and were somewhat surprising. It deserves to be considered as its own feature, separate from `extended_varargs_abi_support`.
2025-02-11compiler: remove rustc_abi::lookup and AbiUnsupportedJubilee Young-8/+1
These can be entirely replaced by the FromStr implementation.
2025-02-11compiler: remove AbiDatasJubilee Young-114/+2
These were a way to ensure hashes were stable over time for ExternAbi, but simply hashing the strings is more stable in the face of changes. As a result, we can do away with them.
2025-02-11compiler: compare and hash ExternAbi like its stringJubilee Young-12/+129
Directly map each ExternAbi variant to its string and back again. This has a few advantages: - By making the ABIs compare equal to their strings, we can easily lexicographically sort them and use that sorted slice at runtime. - We no longer need a workaround to make sure the hashes remain stable, as they already naturally are (by being the hashes of unique strings). - The compiler can carry around less &str wide pointers
2025-02-11compiler: narrow scope of nightly cfg in rustc_abiJubilee Young-1/+2
2025-02-09compiler: remove `abi`-specific `extern "{abi}"` suggestionsJubilee Young-19/+6
These are either residue of a long-term migration away from something, or are simply trying too hard to be specifically useful: nearest-match suggestions for ABI strings should handle this.
2025-02-09compiler: gate `extern "{abi}"` in ast_loweringJubilee Young-102/+3
By moving this stability check into AST lowering, we effectively make it impossible to accidentally miss, as it must happen to generate HIR. Also, we put the ABI-stability code next to code that actually uses it! This allows code that wants to reason about backend ABI implementations to stop worrying about high-level concerns like syntax stability, while still leaving it as the authority on what ABIs actually exist. It also makes it easy to refactor things to have more consistent errors. For now, we only apply this to generalize the existing messages a bit.
2025-02-06compiler: reorganize rustc_abi to be more internally uniformJubilee Young-0/+347
General housekeeping: - Use less reexports from its rustc_target era - Unify some imports as a result - Split the Reg(ister) types into their own files Generally moving stuff around because it makes the crate more consistent.