rust/library
bors 536606bc5d Auto merge of #122939 - joboet:proc_macro_bridge_state, r=petrochenkov
Simplify proc macro bridge state

Currently, `proc_macro` uses a `ScopedCell` to store the client-side proc-macro bridge. Unfortunately, this requires the `Bridge`, which has non-negligible size, to be copied out and back again on every access. In some cases, the optimizer might be able to elide these copies, but in general, this is suboptimal.

This PR removes `ScopedCell` and employs a similar trick as in [`scoped_tls`](https://crates.io/crates/scoped-tls), meaning that the only thing stored in TLS is a pointer to the state, which now is a `RefCell`. Access to the pointer is then scoped so that it is always within the lifetime of the reference to the state. Unfortunately, `scoped_tls` requires the referenced type to be `'static`, which `Bridge` is not, therefore we cannot simply copy that macro but have to reimplement its TLS trick.

This removes the `#[forbid(unsafe_code)]` on the `client` module so that we do not have to export `Bridge`, which currently is private, to the whole crate. I can change that, if necessary.
2024-03-26 13:05:59 +00:00
..
alloc Rollup merge of #122707 - reedwoodruff:string_docs_typo, r=workingjubilee 2024-03-25 14:35:34 -07:00
backtrace@6fa4b85b99 Use rust-lang/backtrace-rs@6fa4b85 2024-03-14 12:37:43 -07:00
core Rollup merge of #123042 - dpaoliello:prelude, r=Nilstrieb 2024-03-25 14:35:37 -07:00
panic_abort Cleanup windows abort_internal 2024-03-02 18:22:15 +00:00
panic_unwind SeqCst->Relaxed in panic_unwind/emcc. 2024-03-19 15:27:11 +01:00
portable-simd Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00
proc_macro proc_macro: simplify bridge state 2024-03-23 12:15:11 +01:00
profiler_builtins Update version of cc crate 2024-03-14 16:42:15 +00:00
rtstartup library: Fix warnings in rtstartup 2024-01-06 01:32:03 +03:00
rustc-std-workspace-alloc
rustc-std-workspace-core
rustc-std-workspace-std
std Rollup merge of #122992 - devnexen:available_parallelism_sol_upd, r=Amanieu 2024-03-24 17:08:19 +01:00
stdarch@967e7afd87 Update stdarch submodule 2024-03-22 12:16:16 -07:00
sysroot Expose compiler-builtins-weak-intrinsics feature for -Zbuild-std 2023-06-23 11:15:34 +01:00
test Remove unused fields in some structures 2024-03-12 10:59:40 +01:00
unwind Fix compile of wasm64-unknown-unknown target 2024-03-20 14:55:02 -07:00