6d1650fe45
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.
28 lines
881 B
TOML
28 lines
881 B
TOML
[package]
|
|
name = "rustc_expand"
|
|
version = "0.0.0"
|
|
edition = "2021"
|
|
build = false
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
[dependencies]
|
|
rustc_serialize = { path = "../rustc_serialize" }
|
|
tracing = "0.1"
|
|
rustc_span = { path = "../rustc_span" }
|
|
rustc_ast_pretty = { path = "../rustc_ast_pretty" }
|
|
rustc_ast_passes = { path = "../rustc_ast_passes" }
|
|
rustc_attr = { path = "../rustc_attr" }
|
|
rustc_data_structures = { path = "../rustc_data_structures" }
|
|
rustc_errors = { path = "../rustc_errors" }
|
|
rustc_feature = { path = "../rustc_feature" }
|
|
rustc_lint_defs = { path = "../rustc_lint_defs" }
|
|
rustc_macros = { path = "../rustc_macros" }
|
|
rustc_lexer = { path = "../rustc_lexer" }
|
|
rustc_parse = { path = "../rustc_parse" }
|
|
rustc_session = { path = "../rustc_session" }
|
|
smallvec = { version = "1.8.1", features = ["union", "may_dangle"] }
|
|
rustc_ast = { path = "../rustc_ast" }
|
|
crossbeam-channel = "0.5.0"
|