Skip to content

Commit ff04b6a

Browse files
committed
Add rustc_fluent_macro to decouple fluent from rustc_macros
Fluent, with all the icu4x it brings in, takes quite some time to compile. `fluent_messages!` is only needed in further downstream rustc crates, but is blocking more upstream crates like `rustc_index`. By splitting it out, we allow `rustc_macros` to be compiled earlier, which speeds up `x check compiler` by about 5 seconds (and even more after the needless dependency on `serde_json` is removed from `rustc_data_structures`).
1 parent e6e956d commit ff04b6a

File tree

81 files changed

+397
-293
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+397
-293
lines changed

Cargo.lock

+47-4
Original file line numberDiff line numberDiff line change
@@ -4346,6 +4346,7 @@ dependencies = [
43464346
"rustc_ast_pretty",
43474347
"rustc_data_structures",
43484348
"rustc_errors",
4349+
"rustc_fluent_macro",
43494350
"rustc_hir",
43504351
"rustc_index",
43514352
"rustc_macros",
@@ -4369,6 +4370,7 @@ dependencies = [
43694370
"rustc_data_structures",
43704371
"rustc_errors",
43714372
"rustc_feature",
4373+
"rustc_fluent_macro",
43724374
"rustc_macros",
43734375
"rustc_parse",
43744376
"rustc_session",
@@ -4396,6 +4398,7 @@ dependencies = [
43964398
"rustc_data_structures",
43974399
"rustc_errors",
43984400
"rustc_feature",
4401+
"rustc_fluent_macro",
43994402
"rustc_lexer",
44004403
"rustc_macros",
44014404
"rustc_serialize",
@@ -4424,6 +4427,7 @@ dependencies = [
44244427
"rustc_const_eval",
44254428
"rustc_data_structures",
44264429
"rustc_errors",
4430+
"rustc_fluent_macro",
44274431
"rustc_graphviz",
44284432
"rustc_hir",
44294433
"rustc_index",
@@ -4453,6 +4457,7 @@ dependencies = [
44534457
"rustc_errors",
44544458
"rustc_expand",
44554459
"rustc_feature",
4460+
"rustc_fluent_macro",
44564461
"rustc_lexer",
44574462
"rustc_lint_defs",
44584463
"rustc_macros",
@@ -4481,6 +4486,7 @@ dependencies = [
44814486
"rustc_codegen_ssa",
44824487
"rustc_data_structures",
44834488
"rustc_errors",
4489+
"rustc_fluent_macro",
44844490
"rustc_fs_util",
44854491
"rustc_hir",
44864492
"rustc_index",
@@ -4518,6 +4524,7 @@ dependencies = [
45184524
"rustc_attr",
45194525
"rustc_data_structures",
45204526
"rustc_errors",
4527+
"rustc_fluent_macro",
45214528
"rustc_fs_util",
45224529
"rustc_hir",
45234530
"rustc_incremental",
@@ -4550,6 +4557,7 @@ dependencies = [
45504557
"rustc_attr",
45514558
"rustc_data_structures",
45524559
"rustc_errors",
4560+
"rustc_fluent_macro",
45534561
"rustc_hir",
45544562
"rustc_index",
45554563
"rustc_infer",
@@ -4624,6 +4632,7 @@ dependencies = [
46244632
"rustc_errors",
46254633
"rustc_expand",
46264634
"rustc_feature",
4635+
"rustc_fluent_macro",
46274636
"rustc_hir",
46284637
"rustc_hir_analysis",
46294638
"rustc_hir_pretty",
@@ -4672,6 +4681,7 @@ dependencies = [
46724681
"intl-memoizer",
46734682
"rustc_baked_icu_data",
46744683
"rustc_data_structures",
4684+
"rustc_fluent_macro",
46754685
"rustc_macros",
46764686
"rustc_serialize",
46774687
"rustc_span",
@@ -4688,6 +4698,7 @@ dependencies = [
46884698
"rustc_ast_pretty",
46894699
"rustc_data_structures",
46904700
"rustc_error_messages",
4701+
"rustc_fluent_macro",
46914702
"rustc_hir",
46924703
"rustc_lint_defs",
46934704
"rustc_macros",
@@ -4716,6 +4727,7 @@ dependencies = [
47164727
"rustc_data_structures",
47174728
"rustc_errors",
47184729
"rustc_feature",
4730+
"rustc_fluent_macro",
47194731
"rustc_lexer",
47204732
"rustc_lint_defs",
47214733
"rustc_macros",
@@ -4736,6 +4748,20 @@ dependencies = [
47364748
"rustc_span",
47374749
]
47384750

4751+
[[package]]
4752+
name = "rustc_fluent_macro"
4753+
version = "0.1.0"
4754+
dependencies = [
4755+
"annotate-snippets",
4756+
"fluent-bundle",
4757+
"fluent-syntax",
4758+
"proc-macro2",
4759+
"quote",
4760+
"syn 2.0.8",
4761+
"synstructure 0.13.0",
4762+
"unic-langid",
4763+
]
4764+
47394765
[[package]]
47404766
name = "rustc_fs_util"
47414767
version = "0.0.0"
@@ -4772,6 +4798,7 @@ dependencies = [
47724798
"rustc_data_structures",
47734799
"rustc_errors",
47744800
"rustc_feature",
4801+
"rustc_fluent_macro",
47754802
"rustc_hir",
47764803
"rustc_index",
47774804
"rustc_infer",
@@ -4806,6 +4833,7 @@ dependencies = [
48064833
"rustc_ast",
48074834
"rustc_data_structures",
48084835
"rustc_errors",
4836+
"rustc_fluent_macro",
48094837
"rustc_graphviz",
48104838
"rustc_hir",
48114839
"rustc_hir_analysis",
@@ -4833,6 +4861,7 @@ dependencies = [
48334861
"rustc_ast",
48344862
"rustc_data_structures",
48354863
"rustc_errors",
4864+
"rustc_fluent_macro",
48364865
"rustc_fs_util",
48374866
"rustc_graphviz",
48384867
"rustc_hir",
@@ -4861,6 +4890,7 @@ version = "0.0.0"
48614890
dependencies = [
48624891
"rustc_data_structures",
48634892
"rustc_errors",
4893+
"rustc_fluent_macro",
48644894
"rustc_hir",
48654895
"rustc_index",
48664896
"rustc_macros",
@@ -4891,6 +4921,7 @@ dependencies = [
48914921
"rustc_data_structures",
48924922
"rustc_errors",
48934923
"rustc_expand",
4924+
"rustc_fluent_macro",
48944925
"rustc_fs_util",
48954926
"rustc_hir",
48964927
"rustc_hir_analysis",
@@ -4940,6 +4971,7 @@ dependencies = [
49404971
"rustc_data_structures",
49414972
"rustc_errors",
49424973
"rustc_feature",
4974+
"rustc_fluent_macro",
49434975
"rustc_hir",
49444976
"rustc_index",
49454977
"rustc_infer",
@@ -4993,14 +5025,10 @@ dependencies = [
49935025
name = "rustc_macros"
49945026
version = "0.1.0"
49955027
dependencies = [
4996-
"annotate-snippets",
4997-
"fluent-bundle",
4998-
"fluent-syntax",
49995028
"proc-macro2",
50005029
"quote",
50015030
"syn 2.0.8",
50025031
"synstructure 0.13.0",
5003-
"unic-langid",
50045032
]
50055033

50065034
[[package]]
@@ -5016,6 +5044,7 @@ dependencies = [
50165044
"rustc_errors",
50175045
"rustc_expand",
50185046
"rustc_feature",
5047+
"rustc_fluent_macro",
50195048
"rustc_fs_util",
50205049
"rustc_hir",
50215050
"rustc_hir_pretty",
@@ -5053,6 +5082,7 @@ dependencies = [
50535082
"rustc_error_messages",
50545083
"rustc_errors",
50555084
"rustc_feature",
5085+
"rustc_fluent_macro",
50565086
"rustc_graphviz",
50575087
"rustc_hir",
50585088
"rustc_index",
@@ -5078,6 +5108,7 @@ dependencies = [
50785108
"rustc_ast",
50795109
"rustc_data_structures",
50805110
"rustc_errors",
5111+
"rustc_fluent_macro",
50815112
"rustc_hir",
50825113
"rustc_index",
50835114
"rustc_infer",
@@ -5101,6 +5132,7 @@ dependencies = [
51015132
"rustc_ast",
51025133
"rustc_data_structures",
51035134
"rustc_errors",
5135+
"rustc_fluent_macro",
51045136
"rustc_graphviz",
51055137
"rustc_hir",
51065138
"rustc_index",
@@ -5144,6 +5176,7 @@ version = "0.0.0"
51445176
dependencies = [
51455177
"rustc_data_structures",
51465178
"rustc_errors",
5179+
"rustc_fluent_macro",
51475180
"rustc_hir",
51485181
"rustc_index",
51495182
"rustc_macros",
@@ -5167,6 +5200,7 @@ dependencies = [
51675200
"rustc_data_structures",
51685201
"rustc_errors",
51695202
"rustc_feature",
5203+
"rustc_fluent_macro",
51705204
"rustc_lexer",
51715205
"rustc_macros",
51725206
"rustc_session",
@@ -5197,6 +5231,7 @@ dependencies = [
51975231
"rustc_errors",
51985232
"rustc_expand",
51995233
"rustc_feature",
5234+
"rustc_fluent_macro",
52005235
"rustc_hir",
52015236
"rustc_index",
52025237
"rustc_lexer",
@@ -5217,6 +5252,7 @@ dependencies = [
52175252
"libloading",
52185253
"rustc_ast",
52195254
"rustc_errors",
5255+
"rustc_fluent_macro",
52205256
"rustc_lint",
52215257
"rustc_macros",
52225258
"rustc_metadata",
@@ -5232,6 +5268,7 @@ dependencies = [
52325268
"rustc_attr",
52335269
"rustc_data_structures",
52345270
"rustc_errors",
5271+
"rustc_fluent_macro",
52355272
"rustc_hir",
52365273
"rustc_hir_analysis",
52375274
"rustc_macros",
@@ -5273,6 +5310,7 @@ dependencies = [
52735310
"rustc_data_structures",
52745311
"rustc_errors",
52755312
"rustc_feature",
5313+
"rustc_fluent_macro",
52765314
"rustc_hir",
52775315
"rustc_index",
52785316
"rustc_macros",
@@ -5300,6 +5338,7 @@ dependencies = [
53005338
"rustc_errors",
53015339
"rustc_expand",
53025340
"rustc_feature",
5341+
"rustc_fluent_macro",
53035342
"rustc_hir",
53045343
"rustc_index",
53055344
"rustc_macros",
@@ -5333,6 +5372,7 @@ dependencies = [
53335372
"rustc_data_structures",
53345373
"rustc_errors",
53355374
"rustc_feature",
5375+
"rustc_fluent_macro",
53365376
"rustc_fs_util",
53375377
"rustc_hir",
53385378
"rustc_index",
@@ -5384,6 +5424,7 @@ dependencies = [
53845424
"rustc-demangle",
53855425
"rustc_data_structures",
53865426
"rustc_errors",
5427+
"rustc_fluent_macro",
53875428
"rustc_hir",
53885429
"rustc_macros",
53895430
"rustc_middle",
@@ -5426,6 +5467,7 @@ dependencies = [
54265467
"rustc_attr",
54275468
"rustc_data_structures",
54285469
"rustc_errors",
5470+
"rustc_fluent_macro",
54295471
"rustc_hir",
54305472
"rustc_index",
54315473
"rustc_infer",
@@ -5483,6 +5525,7 @@ version = "0.0.0"
54835525
dependencies = [
54845526
"rustc_data_structures",
54855527
"rustc_errors",
5528+
"rustc_fluent_macro",
54865529
"rustc_hir",
54875530
"rustc_index",
54885531
"rustc_infer",

compiler/rustc_ast_lowering/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ rustc_ast_pretty = { path = "../rustc_ast_pretty" }
1212
rustc_data_structures = { path = "../rustc_data_structures" }
1313
rustc_errors = { path = "../rustc_errors" }
1414
rustc_hir = { path = "../rustc_hir" }
15+
rustc_fluent_macro = { path = "../rustc_fluent_macro" }
1516
rustc_index = { path = "../rustc_index" }
1617
rustc_middle = { path = "../rustc_middle" }
1718
rustc_macros = { path = "../rustc_macros" }

compiler/rustc_ast_lowering/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@ use rustc_data_structures::sync::Lrc;
5555
use rustc_errors::{
5656
DiagnosticArgFromDisplay, DiagnosticMessage, Handler, StashKey, SubdiagnosticMessage,
5757
};
58+
use rustc_fluent_macro::fluent_messages;
5859
use rustc_hir as hir;
5960
use rustc_hir::def::{DefKind, LifetimeRes, Namespace, PartialRes, PerNS, Res};
6061
use rustc_hir::def_id::{LocalDefId, CRATE_DEF_ID};
6162
use rustc_hir::definitions::DefPathData;
6263
use rustc_hir::{ConstArg, GenericArg, ItemLocalId, ParamName, TraitCandidate};
6364
use rustc_index::vec::{Idx, IndexSlice, IndexVec};
64-
use rustc_macros::fluent_messages;
6565
use rustc_middle::{
6666
span_bug,
6767
ty::{ResolverAstLowering, TyCtxt},

compiler/rustc_ast_passes/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ rustc_data_structures = { path = "../rustc_data_structures" }
1212
rustc_errors = { path = "../rustc_errors" }
1313
rustc_feature = { path = "../rustc_feature" }
1414
rustc_macros = { path = "../rustc_macros" }
15+
rustc_fluent_macro = { path = "../rustc_fluent_macro" }
1516
rustc_parse = { path = "../rustc_parse" }
1617
rustc_session = { path = "../rustc_session" }
1718
rustc_span = { path = "../rustc_span" }

compiler/rustc_ast_passes/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#![deny(rustc::diagnostic_outside_of_impl)]
1414

1515
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
16-
use rustc_macros::fluent_messages;
16+
use rustc_fluent_macro::fluent_messages;
1717

1818
pub mod ast_validation;
1919
mod errors;

compiler/rustc_attr/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ edition = "2021"
99
rustc_ast_pretty = { path = "../rustc_ast_pretty" }
1010
rustc_serialize = { path = "../rustc_serialize" }
1111
rustc_errors = { path = "../rustc_errors" }
12+
rustc_fluent_macro = { path = "../rustc_fluent_macro" }
1213
rustc_span = { path = "../rustc_span" }
1314
rustc_data_structures = { path = "../rustc_data_structures" }
1415
rustc_feature = { path = "../rustc_feature" }

compiler/rustc_attr/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
extern crate rustc_macros;
1313

1414
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
15-
use rustc_macros::fluent_messages;
15+
use rustc_fluent_macro::fluent_messages;
1616

1717
mod builtin;
1818
mod session_diagnostics;

compiler/rustc_borrowck/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ rustc_data_structures = { path = "../rustc_data_structures" }
1515
rustc_errors = { path = "../rustc_errors" }
1616
rustc_graphviz = { path = "../rustc_graphviz" }
1717
rustc_hir = { path = "../rustc_hir" }
18+
rustc_fluent_macro = { path = "../rustc_fluent_macro" }
1819
rustc_index = { path = "../rustc_index" }
1920
rustc_infer = { path = "../rustc_infer" }
2021
rustc_lexer = { path = "../rustc_lexer" }

compiler/rustc_borrowck/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ extern crate tracing;
2020
use rustc_data_structures::fx::{FxIndexMap, FxIndexSet};
2121
use rustc_data_structures::graph::dominators::Dominators;
2222
use rustc_errors::{Diagnostic, DiagnosticBuilder, DiagnosticMessage, SubdiagnosticMessage};
23+
use rustc_fluent_macro::fluent_messages;
2324
use rustc_hir as hir;
2425
use rustc_hir::def_id::LocalDefId;
2526
use rustc_index::bit_set::ChunkedBitSet;
2627
use rustc_index::vec::{IndexSlice, IndexVec};
2728
use rustc_infer::infer::{
2829
DefiningAnchor, InferCtxt, NllRegionVariableOrigin, RegionVariableOrigin, TyCtxtInferExt,
2930
};
30-
use rustc_macros::fluent_messages;
3131
use rustc_middle::mir::{
3232
traversal, Body, ClearCrossCrate, Local, Location, Mutability, NonDivergingIntrinsic, Operand,
3333
Place, PlaceElem, PlaceRef, VarDebugInfoContents,

compiler/rustc_builtin_macros/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ rustc_feature = { path = "../rustc_feature" }
1717
rustc_lexer = { path = "../rustc_lexer" }
1818
rustc_lint_defs = { path = "../rustc_lint_defs" }
1919
rustc_macros = { path = "../rustc_macros" }
20+
rustc_fluent_macro = { path = "../rustc_fluent_macro" }
2021
rustc_parse_format = { path = "../rustc_parse_format" }
2122
rustc_parse = { path = "../rustc_parse" }
2223
rustc_session = { path = "../rustc_session" }

compiler/rustc_builtin_macros/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use crate::deriving::*;
2424
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
2525
use rustc_expand::base::{MacroExpanderFn, ResolverExpand, SyntaxExtensionKind};
2626
use rustc_expand::proc_macro::BangProcMacro;
27-
use rustc_macros::fluent_messages;
27+
use rustc_fluent_macro::fluent_messages;
2828
use rustc_span::symbol::sym;
2929

3030
mod alloc_error_handler;

0 commit comments

Comments
 (0)