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. |
||
|---|---|---|
| .. | ||
| callbacks.rs | ||
| interface.rs | ||
| lib.rs | ||
| passes.rs | ||
| proc_macro_decls.rs | ||
| queries.rs | ||
| tests.rs | ||
| util.rs | ||