Skip to content

Commit 5162ebc

Browse files
committed
2025/09-monthly: Add September report
1 parent 04787c5 commit 5162ebc

1 file changed

Lines changed: 278 additions & 0 deletions

File tree

Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,278 @@
1+
---
2+
layout: post
3+
title: "September 2025 Monthly report"
4+
author: Philip Herron, Pierre-Emmanuel Patry and Arthur Cohen
5+
tags:
6+
- monthly-report
7+
---
8+
9+
10+
## Overview
11+
12+
Thanks again to [Open Source Security, inc](https://opensrcsec.com/) and
13+
[Embecosm](https://www.embecosm.com/) for their ongoing support for this
14+
project.
15+
16+
### Project update
17+
18+
Most of the time this month was dedicated to preparing and attending
19+
three conferences: Oxidize in Berlin, Kangrejos in Oviedo and GNU
20+
Cauldron in Porto. Pierre-Emmanuel and Arthur also started working on
21+
another project for Embecosm, thus reducing the time spent on `gccrs`
22+
this month.
23+
24+
Oxidize was a nice experience and a good way to meet with some people
25+
using Rust in the embedded industry. We were able to present the project
26+
to many people who had not heard of it, and show the advantages of using
27+
the GCC static analyzers on unsafe Rust code.
28+
29+
Kangrejos was a great way for Pierre-Emmanuel to meet with a lot of
30+
folks working on the Linux kernel. A lot of them expressed interest in
31+
our progress, and a few mentioned their personal requirement for
32+
sticking with a GCC toolchain for compiling the kernel.
33+
34+
In Porto for Cauldron, a lot of GNU folks were interested in the
35+
frontend's experimental status and the projects' roadmap. There were
36+
comments about removing the dependency on `cargo` and `rustc`, which we
37+
are currently working towards with our goal of getting the standard
38+
library to compile under `gccrs`.
39+
40+
On that point, the entirety of `core` was added as a testcase to our
41+
testsuite - we are slowly but surely getting it to go through more and
42+
more passes of our pipeline. There is currently one bug left for our
43+
entire pipeline to pass, which concerns the resolution of const items
44+
associated with built-in types, such as `i8::MAX`.
45+
46+
After communicating with the GCC release managers, we have also worked
47+
on implementing a new CI process whose goal is to send emails to the GCC
48+
mailing list for each commit merged in our development repository. This
49+
will allow GCC developers to review patches as they are merged upstream,
50+
instead of seeing them in batches every week when we upstream them.
51+
52+
### Community call
53+
54+
We will have our next monthly community call on the 15th of October at
55+
9am UTC. You can subscribe to our calendar to see when the next one will
56+
be held. The call is open to everyone, even if you would just like to
57+
sit-in and listen. You can also subscribe to our
58+
[mailing-list](https://gcc.gnu.org/mailman/listinfo/gcc-rust) or join
59+
our [Zulip chat](https://gcc-rust.zulipchat.com) to be notified of
60+
upcoming events.
61+
62+
- [Jitsi link](https://meet.jit.si/gccrs-community-call-october)
63+
- Calendar ID:
64+
7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894@group.calendar.google.com
65+
- [Google calendar
66+
link](https://calendar.google.com/calendar/embed?src=7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com)
67+
- [iCal
68+
link](https://calendar.google.com/calendar/ical/7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com/public/basic.ics)
69+
70+
## Call for contribution
71+
72+
- <https://github.com/Rust-GCC/gccrs/issues/2500>
73+
74+
- <https://github.com/Rust-GCC/gccrs/issues/2376>
75+
76+
## Completed Activities
77+
78+
- ci: yet another fix for the conditionnal steps
79+
[PR4197](https://github.com/rust-gcc/gccrs/pull/4197)
80+
- ci: fix step condition
81+
[PR4196](https://github.com/rust-gcc/gccrs/pull/4196)
82+
- Add doc attribute checking on traits
83+
[PR4195](https://github.com/rust-gcc/gccrs/pull/4195)
84+
- Fix malformed path segfault in attributes
85+
[PR4194](https://github.com/rust-gcc/gccrs/pull/4194)
86+
- ci: fix early exit
87+
[PR4193](https://github.com/rust-gcc/gccrs/pull/4193)
88+
- Add support for lowering rest patterns present in struct patterns to
89+
HIR. [PR4192](https://github.com/rust-gcc/gccrs/pull/4192)
90+
- ci: handle empty commit list
91+
[PR4191](https://github.com/rust-gcc/gccrs/pull/4191)
92+
- ci: adjust again the workflow for sending emails
93+
[PR4190](https://github.com/rust-gcc/gccrs/pull/4190)
94+
- ci: don't do cover letter, don't group by PR
95+
[PR4189](https://github.com/rust-gcc/gccrs/pull/4189)
96+
- ci: new workflow for sending emails after merging a PR
97+
[PR4184](https://github.com/rust-gcc/gccrs/pull/4184)
98+
- gccrs: Fix ICE where we expect a num enum variant
99+
[PR4183](https://github.com/rust-gcc/gccrs/pull/4183)
100+
- gccrs: Add error diag for self params on plain functions
101+
[PR4182](https://github.com/rust-gcc/gccrs/pull/4182)
102+
- gccrs: Fix ICE on copied array expressions
103+
[PR4181](https://github.com/rust-gcc/gccrs/pull/4181)
104+
- gccrs: Remove old hack from resolve operator overload
105+
[PR4180](https://github.com/rust-gcc/gccrs/pull/4180)
106+
- gccrs: fnptr types can hold onto generic params so it needs to
107+
handle substs [PR4179](https://github.com/rust-gcc/gccrs/pull/4179)
108+
- Metavar segfault
109+
[PR4178](https://github.com/rust-gcc/gccrs/pull/4178)
110+
- gccrs: Fix ICE for invalid const capacity expression handling
111+
[PR4177](https://github.com/rust-gcc/gccrs/pull/4177)
112+
- Test \`libcore\`
113+
[PR4176](https://github.com/rust-gcc/gccrs/pull/4176)
114+
- Import \`stdarch 1.49.0\`
115+
[PR4175](https://github.com/rust-gcc/gccrs/pull/4175)
116+
- Improve \`FFIOpt\`
117+
[PR4174](https://github.com/rust-gcc/gccrs/pull/4174)
118+
- gccrs: Fix ICE handling division by zero in const eval
119+
[PR4172](https://github.com/rust-gcc/gccrs/pull/4172)
120+
- Remove \`AST::TraitItemConst\`
121+
[PR4170](https://github.com/rust-gcc/gccrs/pull/4170)
122+
- Protect from errors in alternate pattern parsing
123+
[PR4169](https://github.com/rust-gcc/gccrs/pull/4169)
124+
- gccrs: Fix ICE with invalid const expression
125+
[PR4150](https://github.com/rust-gcc/gccrs/pull/4150)
126+
- tests: added extra parens compile test
127+
[PR4137](https://github.com/rust-gcc/gccrs/pull/4137)
128+
- Sync with upstream (2025-09-08):
129+
4eb12ddd32d53ef55c2bd9bb03db057f096fff8f
130+
[PR4136](https://github.com/rust-gcc/gccrs/pull/4136)
131+
- Implement \`TokenCollector::visit(AST::FormatArgs&)\`
132+
[PR4135](https://github.com/rust-gcc/gccrs/pull/4135)
133+
- gccrs: track abi and unsafety on fnptrs for proper type checking
134+
[PR4132](https://github.com/rust-gcc/gccrs/pull/4132)
135+
- gccrs: Revert "nr1.0: Remove support in expansion phase"
136+
[PR4130](https://github.com/rust-gcc/gccrs/pull/4130)
137+
- gccrs: Revert "gccrs: Remove the template parameter
138+
[PR4129](https://github.com/rust-gcc/gccrs/pull/4129)
139+
- gccrs: get rid of more clones in unify path
140+
[PR4128](https://github.com/rust-gcc/gccrs/pull/4128)
141+
- gccrs: remove docker github workflow
142+
[PR4127](https://github.com/rust-gcc/gccrs/pull/4127)
143+
- gccrs: Remove the template parameter so clang format stops barfing
144+
this [PR4126](https://github.com/rust-gcc/gccrs/pull/4126)
145+
- Add test to confirm Rust-GCC/gccrs#3922 fix
146+
[PR4125](https://github.com/rust-gcc/gccrs/pull/4125)
147+
- Add test to confirm Rust-GCC/gccrs#3924 fix
148+
[PR4124](https://github.com/rust-gcc/gccrs/pull/4124)
149+
- nr1.0: Remove \`EarlyNameResolver\`
150+
[PR4123](https://github.com/rust-gcc/gccrs/pull/4123)
151+
- ci: Bump commit to merge in arm64 ci
152+
[PR4121](https://github.com/rust-gcc/gccrs/pull/4121)
153+
- Unify path-to-type handling in \`Late\` resolver
154+
[PR4113](https://github.com/rust-gcc/gccrs/pull/4113)
155+
- nr1.0: Remove chunks of resolution phase
156+
[PR4110](https://github.com/rust-gcc/gccrs/pull/4110)
157+
- Create subdirectory \`checks/errors/feature\`
158+
[PR4107](https://github.com/rust-gcc/gccrs/pull/4107)
159+
- Implement compilation support for rest patterns in tuple struct
160+
patterns [PR4102](https://github.com/rust-gcc/gccrs/pull/4102)
161+
- Improve ExpandVisitor's completeness
162+
[PR4099](https://github.com/rust-gcc/gccrs/pull/4099)
163+
- Vendor \`libcore 1.49\`
164+
[PR4060](https://github.com/rust-gcc/gccrs/pull/4060)
165+
- Handle \`link<sub>name</sub>\` attribute
166+
[PR4031](https://github.com/rust-gcc/gccrs/pull/4031)
167+
168+
### Contributors this month
169+
170+
- [elle](https://github.com/0xllx0) (new contributor!)
171+
- [Magnus](https://github.com/Magnus-Mage) (new contributor!)
172+
- [Zhi Heng](https://github.com/Polygonalr)
173+
- [Marc Poulhiès](https://github.com/dkm)
174+
- [Owen Avery](https://github.com/powerboat9)
175+
- [Pierre-Emmanuel Patry](https://github.com/P-E-P)
176+
- [Philip Herron](https://github.com/philberty)
177+
- [Arthur Cohen](https://github.com/CohenArthur)
178+
179+
### Overall Task Status
180+
181+
| Category | Last Month | This Month | Delta |
182+
|-------------|------------|------------|-------|
183+
| TODO | 396 | 406 | +10 |
184+
| In Progress | 110 | 115 | +5 |
185+
| Completed | 1135 | 1154 | +19 |
186+
187+
### Bugs
188+
189+
| Category | Last Month | This Month | Delta |
190+
|-------------|------------|------------|-------|
191+
| TODO | 198 | 207 | +9 |
192+
| In Progress | 49 | 55 | +6 |
193+
| Completed | 558 | 572 | +14 |
194+
195+
### Test Cases
196+
197+
| TestCases | Last Month | This Month | Delta |
198+
|-----------|------------|------------|-------|
199+
| Passing | 10189 | 10304 | +115 |
200+
| Failed | \- | \- | \- |
201+
| XFAIL | 64 | 72 | +8 |
202+
| XPASS | \- | \- | \- |
203+
204+
### Milestones Progress
205+
206+
| Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
207+
|-----------|------------|------------|-------|------------|-----------------|--------|------------|
208+
209+
| Upcoming Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
210+
|-------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
211+
| Unstable RfL features | 0% | 0% | \- | 7th Jan 2025 | \- | 1st Aug 2025 | GCC 16.1 |
212+
| Generic Associated Types | 0% | 0% | \- | 15th Mar 2025 | \- | 15th Jun 2025 | GCC 16.1 |
213+
| RfL const generics | 0% | 0% | \- | 1st May 2025 | \- | 15th Jun 2025 | GCC 16.1 |
214+
| frontend plugin hooks | 0% | 0% | \- | 15th May 2025 | \- | 7th Jul 2025 | GCC 16.1 |
215+
| Handling the testsuite issues | 0% | 0% | \- | 15th Sep 2024 | \- | 15th Sep 2025 | GCC 16.1 |
216+
| main shim | 0% | 0% | \- | 28th Jul 2025 | \- | 15th Sep 2025 | GCC 16.1 |
217+
| Final core attributes | 0% | 0% | \- | | \- | | GCC 16.1 |
218+
| Core nightly features | 0% | 0% | \- | | \- | | GCC 16.1 |
219+
| Defered inference | 0% | 0% | \- | | \- | | GCC 16.1 |
220+
| Fn traits fixes | 0% | 0% | \- | | \- | | GCC 16.1 |
221+
| Recursive types | 0% | 0% | \- | | \- | | GCC 16.1 |
222+
| Drop | 0% | 0% | \- | | \- | | GCC 16.1 |
223+
| Pin, PinInit | 0% | 0% | \- | | \- | | GCC 16.1 |
224+
225+
| Past Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
226+
|--------------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
227+
| Data Structures 1 - Core | 100% | 100% | \- | 30th Nov 2020 | 27th Jan 2021 | 29th Jan 2021 | GCC 14.1 |
228+
| Control Flow 1 - Core | 100% | 100% | \- | 28th Jan 2021 | 10th Feb 2021 | 26th Feb 2021 | GCC 14.1 |
229+
| Data Structures 2 - Generics | 100% | 100% | \- | 11th Feb 2021 | 14th May 2021 | 28th May 2021 | GCC 14.1 |
230+
| Data Structures 3 - Traits | 100% | 100% | \- | 20th May 2021 | 17th Sep 2021 | 27th Aug 2021 | GCC 14.1 |
231+
| Control Flow 2 - Pattern Matching | 100% | 100% | \- | 20th Sep 2021 | 9th Dec 2021 | 29th Nov 2021 | GCC 14.1 |
232+
| Macros and cfg expansion | 100% | 100% | \- | 1st Dec 2021 | 31st Mar 2022 | 28th Mar 2022 | GCC 14.1 |
233+
| Imports and Visibility | 100% | 100% | \- | 29th Mar 2022 | 13th Jul 2022 | 27th May 2022 | GCC 14.1 |
234+
| Const Generics | 100% | 100% | \- | 30th May 2022 | 10th Oct 2022 | 17th Oct 2022 | GCC 14.1 |
235+
| Initial upstream patches | 100% | 100% | \- | 10th Oct 2022 | 13th Nov 2022 | 13th Nov 2022 | GCC 14.1 |
236+
| Upstream initial patchset | 100% | 100% | \- | 13th Nov 2022 | 13th Dec 2022 | 19th Dec 2022 | GCC 14.1 |
237+
| Update GCC's master branch | 100% | 100% | \- | 1st Jan 2023 | 21st Feb 2023 | 3rd Mar 2023 | GCC 14.1 |
238+
| Final set of upstream patches | 100% | 100% | \- | 16th Nov 2022 | 1st May 2023 | 30th Apr 2023 | GCC 14.1 |
239+
| Borrow Checking 1 | 100% | 100% | \- | TBD | 8th Jan 2024 | 15th Aug 2023 | GCC 14.1 |
240+
| Procedural Macros 1 | 100% | 100% | \- | 13th Apr 2023 | 6th Aug 2023 | 6th Aug 2023 | GCC 14.1 |
241+
| GCC 13.2 Release | 100% | 100% | \- | 13th Apr 2023 | 22nd Jul 2023 | 15th Jul 2023 | GCC 14.1 |
242+
| GCC 14 Stage 3 | 100% | 100% | \- | 1st Sep 2023 | 20th Sep 2023 | 1st Nov 2023 | GCC 14.1 |
243+
| GCC 14.1 Release | 100% | 100% | \- | 2nd Jan 2024 | 2nd Jun 2024 | 15th Apr 2024 | GCC 14.1 |
244+
| format<sub>args</sub>!() support | 100% | 100% | \- | 15th Feb 2024 | \- | 1st Apr 2024 | GCC 14.1 |
245+
| GCC 14.2 | 100% | 100% | \- | 7th Jun 2024 | 15th Jun 2024 | 15th Jun 2024 | GCC 14.2 |
246+
| GCC 15.1 | 100% | 100% | \- | 21st Jun 2024 | 31st Jun 2024 | 1st Jul 2024 | GCC 15.1 |
247+
| Unhandled attributes | 100% | 100% | \- | 1st Jul 2024 | 15th Aug 2024 | 15th Aug 2024 | GCC 15.1 |
248+
| Inline assembly | 100% | 100% | \- | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
249+
| Rustc Testsuite Adaptor | 100% | 100% | \- | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
250+
| Borrow checker improvements | 100% | 100% | \- | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
251+
| Deref and DerefMut improvements | 100% | 100% | \- | 28th Sep 2024 | 25th Oct 2024 | 28th Dec 2024 | GCC 15.1 |
252+
| Indexing fixes | 100% | 100% | \- | 21st Jul 2024 | 25th Dec 2024 | 15th Nov 2024 | GCC 15.1 |
253+
| Iterator fixes | 100% | 100% | \- | 21st Jul 2024 | 25th Dec 2024 | 15th Nov 2024 | GCC 15.1 |
254+
| Auto traits improvements | 100% | 100% | \- | 15th Sep 2024 | 20th Jan 2025 | 21st Dec 2024 | GCC 15.1 |
255+
| Lang items | 100% | 100% | \- | 1st Jul 2024 | 10th Jan 2025 | 21st Nov 2024 | GCC 15.1 |
256+
| alloc parser issues | 100% | 100% | \- | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 15.1 |
257+
| std parser issues | 100% | 100% | \- | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 16.1 |
258+
| Question mark operator | 100% | 100% | \- | 15th Dec 2024 | 21st Feb 2025 | 21st Feb 2025 | GCC 15.1 |
259+
| Name resolution 2.0 rework | 100% | 100% | \- | 1st Jun 2024 | \- | 1st Apr 2025 | GCC 15.1 |
260+
| Macro expansion | 100% | 100% | \- | 1st Jun 2024 | \- | 1st Jan 2025 | GCC 15.1 |
261+
| Remaining typecheck issues | 100% | 100% | \- | 21st Oct 2024 | \- | 1st Mar 2025 | GCC 15.1 |
262+
| cfg-core | 100% | 100% | \- | 1st Dec 2024 | 24th Mar 2025 | 1st Mar 2025 | GCC 15.1 |
263+
| Codegen fixes | 100% | 100% | \- | 7th Oct 2024 | 1st Apr 2025 | 1st Mar 2025 | GCC 15.1 |
264+
| black<sub>box</sub> intrinsic | 100% | 100% | \- | 28th Oct 2024 | \- | 28th Jan 2025 | GCC 15.1 |
265+
| let-else | 100% | 100% | \- | 28th Jan 2025 | \- | 28th Feb 2025 | GCC 15.1 |
266+
| Specialization | 100% | 100% | \- | 1st Jan 2025 | 1st Apr 2025 | 1st Mar 2025 | GCC 15.1 |
267+
| cfg-rfl | 100% | 100% | \- | 7th Jan 2025 | 19th Mar 2025 | 15th Feb 2025 | GCC 15.1 |
268+
| Downgrade to Rust 1.49 | 100% | 100% | \- | 14th Mar 2025 | 26th Mar 2025 | 1st Apr 2025 | GCC 15.1 |
269+
| try blocks | 100% | 100% | \- | | 30th Jul 2025 | | GCC 16.1 |
270+
| while-let loops | 100% | 100% | \- | | 30th Jul 2025 | | GCC 16.1 |
271+
| offset<sub>of</sub>!() builtin macro | 100% | 100% | \- | 15th Mar 2025 | 4th Aug 2025 | 15th Aug 2025 | GCC 16.1 |
272+
| Explicit generics with impl Trait | 100% | 100% | \- | 28th Feb 2025 | 21st Jul 2025 | 28th Mar 2025 | GCC 16.1 |
273+
| Final Inline assembly fixes | 100% | 100% | \- | | \- | | GCC 16.1 |
274+
275+
## Planned Activities
276+
277+
- Finish debugging `core`
278+
- Start experimenting with the kernel's Rust code

0 commit comments

Comments
 (0)