rust/library/proc_macro/src/bridge
Nika Layzell 6d1650fe45 proc_macro: use crossbeam channels for the proc_macro cross-thread bridge
This is done by having the crossbeam dependency inserted into the
proc_macro server code from the server side, to avoid adding a
dependency to proc_macro.

In addition, this introduces a -Z command-line option which will switch
rustc to run proc-macros using this cross-thread executor. With the
changes to the bridge in #98186, #98187, #98188 and #98189, the
performance of the executor should be much closer to same-thread
execution.

In local testing, the crossbeam executor was substantially more
performant than either of the two existing CrossThread strategies, so
they have been removed to keep things simple.
2022-07-29 17:38:12 -04:00
..
arena.rs proc_macro: stop using a remote object handle for Ident 2022-07-18 12:59:14 -04:00
buffer.rs Inline bridge::Buffer methods. 2022-06-01 09:21:35 +10:00
client.rs proc_macro: stop using a remote object handle for Literal 2022-07-18 13:06:51 -04:00
closure.rs Add some comments about _marker fields. 2022-05-27 15:58:35 +10:00
fxhash.rs proc_macro: use fxhash within the proc_macro crate 2022-07-18 12:59:14 -04:00
handle.rs proc_macro: use fxhash within the proc_macro crate 2022-07-18 12:59:14 -04:00
mod.rs proc_macro: Move subspan to be a method on Span in the bridge 2022-07-18 13:06:51 -04:00
rpc.rs review fixups 2022-06-17 22:10:07 -04:00
scoped_cell.rs Remove some unnecessary rustc_allow_const_fn_unstable attributes. 2022-05-13 16:01:18 +10:00
selfless_reify.rs proc_macro: cache static spans in client's thread-local state 2022-06-25 10:28:11 -04:00
server.rs proc_macro: use crossbeam channels for the proc_macro cross-thread bridge 2022-07-29 17:38:12 -04:00
symbol.rs proc_macro: stop using a remote object handle for Ident 2022-07-18 12:59:14 -04:00