Skip to content

Commit f0da5aa

Browse files
committed
2024/12-monthly: Add base for report
1 parent d962da6 commit f0da5aa

File tree

1 file changed

+176
-0
lines changed

1 file changed

+176
-0
lines changed

2024/2024-12-monthly-report.org

+176
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
#+title: Monthly Report for December 2024
2+
#+author: Philip Herron, Pierre-Emmanuel Patry and Arthur Cohen
3+
#+date: 2025-01-06
4+
5+
** Overview
6+
7+
Thanks again to [[https://opensrcsec.com/][Open Source Security, inc]] and [[https://www.embecosm.com/][Embecosm]] for their ongoing support for this project.
8+
9+
*** Project update
10+
11+
We accomplished a lot of technical changes during the month of December on three major milestones for the compiler: Auto traits, for-loops, and built-in derives. Both for-loops and built-in derives required a major rework of our AST and HIR in order to handle lang-item paths, a special form of path expressions and path types used when refering directly to [[https://rustc-dev-guide.rust-lang.org/lang-items.html][lang-items]]. This had a big impact to most of the compiler pipeline, as we had to adapt most compiler passes to handle these new paths.
12+
13+
*TODO*: Explain why lang item paths are needed for for-loops, with examples.
14+
15+
Path of the into_iter function:
16+
17+
::core::iter::IntoIterator::into_iter(&self);
18+
19+
Once the lang-item fixes were completed, we were able to finish implementing for-loops desugaring, which is currently under review. This then lead to continuing work on built-in derive macros, the last remaining block for macro expansion for core 1.49. These built-in macros often need to refer to other lang-items, such as the ~Clone~ or ~Copy~ trait in order to be expanded properly.
20+
21+
We then focused on setting up the basis for the ~Sync~ and ~Send~ auto-traits, which are used throughout core 1.49 and required for many Rust programs. We are now figuring out the last few details of implementing these auto-traits and will add handling for them in the coming weeks.
22+
23+
*** Community call
24+
25+
*FIXME*
26+
27+
** Call for contribution
28+
29+
- https://github.com/Rust-GCC/gccrs/issues/2500
30+
31+
- https://github.com/Rust-GCC/gccrs/issues/2376
32+
33+
** Completed Activities
34+
35+
- gccrs: fix ICE during HIR dump [[https://github.com/rust-gcc/gccrs/pull/3346][PR3346]]
36+
- ast: Add EnumItem::Kind [[https://github.com/rust-gcc/gccrs/pull/3342][PR3342]]
37+
- nr2.0: Resolve type aliases inside trait definitions [[https://github.com/rust-gcc/gccrs/pull/3330][PR3330]]
38+
- Resolve and lower parenthesized types [[https://github.com/rust-gcc/gccrs/pull/3328][PR3328]]
39+
- parser: Add testcases for multiline strings [[https://github.com/rust-gcc/gccrs/pull/3325][PR3325]]
40+
- Add resolution for additional trait bounds [[https://github.com/rust-gcc/gccrs/pull/3324][PR3324]]
41+
- nr2.0: Handle `Self` properly in trait definitions [[https://github.com/rust-gcc/gccrs/pull/3323][PR3323]]
42+
- ast-builder: Add more methods [[https://github.com/rust-gcc/gccrs/pull/3322][PR3322]]
43+
- allow ptr to int and int to ptr type casting [[https://github.com/rust-gcc/gccrs/pull/3321][PR3321]]
44+
- ast: Add new Kind enums for more precise downcasting [[https://github.com/rust-gcc/gccrs/pull/3320][PR3320]]
45+
- Handle new lang items: `Option::None`, `Option::Some`, `IntoIterator::into_iter`, `Iterator::next` [[https://github.com/rust-gcc/gccrs/pull/3318][PR3318]]
46+
- typecheck-path: Fix typo (reciever -> receiver) [[https://github.com/rust-gcc/gccrs/pull/3317][PR3317]]
47+
- gccrs: disable macos github workflow [[https://github.com/rust-gcc/gccrs/pull/3312][PR3312]]
48+
- Fix name resolution for enums with generics [[https://github.com/rust-gcc/gccrs/pull/3307][PR3307]]
49+
- refactor(typecheck): StackedContexts for blocks [[https://github.com/rust-gcc/gccrs/pull/3305][PR3305]]
50+
- gccrs: implement the TuplePattern and use it for function patterns [[https://github.com/rust-gcc/gccrs/pull/3303][PR3303]]
51+
- gccrs: fix bad not expression in rust [[https://github.com/rust-gcc/gccrs/pull/3301][PR3301]]
52+
- gccrs: Made changes to AST::TraitImpl constructor for TypePath [[https://github.com/rust-gcc/gccrs/pull/3298][PR3298]]
53+
- ci: Update expected warnings list for 32 bits build. [[https://github.com/rust-gcc/gccrs/pull/3295][PR3295]]
54+
- build: update bootstrap req to C++14 [[https://github.com/rust-gcc/gccrs/pull/3294][PR3294]]
55+
- Use lang items as paths [[https://github.com/rust-gcc/gccrs/pull/3290][PR3290]]
56+
- Collect lang items in the AST [[https://github.com/rust-gcc/gccrs/pull/3289][PR3289]]
57+
- type-check: Remove unused capture in nr2.0 [[https://github.com/rust-gcc/gccrs/pull/3288][PR3288]]
58+
- Remove `Rust::make_unique` [[https://github.com/rust-gcc/gccrs/pull/3278][PR3278]]
59+
- Fix `ForeverStack::find_starting_point` output parameter [[https://github.com/rust-gcc/gccrs/pull/3247][PR3247]]
60+
61+
*** Contributors this month
62+
63+
- [[http://github.com/sriganeshres][Sri Ganesh Thota]] (new contributor!)
64+
- [[https://github.com/snprajwal][Prajwal S N]]
65+
- [[https://github.com/liamnaddell][Liam Naddell]]
66+
- [[https://github.com/nobel-sh][Nobel Singh]]
67+
- [[https://github.com/thesamesam][Sam James]]
68+
- [[https://github.com/powerboat9][Owen Avery]]
69+
- [[https://github.com/dkm][Marc Poulhiès]]
70+
- [[https://github.com/tschwinge][Thomas Schwinge]]
71+
- [[https://github.com/philberty][Philip Herron]]
72+
- [[https://github.com/P-E-P][Pierre-Emmanuel Patry]]
73+
- [[https://github.com/CohenArthur][Arthur Cohen]]
74+
75+
*** Overall Task Status
76+
77+
| Category | Last Month | This Month | Delta |
78+
|-------------+------------+------------+-------|
79+
| TODO | 316 | 308 | -8 |
80+
| In Progress | 80 | 88 | +8 |
81+
| Completed | 907 | 922 | +15 |
82+
83+
*** Bugs
84+
85+
| Category | Last Month | This Month | Delta |
86+
|-------------+------------+------------+-------|
87+
| TODO | 112 | 110 | -2 |
88+
| In Progress | 40 | 38 | -2 |
89+
| Completed | 450 | 458 | +8 |
90+
91+
*** Test Cases
92+
93+
| TestCases | Last Month | This Month | Delta |
94+
|-----------+------------+------------+-------|
95+
| Passing | 9266 | 9329 | +63 |
96+
| Failed | - | - | - |
97+
| XFAIL | 264 | 262 | -2 |
98+
| XPASS | - | - | - |
99+
100+
*** Milestones Progress
101+
102+
| Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
103+
|-----------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
104+
| Name resolution 2.0 rework | 14% | 20% | - | 1st Jun 2024 | - | 1st Apr 2025 | GCC 15.1 |
105+
| Macro expansion | 29% | 33% | +4% | 1st Jun 2024 | - | 1st Jan 2025 | GCC 15.1 |
106+
| Lang items | 90% | 90% | - | 1st Jul 2024 | - | 21st Nov 2024 | GCC 15.1 |
107+
| Indexing fixes | 0% | 100% | +100% | 21st Jul 2024 | 25th Dec 2024 | 15th Nov 2024 | GCC 15.1 |
108+
| Iterator fixes | 0% | 100% | +100% | 21st Jul 2024 | 25th Dec 2024 | 15th Nov 2024 | GCC 15.1 |
109+
| Auto traits improvements | 0% | 60% | +60% | 15th Sep 2024 | - | 21st Dec 2024 | GCC 15.1 |
110+
| Remaining typecheck issues | 88% | 88% | - | 21st Oct 2024 | - | 1st Mar 2025 | GCC 15.1 |
111+
| cfg-core | 0% | 0% | - | 1st Dec 2024 | - | 1st Mar 2025 | GCC 15.1 |
112+
| Codegen fixes | 0% | 0% | - | 7th Oct 2024 | - | 1st Mar 2025 | GCC 15.1 |
113+
114+
| Upcoming Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
115+
|-----------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------|
116+
| Question mark operator | 0% | 0% | - | 15th Dec 2024 | - | 21st Feb 2025 | GCC 15.1 |
117+
| Specialization | 0% | 0% | - | 1st Jan 2025 | - | 1st Mar 2025 | GCC 15.1 |
118+
| Inline assembly | 100% | 100% | - | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
119+
| Borrow checker improvements | 100% | 100% | - | 1st Jun 2024 | 26th Aug 2024 | 15th Sep 2024 | GCC 15.1 |
120+
| Rustc Testsuite Adaptor | 0% | 0% | - | 1st Jun 2024 | - | 15th Sep 2024 | GCC 15.1 |
121+
| black_box intrinsic | 0% | 0% | - | 28th Oct 2024 | - | 28th Jan 2025 | GCC 15.1 |
122+
| Unstable RfL features | 0% | 0% | - | 7th Jan 2025 | - | 1st Mar 2025 | GCC 15.1 |
123+
| cfg-rfl | 0% | 0% | - | 7th Jan 2025 | - | 15th Feb 2025 | GCC 15.1 |
124+
| alloc parser issues | 100% | 100% | - | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 15.1 |
125+
| let-else | 0% | 0% | - | 28th Jan 2025 | - | 28th Feb 2025 | GCC 15.1 |
126+
| Explicit generics with impl Trait | 0% | 0% | - | 28th Feb 2025 | - | 28th Mar 2025 | GCC 15.1 |
127+
| Downgrade to Rust 1.49 | 0% | 0% | - | - | - | 1st Apr 2025 | GCC 15.1 |
128+
| offset_of!() builtin macro | 0% | 0% | - | 15th Mar 2025 | - | 15th May 2025 | GCC 15.1 |
129+
| Generic Associated Types | 0% | 0% | - | 15th Mar 2025 | - | 15th Jun 2025 | GCC 16.1 |
130+
| RfL const generics | 0% | 0% | - | 1st May 2025 | - | 15th Jun 2025 | GCC 16.1 |
131+
| frontend plugin hooks | 0% | 0% | - | 15th May 2025 | - | 7th Jul 2025 | GCC 16.1 |
132+
| Handling the testsuite issues | 0% | 0% | - | 15th Sep 2024 | - | 15th Sep 2025 | GCC 16.1 |
133+
| std parser issues | 100% | 100% | - | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 16.1 |
134+
| main shim | 0% | 0% | - | 28th Jul 2025 | - | 15th Sep 2025 | GCC 16.1 |
135+
136+
| Past Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC |
137+
|-----------------------------------+------------+------------+-------+---------------+-----------------+---------------|------------|
138+
| Data Structures 1 - Core | 100% | 100% | - | 30th Nov 2020 | 27th Jan 2021 | 29th Jan 2021 | GCC 14.1 |
139+
| Control Flow 1 - Core | 100% | 100% | - | 28th Jan 2021 | 10th Feb 2021 | 26th Feb 2021 | GCC 14.1 |
140+
| Data Structures 2 - Generics | 100% | 100% | - | 11th Feb 2021 | 14th May 2021 | 28th May 2021 | GCC 14.1 |
141+
| Data Structures 3 - Traits | 100% | 100% | - | 20th May 2021 | 17th Sep 2021 | 27th Aug 2021 | GCC 14.1 |
142+
| Control Flow 2 - Pattern Matching | 100% | 100% | - | 20th Sep 2021 | 9th Dec 2021 | 29th Nov 2021 | GCC 14.1 |
143+
| Macros and cfg expansion | 100% | 100% | - | 1st Dec 2021 | 31st Mar 2022 | 28th Mar 2022 | GCC 14.1 |
144+
| Imports and Visibility | 100% | 100% | - | 29th Mar 2022 | 13th Jul 2022 | 27th May 2022 | GCC 14.1 |
145+
| Const Generics | 100% | 100% | - | 30th May 2022 | 10th Oct 2022 | 17th Oct 2022 | GCC 14.1 |
146+
| Initial upstream patches | 100% | 100% | - | 10th Oct 2022 | 13th Nov 2022 | 13th Nov 2022 | GCC 14.1 |
147+
| Upstream initial patchset | 100% | 100% | - | 13th Nov 2022 | 13th Dec 2022 | 19th Dec 2022 | GCC 14.1 |
148+
| Update GCC's master branch | 100% | 100% | - | 1st Jan 2023 | 21st Feb 2023 | 3rd Mar 2023 | GCC 14.1 |
149+
| Final set of upstream patches | 100% | 100% | - | 16th Nov 2022 | 1st May 2023 | 30th Apr 2023 | GCC 14.1 |
150+
| Borrow Checking 1 | 100% | 100% | - | TBD | 8th Jan 2024 | 15th Aug 2023 | GCC 14.1 |
151+
| Procedural Macros 1 | 100% | 100% | - | 13th Apr 2023 | 6th Aug 2023 | 6th Aug 2023 | GCC 14.1 |
152+
| GCC 13.2 Release | 100% | 100% | - | 13th Apr 2023 | 22nd Jul 2023 | 15th Jul 2023 | GCC 14.1 |
153+
| GCC 14 Stage 3 | 100% | 100% | - | 1st Sep 2023 | 20th Sep 2023 | 1st Nov 2023 | GCC 14.1 |
154+
| GCC 14.1 Release | 100% | 100% | - | 2nd Jan 2024 | 2nd Jun 2024 | 15th Apr 2024 | GCC 14.1 |
155+
| format_args!() support | 100% | 100% | - | 15th Feb 2024 | - | 1st Apr 2024 | GCC 14.1 |
156+
| GCC 14.2 | 100% | 100% | - | 7th Jun 2024 | 15th Jun 2024 | 15th Jun 2024 | GCC 14.2 |
157+
| GCC 15.1 | 100% | 100% | - | 21st Jun 2024 | 31st Jun 2024 | 1st Jul 2024 | GCC 15.1 |
158+
| Unhandled attributes | 100% | 100% | - | 1st Jul 2024 | 15th Aug 2024 | 15th Aug 2024 | GCC 15.1 |
159+
| Deref and DerefMut improvements | 100% | 100% | - | 28th Sep 2024 | 25th Oct 2024 | 28th Dec 2024 | GCC 15.1 |
160+
161+
** Planned Activities
162+
163+
- Implement remaining built-in derive macros
164+
- Implement Send and Sync auto traits
165+
- Finish for-loops code expansion
166+
- Improve our process for updating our github repository with upstream GCC
167+
168+
*** Risks
169+
170+
We have now entered Stage 3 of GCC development, and all of the patches we needed to get upstreamed have been upstreamed. The risk present in this table is no longer present.
171+
172+
| Risk | Impact (1-3) | Likelihood (0-10) | Risk (I * L) | Mitigation |
173+
|-----------------------------------------------+--------------+-------------------+--------------+-----------------------------------------------------------------|
174+
| Missing features for GCC 15.1 deadline | 2 | 0 | 0 | Start working on required features as early as July (6mo ahead) |
175+
176+
** Detailed changelog

0 commit comments

Comments
 (0)