rust/compiler
bors 3f4dc1e02d Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk
Externally implementable items

Supersedes https://github.com/rust-lang/rust/pull/140010
Tracking issue: https://github.com/rust-lang/rust/issues/125418

Getting started:

```rust
#![feature(eii)]

#[eii(eii1)]
pub fn decl1(x: u64)
// body optional (it's the default)
{
    println!("default {x}");
}

// in another crate, maybe
#[eii1]
pub fn decl2(x: u64) {
    println!("explicit {x}");
}

fn main() {
    decl1(4);
}
```

- tiny perf regression, underlying issue makes multiple things in the compiler slow, not just EII, planning to solve those separately.
- No codegen_gcc support, they don't have bindings for weak symbols yet but could
- No windows support yet for weak definitions

This PR merges the implementation of EII for just llvm + not windows, doesn't yet contain like a new panic handler implementation or alloc handler. With this implementation, it would support implementing the panic handler in terms of EII already since it requires no default implementation so no weak symbols

The PR has been open in various forms for about a year now, but I feel that having some implementation merged to build upon
2025-12-14 04:20:26 +00:00
..
rustc Auto merge of #148925 - madsmtm:jemalloc-perf, r=Kobzol 2025-11-23 20:34:07 +00:00
rustc_abi Rollup merge of #145954 - RalfJung:syscall-c-variadics, r=jackh726 2025-11-16 20:30:53 +11:00
rustc_arena fix 2025-11-27 17:55:34 +07:00
rustc_ast Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_ast_ir Implement &pin patterns and ref pin bindings 2025-11-10 09:57:08 +08:00
rustc_ast_lowering Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_ast_passes Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_ast_pretty EII ast changes 2025-12-12 11:17:33 +01:00
rustc_attr_parsing Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_baked_icu_data Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_borrowck Auto merge of #149709 - Urgau:overhaul-filenames, r=davidtwco 2025-12-13 14:32:09 +00:00
rustc_builtin_macros Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_codegen_cranelift Auto merge of #149709 - Urgau:overhaul-filenames, r=davidtwco 2025-12-13 14:32:09 +00:00
rustc_codegen_gcc Auto merge of #149709 - Urgau:overhaul-filenames, r=davidtwco 2025-12-13 14:32:09 +00:00
rustc_codegen_llvm Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_codegen_ssa Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_const_eval Auto merge of #149709 - Urgau:overhaul-filenames, r=davidtwco 2025-12-13 14:32:09 +00:00
rustc_data_structures Weak for Arc pointer is marked as DynSend/DynSync 2025-12-11 16:46:32 +07:00
rustc_driver Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_driver_impl Overhaul filename handling for cross-compiler consistency 2025-12-12 07:33:09 +01:00
rustc_error_codes Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_error_messages Remove unused pop_span_label method 2025-11-21 14:16:12 +00:00
rustc_errors Auto merge of #149709 - Urgau:overhaul-filenames, r=davidtwco 2025-12-13 14:32:09 +00:00
rustc_expand Auto merge of #149709 - Urgau:overhaul-filenames, r=davidtwco 2025-12-13 14:32:09 +00:00
rustc_feature use our own alternative to STD_INTERNAL_SYMBOL and make sure we mangle EIIs properly 2025-12-12 12:14:54 +01:00
rustc_fluent_macro move and rename proc_macro::tracked_{env::var,path::path} 2025-11-26 22:44:25 +01:00
rustc_fs_util Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_graphviz Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_hashes some cleanups in compiler 2025-10-12 08:08:30 +00:00
rustc_hir Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_hir_analysis Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_hir_id rustc_hir_id: Add a comment explaining why the crate exists 2025-08-20 15:04:00 -07:00
rustc_hir_pretty remove support for type-of 2025-11-25 10:19:44 +01:00
rustc_hir_typeck Rollup merge of #149177 - chenyukang:yukang-fix-assoc-func-149038, r=estebank 2025-12-13 00:55:55 -05:00
rustc_incremental Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_index Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_index_macros Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_infer Moved struct Placeholder<T> 2025-12-09 13:40:18 +00:00
rustc_interface Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_lexer Update memchr to 2.7.6 2025-09-26 17:53:49 +02:00
rustc_lint #![deny(clippy::manual_let_else)] in some rustc modules 2025-12-12 17:53:19 +00:00
rustc_lint_defs declare_lint_pass for INLINE_ALWAYS_MISMATCHING_TARGET_FEATURES 2025-12-12 13:25:21 +00:00
rustc_llvm Fix for LLVM22 making lowering decisions dependent on RuntimeLibraryInfo. 2025-12-04 20:23:00 +00:00
rustc_log Restrict sysroot crate imports to those defined in this repo. 2025-10-15 13:17:25 +01:00
rustc_macros Rollup merge of #149400 - Skgland:tracked_mod, r=Amanieu 2025-12-09 17:36:48 +01:00
rustc_metadata Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_middle Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_mir_build add check for uninhabited types along side never 2025-12-09 13:18:09 +00:00
rustc_mir_dataflow Use let...else instead of match foo { ... _ => return }; and if let ... else return 2025-12-12 17:52:39 +00:00
rustc_mir_transform Use let...else instead of match foo { ... _ => return }; and if let ... else return 2025-12-12 17:52:39 +00:00
rustc_monomorphize Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_next_trait_solver revert one change from rustc_next_trait_solver 2025-12-12 17:55:26 +00:00
rustc_parse Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_parse_format Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_passes Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_pattern_analysis fix: Do not ICE when missing match arm with ill-formed subty is met 2025-11-13 01:36:35 +09:00
rustc_privacy Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_proc_macro Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_public Rollup merge of #149401 - celinval:smir-109-name, r=scottmcm 2025-12-06 09:57:59 +01:00
rustc_public_bridge Overhaul filename handling for cross-compiler consistency 2025-12-12 07:33:09 +01:00
rustc_query_impl Lock shards while collecting active jobs. 2025-11-14 09:01:22 +08:00
rustc_query_system Also check in case it tries to mark red node as green 2025-12-12 16:44:17 +03:00
rustc_resolve Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_sanitizers Rollup merge of #144936 - rcvalle:rust-cfi-fix-144641, r=lcnr 2025-10-28 20:39:32 +11:00
rustc_serialize Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_session Somewhat retire Options::working_dir in favor SourceMap::working_dir 2025-12-12 07:34:52 +01:00
rustc_span Auto merge of #146348 - jdonszelmann:eiiv3, r=lcnr,oli-obk 2025-12-14 04:20:26 +00:00
rustc_symbol_mangling Rollup merge of #148452 - Fulgen301:pdb-large-symbols-v0, r=jackh726 2025-11-26 23:32:05 +11:00
rustc_target Rollup merge of #149679 - pmur:murp/ppc-inline-improvements, r=Amanieu 2025-12-10 07:54:20 +01:00
rustc_thread_pool some cleanups in compiler 2025-10-12 08:08:30 +00:00
rustc_trait_selection EII type checking 2025-12-12 11:28:58 +01:00
rustc_traits add const_of_item query and use it in normalization 2025-11-08 13:50:47 -05:00
rustc_transmute prefer to use repeat_n over repeat and take 2025-10-09 01:24:55 +08:00
rustc_ty_utils Rollup merge of #149433 - scottmcm:delay-layout-ICEs, r=jdonszelmann 2025-12-01 18:35:11 +01:00
rustc_type_ir Moved struct Placeholder<T> 2025-12-09 13:40:18 +00:00
rustc_type_ir_macros compiler: Fix a couple issues around cargo feature unification 2025-10-31 14:14:05 -04:00
rustc_windows_rc [win] Use find-msvc-tools instead of cc to find the linker and rc on Windows 2025-09-19 12:00:30 -07:00