Skip to content

Commit cdc9b5e

Browse files
committed
2024/10: Add monthly report
1 parent 697f007 commit cdc9b5e

File tree

1 file changed

+243
-0
lines changed

1 file changed

+243
-0
lines changed
Lines changed: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
## Overview
2+
3+
Thanks again to [Open Source Security, inc](https://opensrcsec.com/) and
4+
[Embecosm](https://www.embecosm.com/) for their ongoing support for this
5+
project.
6+
7+
### Project update
8+
9+
37 pull-requests were merged this month, which makes October one of the
10+
most productive months of this year for `gccrs`. Most of the changes
11+
concerned our name resolution rewrite, and more specifically its
12+
integration to the rest of the compiler pipeline. This paves the way for
13+
the removal of our old name resolution algorithm, which will happen as
14+
soon as all testcases pass using the new algorithm. Some long standing
15+
type system bugs were also fixed, which brings us closer and closer
16+
towards typechecking `core` and being able to compile it. We are now
17+
approaching the end of the Stage 1 period for GCC 15.1, which means we
18+
will soon no longer be able to push changes to common GCC
19+
infrastructure. As such, we are spending some time making sure all of
20+
these changes are properly sent upstream and are being reviewed. Changes
21+
made specifically to the Rust frontend will be upstreamable until the
22+
release of GCC 15.1, in spring of 2025. We are also working towards a
23+
rework of our fork-updating process, in order to make it easier to
24+
develop `gccrs` on the most recent version of GCC. This process is
25+
currently manual, and hard to automate - which is not fair to the
26+
contributor in charge of this task. Spending this time will make it
27+
easier for us to upstream our changes, which will speed up that process.
28+
29+
The technical blogpost from last month was well-received, with positive
30+
comments and conversations on Reddit. It has been linked in the
31+
blog.rust-lang.org blogpost, which has been reviewed and approved, and
32+
should release shortly.
33+
34+
### Community call
35+
36+
We will have our next monthly community call on the 12th of November at
37+
10am UTC. You can subscribe to our calendar to see when the next one
38+
will be held. The call is open to everyone, even if you would just like
39+
to sit-in and listen. You can also subscribe to our
40+
[mailing-list](https://gcc.gnu.org/mailman/listinfo/gcc-rust) or join
41+
our [Zulip chat](https://gcc-rust.zulipchat.com) to be notified of
42+
upcoming events.
43+
44+
- [Jitsi link](https://meet.jit.si/gccrs-community-call-august)
45+
- Calendar ID:
46+
7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894@group.calendar.google.com
47+
- [Google calendar
48+
link](https://calendar.google.com/calendar/embed?src=7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com)
49+
- [iCal
50+
link](https://calendar.google.com/calendar/ical/7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com/public/basic.ics)
51+
52+
## Call for contribution
53+
54+
There are no calls for contribution this month, as we do not have a lot
55+
of good first issues available. Still, feel free to take a look at them
56+
[here](https://github.com/Rust-GCC/gccrs/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-pr)
57+
and get in touch with us for some mentoring or help!
58+
59+
## Completed Activities
60+
61+
- Remove usage of \`Resolver::get<sub>builtintypes</sub>\`
62+
[PR3236](https://github.com/rust-gcc/gccrs/pull/3236)
63+
- gccrs: fix bad type inferencing on path's
64+
[PR3235](https://github.com/rust-gcc/gccrs/pull/3235)
65+
- gccrs: add test case to show method resolution is working
66+
[PR3234](https://github.com/rust-gcc/gccrs/pull/3234)
67+
- Make \`TyTy::TupleType::get<sub>unittype</sub>\` cache its return
68+
value [PR3232](https://github.com/rust-gcc/gccrs/pull/3232)
69+
- Use name resolution 2.0 in \`TraitItemReference\`
70+
[PR3228](https://github.com/rust-gcc/gccrs/pull/3228)
71+
- Insert trait names during toplevel resolution 2.0
72+
[PR3227](https://github.com/rust-gcc/gccrs/pull/3227)
73+
- Fix variable shadowing in late resolution 2.0
74+
[PR3226](https://github.com/rust-gcc/gccrs/pull/3226)
75+
- Use name resolver 2.0 in \`CompileTraitItem\`
76+
[PR3223](https://github.com/rust-gcc/gccrs/pull/3223)
77+
- Use name resolution 2.0 in \`TraitResolver\`
78+
[PR3222](https://github.com/rust-gcc/gccrs/pull/3222)
79+
- Resolve \`SelfParam\` in name resolution 2.0
80+
[PR3221](https://github.com/rust-gcc/gccrs/pull/3221)
81+
- Rename some \`PathIdentSegment\` functions
82+
[PR3219](https://github.com/rust-gcc/gccrs/pull/3219)
83+
- Fix name resolution 2.0 definition lookups in unsafe checker
84+
[PR3217](https://github.com/rust-gcc/gccrs/pull/3217)
85+
- Add a newline to the end of \`nr2/exclude\`
86+
[PR3216](https://github.com/rust-gcc/gccrs/pull/3216)
87+
- gccrs: Fix bad recursive operator overload call
88+
[PR3214](https://github.com/rust-gcc/gccrs/pull/3214)
89+
- Make \`const\` references to \`ForeverStack\` more useful
90+
[PR3211](https://github.com/rust-gcc/gccrs/pull/3211)
91+
- Use name resolver 2.0 in const checker
92+
[PR3207](https://github.com/rust-gcc/gccrs/pull/3207)
93+
- Use name resolver 2.0 for compiling break/continue
94+
[PR3206](https://github.com/rust-gcc/gccrs/pull/3206)
95+
- Load unloaded modules during toplevel resolution 2.0
96+
[PR3205](https://github.com/rust-gcc/gccrs/pull/3205)
97+
- Use name resolver 2.0 in pattern checker
98+
[PR3204](https://github.com/rust-gcc/gccrs/pull/3204)
99+
- Improve path handling while testing name resolution 2.0
100+
[PR3203](https://github.com/rust-gcc/gccrs/pull/3203)
101+
- Handle const generic parameters during resolution 2.0
102+
[PR3202](https://github.com/rust-gcc/gccrs/pull/3202)
103+
- Handle external static items in toplevel resolver 2.0
104+
[PR3201](https://github.com/rust-gcc/gccrs/pull/3201)
105+
- Disambiguate generic args during name resolution 2.0
106+
[PR3200](https://github.com/rust-gcc/gccrs/pull/3200)
107+
- Use name resolver 2.0 in \`MarkLive\`
108+
[PR3199](https://github.com/rust-gcc/gccrs/pull/3199)
109+
- Use name resolver 2.0 during pattern typechecking
110+
[PR3198](https://github.com/rust-gcc/gccrs/pull/3198)
111+
- Allow identifiers and paths to reference types during nr2.0
112+
[PR3197](https://github.com/rust-gcc/gccrs/pull/3197)
113+
- Insert static items into the value namespace
114+
[PR3194](https://github.com/rust-gcc/gccrs/pull/3194)
115+
- Improve \`InlineAsmOperand\`
116+
[PR3193](https://github.com/rust-gcc/gccrs/pull/3193)
117+
- Handle \`TypeAlias\` during toplevel resolution 2.0
118+
[PR3192](https://github.com/rust-gcc/gccrs/pull/3192)
119+
- Improve handling of \`InlineAsm\` in \`DefaultASTVisitor\`
120+
[PR3191](https://github.com/rust-gcc/gccrs/pull/3191)
121+
- Fix some issues with canonical path fetching in name resolution 2.0
122+
[PR3190](https://github.com/rust-gcc/gccrs/pull/3190)
123+
- Improve \`Rib::Definition\` shadowing
124+
[PR3188](https://github.com/rust-gcc/gccrs/pull/3188)
125+
- gccrs: Fix ICE when typechecking non-trait item when we expect one
126+
[PR3187](https://github.com/rust-gcc/gccrs/pull/3187)
127+
- gccrs: Add test case to show ICE is fixed
128+
[PR3186](https://github.com/rust-gcc/gccrs/pull/3186)
129+
- Provide input operand for gccrs
130+
[PR3151](https://github.com/rust-gcc/gccrs/pull/3151)
131+
- Desugar IfLet\* expr to match
132+
[PR3064](https://github.com/rust-gcc/gccrs/pull/3064)
133+
- Check for writes outside of the build directory
134+
[PR2974](https://github.com/rust-gcc/gccrs/pull/2974)
135+
136+
### Contributors this month
137+
138+
- [Philip Herron](https://github.com/philberty)
139+
- [Owen Avery](https://github.com/powerboat9)
140+
- [Marc Poulhiès](https://github.com/dkm)
141+
- [Jasmine Tang](https://github.com/badumbatish)
142+
143+
### Overall Task Status
144+
145+
| Category | Last Month | This Month | Delta |
146+
|-------------|------------|------------|-------|
147+
| TODO | 327 | 327 | \- |
148+
| In Progress | 75 | 75 | \- |
149+
| Completed | 888 | 897 | +9 |
150+
151+
### Test Cases
152+
153+
| TestCases | Last Month | This Month | Delta |
154+
|-----------|------------|------------|-------|
155+
| Passing | 9144 | 9212 | +67 |
156+
| Failed | \- | \- | \- |
157+
| XFAIL | 323 | 294 | -29 |
158+
| XPASS | \- | \- | \- |
159+
160+
### Bugs
161+
162+
| Category | Last Month | This Month | Delta |
163+
|-------------|------------|------------|-------|
164+
| TODO | 120 | 119 | -1 |
165+
| In Progress | 40 | 48 | +8 |
166+
| Completed | 437 | 441 | +4 |
167+
168+
### Milestones Progress
169+
170+
| Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
171+
|---------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
172+
| GCC 14.2 | 100% | 100% | \- | 7th Jun 2024 | 15th Jun 2024 | 15th Jun 2024 | GCC 14.2 |
173+
| GCC 15.1 | 100% | 100% | \- | 21st Jun 2024 | 31st Jun 2024 | 1st Jul 2024 | GCC 15.1 |
174+
| Name resolution 2.0 rework | 6% | 6% | \- | 1st Jun 2024 | \- | 1st Apr 2025 | GCC 15.1 |
175+
| Macro expansion | 18% | 29% | +9% | 1st Jun 2024 | \- | 1st Jan 2025 | GCC 15.1 |
176+
| Unhandled attributes | 100% | 100% | \- | 1st Jul 2024 | 15th Aug 2024 | 15th Aug 2024 | GCC 15.1 |
177+
| Lang items | 66% | 66% | \- | 1st Jul 2024 | \- | 21st Nov 2024 | GCC 15.1 |
178+
| Deref and DerefMut improvements | 0% | 100% | +100% | 28th Sep 2024 | 25th Oct 2024 | 28th Dec 2024 | GCC 15.1 |
179+
| Indexing fixes | 0% | 0% | \- | 21st Jul 2024 | \- | 15th Nov 2024 | GCC 15.1 |
180+
| Iterator fixes | 0% | 0% | \- | 21st Jul 2024 | \- | 15th Nov 2024 | GCC 15.1 |
181+
182+
| Upcoming Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
183+
|--------------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
184+
| Auto traits improvements | 0% | 0% | \- | 15th Sep 2024 | \- | 21st Dec 2024 | GCC 15.1 |
185+
| Remaining typecheck issues | 0% | 85% | +85% | 21st Oct 2024 | \- | 1st Mar 2025 | GCC 15.1 |
186+
| cfg-core | 0% | 0% | \- | 1st Dec 2024 | \- | 1st Mar 2025 | GCC 15.1 |
187+
| Question mark operator | 0% | 0% | \- | 15th Dec 2024 | \- | 21st Feb 2025 | GCC 15.1 |
188+
| Codegen fixes | 0% | 0% | \- | 7th Oct 2024 | \- | 1st Mar 2025 | GCC 15.1 |
189+
| Specialization | 0% | 0% | \- | 1st Jan 2025 | \- | 1st Mar 2025 | GCC 15.1 |
190+
| Inline assembly | 100% | 100% | \- | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
191+
| Borrow checker improvements | 100% | 100% | \- | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
192+
| Rustc Testsuite Adaptor | 0% | 0% | \- | 1st Jun 2024 | \- | 15th Sep 2024 | GCC 15.1 |
193+
| black<sub>box</sub> intrinsic | 0% | 0% | \- | 28th Oct 2024 | \- | 28th Jan 2025 | GCC 15.1 |
194+
| Unstable RfL features | 0% | 0% | \- | 7th Jan 2025 | \- | 1st Mar 2025 | GCC 15.1 |
195+
| cfg-rfl | 0% | 0% | \- | 7th Jan 2025 | \- | 15th Feb 2025 | GCC 15.1 |
196+
| alloc parser issues | 100% | 100% | \- | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 15.1 |
197+
| let-else | 0% | 0% | \- | 28th Jan 2025 | \- | 28th Feb 2025 | GCC 15.1 |
198+
| Explicit generics with impl Trait | 0% | 0% | \- | 28th Feb 2025 | \- | 28th Mar 2025 | GCC 15.1 |
199+
| offset<sub>of</sub>!() builtin macro | 0% | 0% | \- | 15th Mar 2025 | \- | 15th May 2025 | GCC 15.1 |
200+
| Generic Associated Types | 0% | 0% | \- | 15th Mar 2025 | \- | 15th Jun 2025 | GCC 16.1 |
201+
| RfL const generics | 0% | 0% | \- | 1st May 2025 | \- | 15th Jun 2025 | GCC 16.1 |
202+
| frontend plugin hooks | 0% | 0% | \- | 15th May 2025 | \- | 7th Jul 2025 | GCC 16.1 |
203+
| Handling the testsuite issues | 0% | 0% | \- | 15th Sep 2024 | \- | 15th Sep 2025 | GCC 16.1 |
204+
| std parser issues | 100% | 100% | \- | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 16.1 |
205+
| main shim | 0% | 0% | \- | 28th Jul 2025 | \- | 15th Sep 2025 | GCC 16.1 |
206+
207+
| Past Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
208+
|-----------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
209+
| Data Structures 1 - Core | 100% | 100% | \- | 30th Nov 2020 | 27th Jan 2021 | 29th Jan 2021 | GCC 14.1 |
210+
| Control Flow 1 - Core | 100% | 100% | \- | 28th Jan 2021 | 10th Feb 2021 | 26th Feb 2021 | GCC 14.1 |
211+
| Data Structures 2 - Generics | 100% | 100% | \- | 11th Feb 2021 | 14th May 2021 | 28th May 2021 | GCC 14.1 |
212+
| Data Structures 3 - Traits | 100% | 100% | \- | 20th May 2021 | 17th Sep 2021 | 27th Aug 2021 | GCC 14.1 |
213+
| Control Flow 2 - Pattern Matching | 100% | 100% | \- | 20th Sep 2021 | 9th Dec 2021 | 29th Nov 2021 | GCC 14.1 |
214+
| Macros and cfg expansion | 100% | 100% | \- | 1st Dec 2021 | 31st Mar 2022 | 28th Mar 2022 | GCC 14.1 |
215+
| Imports and Visibility | 100% | 100% | \- | 29th Mar 2022 | 13th Jul 2022 | 27th May 2022 | GCC 14.1 |
216+
| Const Generics | 100% | 100% | \- | 30th May 2022 | 10th Oct 2022 | 17th Oct 2022 | GCC 14.1 |
217+
| Initial upstream patches | 100% | 100% | \- | 10th Oct 2022 | 13th Nov 2022 | 13th Nov 2022 | GCC 14.1 |
218+
| Upstream initial patchset | 100% | 100% | \- | 13th Nov 2022 | 13th Dec 2022 | 19th Dec 2022 | GCC 14.1 |
219+
| Update GCC's master branch | 100% | 100% | \- | 1st Jan 2023 | 21st Feb 2023 | 3rd Mar 2023 | GCC 14.1 |
220+
| Final set of upstream patches | 100% | 100% | \- | 16th Nov 2022 | 1st May 2023 | 30th Apr 2023 | GCC 14.1 |
221+
| Borrow Checking 1 | 100% | 100% | \- | TBD | 8th Jan 2024 | 15th Aug 2023 | GCC 14.1 |
222+
| Procedural Macros 1 | 100% | 100% | \- | 13th Apr 2023 | 6th Aug 2023 | 6th Aug 2023 | GCC 14.1 |
223+
| GCC 13.2 Release | 100% | 100% | \- | 13th Apr 2023 | 22nd Jul 2023 | 15th Jul 2023 | GCC 14.1 |
224+
| GCC 14 Stage 3 | 100% | 100% | \- | 1st Sep 2023 | 20th Sep 2023 | 1st Nov 2023 | GCC 14.1 |
225+
| GCC 14.1 Release | 100% | 100% | \- | 2nd Jan 2024 | 2nd Jun 2024 | 15th Apr 2024 | GCC 14.1 |
226+
| format<sub>args</sub>!() support | 100% | 100% | \- | 15th Feb 2024 | \- | 1st Apr 2024 | GCC 14.1 |
227+
228+
## Planned Activities
229+
230+
- Finish usage of lang items for codegen
231+
- Finish for-loops code expansion
232+
- Improve our process for updating our github repository with upstream
233+
GCC
234+
235+
### Risks
236+
237+
There have been no changes to the Risk table this month
238+
239+
| Risk | Impact (1-3) | Likelihood (0-10) | Risk (I \* L) | Mitigation |
240+
|----------------------------------------|--------------|-------------------|---------------|-----------------------------------------------------------------|
241+
| Missing features for GCC 15.1 deadline | 2 | 1 | 2 | Start working on required features as early as July (6mo ahead) |
242+
243+
## Detailed changelog

0 commit comments

Comments
 (0)