Skip to content

Commit b3b09c8

Browse files
committed
2025/05-monthly: Add report for May
1 parent f4033c7 commit b3b09c8

File tree

1 file changed

+241
-0
lines changed

1 file changed

+241
-0
lines changed
Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
---
2+
layout: post
3+
title: "May 2025 Monthly report"
4+
author: Philip Herron, Pierre-Emmanuel Patry and Arthur Cohen
5+
tags:
6+
- monthly-report
7+
---
8+
9+
## Overview
10+
11+
Thanks again to [Open Source Security, inc](https://opensrcsec.com/) and
12+
[Embecosm](https://www.embecosm.com/) for their ongoing support for this
13+
project.
14+
15+
### Project update
16+
17+
The past month of development was mostly focused on community outreach,
18+
with a talk from Pierre-Emmanuel and Arthur at RustWeek in Utrecht,
19+
available
20+
[here](https://www.youtube.com/live/3clGDj1QR6A?si=hMnbr2QOveW1EIDa&t=18393).
21+
Here, we met with Miguel Ojeda from the Rust-for-Linux project, who
22+
informed us that the kernel no longer relies on the `alloc` standard
23+
crate for its function. This makes our job easier, as we are now tasked
24+
with compiling `core` and the kernel's implementation of `alloc`, rather
25+
than having to catch up with the standard library's `alloc` crate.
26+
27+
In practice, this means that `gccrs` should be useful for Rust-for-Linux
28+
in a shorter span of time than originally planned, and we will start
29+
integrating the kernel's source code to our testing infrastructure in
30+
our efforts to target those crates. We spent some time last month
31+
establishing these milestones, which will be worked on as part of a
32+
further 6 months of support from [Open Source Security,
33+
inc](https://opensrcsec.com/), until the end of Stage 1 for GCC 16.1.
34+
35+
Our next efforts will focus on finishing our name resolution pass for
36+
`core`, and fixing the remaining macro expansion bugs. As part of Google
37+
Summer of Code, we will work on improving our pattern matching backend
38+
which will allow us to covers all of the patterns used in `core`. Once
39+
that work is complete, we will spend time exploring the `Pin` semantics
40+
and making sure `gccrs` handles them correctly, as this data structure
41+
is used everywhere in the Linux kernel. This will then allow us to start
42+
testing the compiler on the kernel crates, hopefully by the end of the
43+
summer.
44+
45+
Work also continued on the name resolution rewrite, which is now
46+
frustratingly close to replacing our previous implementation. We are
47+
resuming work on all areas of the compiler in June. The project received
48+
contributions from the usual suspects, with around 25 pull requests from
49+
external contributors this month. We are also starting work with our two
50+
GSoC students, Zhi Heng and Ryutaro Okada. They will be working on
51+
improving our pattern matching backend and on reimplementing certain
52+
Rust lints within our front-end rather than by depending on the GCC
53+
common compiler framework.
54+
55+
### Community call
56+
57+
We will have our next monthly community call on the 9th of June at 9am
58+
UTC. You can subscribe to our calendar to see when the next one will be
59+
held. The call is open to everyone, even if you would just like to
60+
sit-in and listen. You can also subscribe to our
61+
[mailing-list](https://gcc.gnu.org/mailman/listinfo/gcc-rust) or join
62+
our [Zulip chat](https://gcc-rust.zulipchat.com) to be notified of
63+
upcoming events.
64+
65+
- [Jitsi link](https://meet.jit.si/gccrs-community-call-june)
66+
- Calendar ID:
67+
7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894@group.calendar.google.com
68+
- [Google calendar
69+
link](https://calendar.google.com/calendar/embed?src=7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com)
70+
- [iCal
71+
link](https://calendar.google.com/calendar/ical/7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com/public/basic.ics)
72+
73+
## Call for contribution
74+
75+
- <https://github.com/Rust-GCC/gccrs/issues/2500>
76+
77+
- <https://github.com/Rust-GCC/gccrs/issues/2376>
78+
79+
## Completed Activities
80+
81+
- gccrs: Always emit the error highest in the type hierarchy
82+
[PR3809](https://github.com/rust-gcc/pull/3809)
83+
- Adjust included headers in \`rust-lang.cc\`
84+
[PR3808](https://github.com/rust-gcc/pull/3808)
85+
- gccrs: Initial support for Return Position Impl Trait
86+
[PR3807](https://github.com/rust-gcc/pull/3807)
87+
- gccrs: refactor default infer vars to be its own function
88+
[PR3806](https://github.com/rust-gcc/pull/3806)
89+
- gccrs: Remove unneeded clones untill we have an arena allocator for
90+
these temps [PR3805](https://github.com/rust-gcc/pull/3805)
91+
- nr2.0: Fix some paths in test files
92+
[PR3803](https://github.com/rust-gcc/pull/3803)
93+
- nr2.0: Fix \`IfLet\` pattern handling
94+
[PR3802](https://github.com/rust-gcc/pull/3802)
95+
- nr2.0: Fix test \`builtin<sub>abort</sub>.rs\`
96+
[PR3800](https://github.com/rust-gcc/pull/3800)
97+
- Remove rvalue reference binding
98+
[PR3795](https://github.com/rust-gcc/pull/3795)
99+
- Remove unused file [PR3794](https://github.com/rust-gcc/pull/3794)
100+
- gccrs: Fix NR2 ICE in visit<sub>attributes</sub>
101+
[PR3793](https://github.com/rust-gcc/pull/3793)
102+
- gccrs: We cant clone types as it will dup the node-id
103+
[PR3792](https://github.com/rust-gcc/pull/3792)
104+
- Fix \`Attr\` metavariable binding
105+
[PR3790](https://github.com/rust-gcc/pull/3790)
106+
- nr2.0: Fix borrow checking
107+
[PR3789](https://github.com/rust-gcc/pull/3789)
108+
- Fix test \`same<sub>fieldname</sub>.rs\`
109+
[PR3788](https://github.com/rust-gcc/pull/3788)
110+
- Adapt attribute lang hook and do some cleanup
111+
[PR3786](https://github.com/rust-gcc/pull/3786)
112+
- Small improvements to \`DefaultASTVisitor\` and nr2.0
113+
[PR3784](https://github.com/rust-gcc/pull/3784)
114+
- Fix ICE segfault on empty static loops
115+
[PR3781](https://github.com/rust-gcc/pull/3781)
116+
- gccrs: Prevent passing generic arguments to impl traits in argument
117+
position [PR3780](https://github.com/rust-gcc/pull/3780)
118+
- ast: collect InlineAsm node dump
119+
[PR3779](https://github.com/rust-gcc/pull/3779)
120+
- gccrs: desugar APIT impl traits
121+
[PR3778](https://github.com/rust-gcc/pull/3778)
122+
- gccrs: Emit error diagnostic for bad impl type usage
123+
[PR3777](https://github.com/rust-gcc/pull/3777)
124+
- nr2.0: Adjust enum item visitors
125+
[PR3775](https://github.com/rust-gcc/pull/3775)
126+
- Improve canonical path handling for impl items
127+
[PR3774](https://github.com/rust-gcc/pull/3774)
128+
- Improve struct pattern compilation
129+
[PR3773](https://github.com/rust-gcc/pull/3773)
130+
- nr2.0: Adjust resolution of impl items
131+
[PR3768](https://github.com/rust-gcc/pull/3768)
132+
- Handle const blocks [PR3738](https://github.com/rust-gcc/pull/3738)
133+
134+
### Contributors this month
135+
136+
- [Tom Schollenberger](https://github.com/tommyscholly) (new
137+
contributor!)
138+
- [Marc Poulhiès](https://github.com/dkm)
139+
- [Owen Avery](https://github.com/powerboat9)
140+
- [Arthur Cohen](https://github.com/CohenArthur)
141+
- [Pierre-Emmanuel Patry](https://github.com/P-E-P)
142+
- [Philip Herron](https://github.com/philberty)
143+
- [Gyanendra Banjare](https://github.com/0xn4utilus)
144+
145+
### Overall Task Status
146+
147+
| Category | Last Month | This Month | Delta |
148+
|-------------|------------|------------|-------|
149+
| TODO | 477 | 471 | -6 |
150+
| In Progress | 118 | 114 | -4 |
151+
| Completed | 1056 | 1064 | +8 |
152+
153+
### Bugs
154+
155+
| Category | Last Month | This Month | Delta |
156+
|-------------|------------|------------|-------|
157+
| TODO | 209 | 207 | -2 |
158+
| In Progress | 56 | 56 | \- |
159+
| Completed | 519 | 521 | +2 |
160+
161+
### Test Cases
162+
163+
| TestCases | Last Month | This Month | Delta |
164+
|-----------|------------|------------|-------|
165+
| Passing | 10392 | 10631 | +239 |
166+
| Failed | \- | \- | \- |
167+
| XFAIL | 73 | 73 | \- |
168+
| XPASS | \- | \- | \- |
169+
170+
### Milestones Progress
171+
172+
| Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
173+
|-----------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
174+
| Name resolution 2.0 rework | 100% | 100% | \- | 1st Jun 2024 | \- | 1st Apr 2025 | GCC 15.1 |
175+
| Macro expansion | 100% | 100% | \- | 1st Jun 2024 | \- | 1st Jan 2025 | GCC 15.1 |
176+
| Remaining typecheck issues | 100% | 100% | \- | 21st Oct 2024 | \- | 1st Mar 2025 | GCC 15.1 |
177+
| cfg-core | 100% | 100% | \- | 1st Dec 2024 | 24th Mar 2025 | 1st Mar 2025 | GCC 15.1 |
178+
| Codegen fixes | 100% | 100% | \- | 7th Oct 2024 | 1st Apr 2025 | 1st Mar 2025 | GCC 15.1 |
179+
| black<sub>box</sub> intrinsic | 100% | 100% | \- | 28th Oct 2024 | \- | 28th Jan 2025 | GCC 15.1 |
180+
| let-else | 100% | 100% | \- | 28th Jan 2025 | \- | 28th Feb 2025 | GCC 15.1 |
181+
| Specialization | 100% | 100% | \- | 1st Jan 2025 | 1st Apr 2025 | 1st Mar 2025 | GCC 15.1 |
182+
| cfg-rfl | 100% | 100% | \- | 7th Jan 2025 | 19th Mar 2025 | 15th Feb 2025 | GCC 15.1 |
183+
| Downgrade to Rust 1.49 | 100% | 100% | \- | 14th Mar 2025 | 26th Mar 2025 | 1st Apr 2025 | GCC 15.1 |
184+
| Explicit generics with impl Trait | 40% | 55% | +15% | 28th Feb 2025 | \- | 28th Mar 2025 | GCC 15.1 |
185+
186+
| Upcoming Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
187+
|--------------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
188+
| Unstable RfL features | 0% | 0% | \- | 7th Jan 2025 | \- | 1st Aug 2025 | GCC 16.1 |
189+
| offset<sub>of</sub>!() builtin macro | 0% | 0% | \- | 15th Mar 2025 | \- | 15th Aug 2025 | GCC 16.1 |
190+
| Generic Associated Types | 0% | 0% | \- | 15th Mar 2025 | \- | 15th Jun 2025 | GCC 16.1 |
191+
| RfL const generics | 0% | 0% | \- | 1st May 2025 | \- | 15th Jun 2025 | GCC 16.1 |
192+
| frontend plugin hooks | 0% | 0% | \- | 15th May 2025 | \- | 7th Jul 2025 | GCC 16.1 |
193+
| Handling the testsuite issues | 0% | 0% | \- | 15th Sep 2024 | \- | 15th Sep 2025 | GCC 16.1 |
194+
| main shim | 0% | 0% | \- | 28th Jul 2025 | \- | 15th Sep 2025 | GCC 16.1 |
195+
196+
| Past Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
197+
|-----------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
198+
| Data Structures 1 - Core | 100% | 100% | \- | 30th Nov 2020 | 27th Jan 2021 | 29th Jan 2021 | GCC 14.1 |
199+
| Control Flow 1 - Core | 100% | 100% | \- | 28th Jan 2021 | 10th Feb 2021 | 26th Feb 2021 | GCC 14.1 |
200+
| Data Structures 2 - Generics | 100% | 100% | \- | 11th Feb 2021 | 14th May 2021 | 28th May 2021 | GCC 14.1 |
201+
| Data Structures 3 - Traits | 100% | 100% | \- | 20th May 2021 | 17th Sep 2021 | 27th Aug 2021 | GCC 14.1 |
202+
| Control Flow 2 - Pattern Matching | 100% | 100% | \- | 20th Sep 2021 | 9th Dec 2021 | 29th Nov 2021 | GCC 14.1 |
203+
| Macros and cfg expansion | 100% | 100% | \- | 1st Dec 2021 | 31st Mar 2022 | 28th Mar 2022 | GCC 14.1 |
204+
| Imports and Visibility | 100% | 100% | \- | 29th Mar 2022 | 13th Jul 2022 | 27th May 2022 | GCC 14.1 |
205+
| Const Generics | 100% | 100% | \- | 30th May 2022 | 10th Oct 2022 | 17th Oct 2022 | GCC 14.1 |
206+
| Initial upstream patches | 100% | 100% | \- | 10th Oct 2022 | 13th Nov 2022 | 13th Nov 2022 | GCC 14.1 |
207+
| Upstream initial patchset | 100% | 100% | \- | 13th Nov 2022 | 13th Dec 2022 | 19th Dec 2022 | GCC 14.1 |
208+
| Update GCC's master branch | 100% | 100% | \- | 1st Jan 2023 | 21st Feb 2023 | 3rd Mar 2023 | GCC 14.1 |
209+
| Final set of upstream patches | 100% | 100% | \- | 16th Nov 2022 | 1st May 2023 | 30th Apr 2023 | GCC 14.1 |
210+
| Borrow Checking 1 | 100% | 100% | \- | TBD | 8th Jan 2024 | 15th Aug 2023 | GCC 14.1 |
211+
| Procedural Macros 1 | 100% | 100% | \- | 13th Apr 2023 | 6th Aug 2023 | 6th Aug 2023 | GCC 14.1 |
212+
| GCC 13.2 Release | 100% | 100% | \- | 13th Apr 2023 | 22nd Jul 2023 | 15th Jul 2023 | GCC 14.1 |
213+
| GCC 14 Stage 3 | 100% | 100% | \- | 1st Sep 2023 | 20th Sep 2023 | 1st Nov 2023 | GCC 14.1 |
214+
| GCC 14.1 Release | 100% | 100% | \- | 2nd Jan 2024 | 2nd Jun 2024 | 15th Apr 2024 | GCC 14.1 |
215+
| format<sub>args</sub>!() support | 100% | 100% | \- | 15th Feb 2024 | \- | 1st Apr 2024 | GCC 14.1 |
216+
| GCC 14.2 | 100% | 100% | \- | 7th Jun 2024 | 15th Jun 2024 | 15th Jun 2024 | GCC 14.2 |
217+
| GCC 15.1 | 100% | 100% | \- | 21st Jun 2024 | 31st Jun 2024 | 1st Jul 2024 | GCC 15.1 |
218+
| Unhandled attributes | 100% | 100% | \- | 1st Jul 2024 | 15th Aug 2024 | 15th Aug 2024 | GCC 15.1 |
219+
| Inline assembly | 100% | 100% | \- | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
220+
| Rustc Testsuite Adaptor | 100% | 100% | \- | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
221+
| Borrow checker improvements | 100% | 100% | \- | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
222+
| Deref and DerefMut improvements | 100% | 100% | \- | 28th Sep 2024 | 25th Oct 2024 | 28th Dec 2024 | GCC 15.1 |
223+
| Indexing fixes | 100% | 100% | \- | 21st Jul 2024 | 25th Dec 2024 | 15th Nov 2024 | GCC 15.1 |
224+
| Iterator fixes | 100% | 100% | \- | 21st Jul 2024 | 25th Dec 2024 | 15th Nov 2024 | GCC 15.1 |
225+
| Auto traits improvements | 100% | 100% | \- | 15th Sep 2024 | 20th Jan 2025 | 21st Dec 2024 | GCC 15.1 |
226+
| Lang items | 100% | 100% | \- | 1st Jul 2024 | 10th Jan 2025 | 21st Nov 2024 | GCC 15.1 |
227+
| alloc parser issues | 100% | 100% | \- | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 15.1 |
228+
| std parser issues | 100% | 100% | \- | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 16.1 |
229+
| Question mark operator | 100% | 100% | \- | 15th Dec 2024 | 21st Feb 2025 | 21st Feb 2025 | GCC 15.1 |
230+
231+
## Planned Activities
232+
233+
- Merge fixes in 15.2
234+
- Continue working towards getting more features in 15.2
235+
236+
### Risks
237+
238+
We must establish the list of GCC-common changes we need, as we will
239+
have to send them upstream before the start of Stage 3 around November.
240+
This is the only risk which could incur further problems and prevent
241+
more gccrs features from landing in 16.1.

0 commit comments

Comments
 (0)