rust/library
bors 74fd7516da Auto merge of #147893 - fee1-dead-contrib:constheapheapheap, r=oli-obk
`Vec::push` in consts MVP

Example:

```rust
const X: &'static [u32] = {
    let mut v = Vec::with_capacity(6);
    let mut x = 1;
    while x < 42 {
        v.push(x);
        x *= 2;
    }
    assert!(v.len() == 6);
    v.const_make_global()
};

assert_eq!([1, 2, 4, 8, 16, 32], X);
```

Oh this is fun...

* We split out the implementation of `Global` such that it calls `intrinsics::const_allocate` and `intrinsics::const_deallocate` during compile time. This is achieved using `const_eval_select`
* This allows us to `impl const Allocator for Global`
* We then constify everything necessary for `Vec::with_capacity` and `Vec::push`.
* Added `Vec::const_make_global` to leak and intern the final value via `intrinsics::const_make_global`. If we see any pointer in the final value of a `const` that did not call `const_make_global`, we error as implemented in rust-lang/rust#143595.

r? `@rust-lang/wg-const-eval`

To-do for me:
* [x] Assess the rustdoc impact of additional bounds in the method
* [x] ~~Increase test coverage~~ I think this is enough for an unstable feature.
2026-01-06 11:39:17 +00:00
..
alloc Auto merge of #147893 - fee1-dead-contrib:constheapheapheap, r=oli-obk 2026-01-06 11:39:17 +00:00
alloctests Auto merge of #147893 - fee1-dead-contrib:constheapheapheap, r=oli-obk 2026-01-06 11:39:17 +00:00
backtrace@b65ab935fb Update the backtrace submodule 2025-06-16 07:00:13 +00:00
compiler-builtins Auto merge of #150357 - ZuseZ4:zusez4-stdarch-push, r=sayantan 2025-12-26 10:44:27 +00:00
core Auto merge of #147893 - fee1-dead-contrib:constheapheapheap, r=oli-obk 2026-01-06 11:39:17 +00:00
coretests Rollup merge of #147499 - josh-kaplan:master, r=Mark-Simulacrum 2025-12-28 18:16:09 +01:00
panic_abort Use core via rustc-std-workspace-core in library/panic* 2025-07-31 22:47:24 +00:00
panic_unwind Fix new function_casts_as_integer lint errors in core, std, panic_unwind and compiler crates 2025-11-10 16:38:28 +01:00
portable-simd Remove more #[must_use] from portable-simd 2025-11-11 13:27:04 -08:00
proc_macro test and document that proc_macro::Ident is NFC-normalized 2025-12-27 13:52:40 +00:00
profiler_builtins Fix profiler_builtins build script to handle full path to profiler lib 2025-04-11 16:57:38 +02:00
rtstartup Update cfg(bootstrap) 2025-07-01 10:55:49 -07:00
rustc-std-workspace-alloc Disable unit tests for stdlib packages that don't contain any 2025-07-24 09:15:28 +00:00
rustc-std-workspace-core Use core via rustc-std-workspace-core in library/panic* 2025-07-31 22:47:24 +00:00
rustc-std-workspace-std Disable unit tests for stdlib packages that don't contain any 2025-07-24 09:15:28 +00:00
std Auto merge of #143741 - connortsui20:oneshot, r=joboet 2026-01-05 11:35:43 +00:00
std_detect Auto merge of #145948 - a4lg:riscv-stabilize-target-features-v2, r=Amanieu 2026-01-03 07:26:35 +00:00
stdarch Merge pull request #1984 from rust-lang/rustc-pull 2026-01-03 03:33:46 +00:00
sysroot add autodiff examples 2025-11-16 23:35:37 -05:00
test rustdoc: Write newline differently 2025-12-13 16:31:09 +09:00
unwind Correct hexagon "unwinder_private_data_size" 2025-12-29 15:21:09 -06:00
windows_targets Rollup merge of #144399 - bjorn3:stdlib_tests_separate_packages, r=Mark-Simulacrum 2025-07-28 08:36:53 +02:00
Cargo.lock std: switch to moto-rt v0.16.0 2025-12-19 15:48:47 -08:00
Cargo.toml Remove the std workspace patch for compiler-builtins 2025-08-19 18:56:35 +00:00