3
3
| Metadata | |
4
4
| ----------| ---------------|
5
5
| Owner(s) | @joshtriplett |
6
- | Teams | [ lang] |
6
+ | Teams | [ lang] , [ wg-macros ] |
7
7
| Status | Proposed |
8
8
9
9
## Summary
@@ -18,10 +18,7 @@ features, to encourage crate authors to try them and provide feedback, and to
18
18
plan transitions within the ecosystem.
19
19
20
20
The scope of this goal is an arc of many related RFCs that tell a complete
21
- story. The scope of this goal does not encompass the full implementation work,
22
- though I commit to spending time iterating on the design with potential
23
- implementers, and to shepherding and handling procedural matters (e.g.
24
- stabilization reports) as needed.
21
+ story, as well as the implementation of the first few steps.
25
22
26
23
## Motivation
27
24
@@ -54,8 +51,8 @@ their dependencies.
54
51
### The next 6 months
55
52
56
53
Over the next 6 months, I'll propose RFCs to improve the current state of
57
- declarative (` macro_rules! ` ) macros, and work to get those RFCs accepted. Those
58
- RFCs together will enable:
54
+ declarative (` macro_rules! ` ) macros, and work with @ eholk and @ vincenzopalazzo
55
+ to get those RFCs implemented. Those RFCs together will enable:
59
56
60
57
- Using ` macro_rules! ` to define attribute macros (` #[attr] ` )
61
58
- Using ` macro_rules! ` to define derive macros (` #[derive(Trait)] ` )
@@ -77,9 +74,10 @@ language. I expect these to reach pre-RFC form and be suitable for discussion
77
74
at RustWeek in May 2025, and hopefully reach consensus, but I do not expect
78
75
them to be fully accepted or shipped in the next 6 months.
79
76
80
- There is already a wg-macros team. I've spoken with @eholk on that team about
81
- revitalizing that team, and considering policy and potential delegation from
82
- [ lang] , in a similar spirit to wg-const-eval, t-types, and t-opsem.
77
+ In addition, as part of this goal, I intend to work with @eholk and
78
+ @vincenzopalazzo to revitalize the wg-macros team, and evaluate potential
79
+ policies and delegations from [ lang] , in a similar spirit to wg-const-eval,
80
+ t-types, and t-opsem.
83
81
84
82
Much as with the const eval system, I expect this to be a long incremental
85
83
road, with regular improvements to capabilities and simplicity. Crate authors
@@ -131,20 +129,34 @@ could reserve such syntax in all editions.
131
129
132
130
| Task | Owner(s) or team(s) | Notes |
133
131
| --------------------------------------------------| ---------------------| --------------------------------------------------------------------------------------------|
134
- | Discussion and moral support | ![ Team] [ ] [ lang] | |
135
132
| Propose discussion session at RustWeek | @joshtriplett | |
136
- | Inside Rust blog post on attribute/derive macros | @joshtriplett | |
137
- | Inside Rust blog post on additional capabilities | @joshtriplett | |
138
- | Policy decision | ![ Team] [ ] [ lang] | Discussed with @eholk ; lang would decide whether to delegate specific matters to wg-macros |
133
+ | Policy decision | ![ Team] [ ] [ lang] [ wg-macros] | Discussed with @eholk and @vincenzopalazzo ; lang would decide whether to delegate specific matters to wg-macros |
139
134
140
- ### Design for ` macro_rules! ` attributes/derives
135
+ ### ` macro_rules! ` attributes
141
136
142
137
| Task | Owner(s) or team(s) | Notes |
143
138
| ----------------------------------------| ---------------------| -------|
144
139
| Author/revise/iterate RFCs | @joshtriplett | |
145
140
| Prioritized nominations | ![ Team] [ ] [ lang] | |
146
141
| RFC decision | ![ Team] [ ] [ lang] | |
142
+ | Implementation of RFC | @eholk , @vincenzopalazzo | |
147
143
| Iterate on design as needed | @joshtriplett | |
144
+ | Inside Rust blog post on attribute macros | @joshtriplett | |
145
+ | Process feedback from crate authors | @joshtriplett | |
146
+ | Author stabilization report (if ready) | @joshtriplett | |
147
+ | Stabilization decision | ![ Team] [ ] [ lang] | |
148
+
149
+ ### ` macro_rules! ` derives
150
+
151
+ | Task | Owner(s) or team(s) | Notes |
152
+ | ----------------------------------------| ---------------------| -------|
153
+ | Author/revise/iterate RFCs | @joshtriplett | |
154
+ | Prioritized nominations | ![ Team] [ ] [ lang] | |
155
+ | RFC decision | ![ Team] [ ] [ lang] | |
156
+ | Implementation of RFC | @eholk , @vincenzopalazzo | |
157
+ | Iterate on design as needed | @joshtriplett | |
158
+ | Inside Rust blog post on derive macros | @joshtriplett | |
159
+ | Process feedback from crate authors | @joshtriplett | |
148
160
| Author stabilization report (if ready) | @joshtriplett | |
149
161
| Stabilization decision | ![ Team] [ ] [ lang] | |
150
162
@@ -155,11 +167,14 @@ could reserve such syntax in all editions.
155
167
| Author initial RFC | @joshtriplett | |
156
168
| Design meeting | ![ Team] [ ] [ lang] | |
157
169
| RFC decision | ![ Team] [ ] [ lang] | |
170
+ | Implementation of RFC | @eholk , @vincenzopalazzo | |
158
171
| Iterate on design as needed | @joshtriplett | |
172
+ | Inside Rust blog post on additional capabilities | @joshtriplett | |
159
173
| Process feedback from crate authors | @joshtriplett | |
174
+ | Author stabilization report (if ready) | @joshtriplett | |
175
+ | Stabilization decision | ![ Team] [ ] [ lang] | |
160
176
| Support lang experiments for fragment fields | @joshtriplett | |
161
177
| Author small RFCs for further fragment fields | @joshtriplett | |
162
- | RFC decision | ![ Team] [ ] [ lang] [ wg-macros] | |
163
178
164
179
### Design for macro metavariable constructs
165
180
0 commit comments