|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "July 2024 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 progress done by students this month has been amazing, with multiple |
| 18 | +improvements on all projects. The tool developed by [Muhammad |
| 19 | +Mahad](https://github.com/MahadMuhammad) to adapt `rustc` testcases into |
| 20 | +`gccrs` ones is almost ready, and will soon be used to import the entire |
| 21 | +`rustc` testsuite to our project. [Jasmine |
| 22 | +Tang](https://github.com/badumbatish) has made great progress on |
| 23 | +compiling her inline assembly nodes, and is now figuring out the last |
| 24 | +few details in order to support all of the inline assembly concepts used |
| 25 | +by GCC. Finally, [Kushal Pal](https://github.com/braw-lee) has been |
| 26 | +adding location information throughout the entire borrow-checking pass |
| 27 | +of the compiler, and we are now able to emit proper errors with nice |
| 28 | +hints for users to benefit from. |
| 29 | + |
| 30 | +We are also joined by two new contributors this month, both spending a |
| 31 | +lot of time on some long-standing compiler issues and producing good |
| 32 | +quality work. Thank you both :) |
| 33 | + |
| 34 | +Our 14.2 patches have not been reviewed, and thus did not make it into |
| 35 | +the 14.2 release. This is not important, as the patches only concerned |
| 36 | +documentation changes. Instead, we will be able to upstream these |
| 37 | +patches without prior reviewing from the GCC maintainers in time for the |
| 38 | +15.1 release, as they only concern the Rust frontend files. Regarding |
| 39 | +our 15.1 milestones, we are currently tackling name resolution issues as |
| 40 | +well as solving the issue of [#lang_items](https://doc.rust-lang.org/unstable-book/language-features/lang-items.html), |
| 41 | +which have been a long-standing pain point in the compiler. They are |
| 42 | +supported in all of their facets, except when used for code generation, |
| 43 | +which has to do with how `gccrs` handles paths in general. Fixing this |
| 44 | +will make it easier for us to properly desugar `for`-loops, as well as a |
| 45 | +few other language constructs. |
| 46 | + |
| 47 | +### Community call |
| 48 | + |
| 49 | +We will have our next monthly community call on the 12th of August at |
| 50 | +9am UTC. You can subscribe to our calendar to see when the next one will |
| 51 | +be held. The call is open to everyone, even if you would just like to |
| 52 | +sit-in and listen. You can also subscribe to our |
| 53 | +[mailing-list](https://gcc.gnu.org/mailman/listinfo/gcc-rust) or join |
| 54 | +our [Zulip chat](https://gcc-rust.zulipchat.com) to be notified of |
| 55 | +upcoming events. |
| 56 | + |
| 57 | +- [Jitsi link](https://meet.jit.si/gccrs-community-call-august) |
| 58 | +- Calendar ID: |
| 59 | + 7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894@group.calendar.google.com |
| 60 | +- [Google calendar |
| 61 | + link](https://calendar.google.com/calendar/embed?src=7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com) |
| 62 | +- [iCal |
| 63 | + link](https://calendar.google.com/calendar/ical/7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com/public/basic.ics) |
| 64 | + |
| 65 | +## Call for contribution |
| 66 | + |
| 67 | +- [Issue 3001: Generic arguments are not disambiguated on error |
| 68 | + propagation |
| 69 | + expressions](https://github.com/Rust-GCC/gccrs/issues/3001) |
| 70 | + |
| 71 | +Our error propagation expressions (expressions which use the question |
| 72 | +mark operator, of the form `<expr>?`) are currently forgotten in many of |
| 73 | +our AST visitors. As a result, there are unexpected cases when it comes |
| 74 | +to various parts of the compiler pipeline handling them. In that |
| 75 | +particular case, the function call's generic arguments are not |
| 76 | +disambiguated - the compiler does not know if it needs to be handling a |
| 77 | +generic type, or a const generic value. You will need to add handling to |
| 78 | +our name resolution pass for these error propagation expressions. It |
| 79 | +would be helpful to look at [the current generic |
| 80 | +disambiguation](https://github.com/Rust-GCC/gccrs/blob/75049a3bfee8c3f888994bce3b741a805c631c2a/gcc/rust/resolve/rust-ast-resolve-type.cc#L568) |
| 81 | +to start figuring out where it is called from, and where you need to |
| 82 | +call it. |
| 83 | + |
| 84 | +## Completed Activities |
| 85 | + |
| 86 | +- Remove dependency on nightly Rust |
| 87 | + [PR3101](https://github.com/rust-gcc/gccrs/pull/3101) |
| 88 | +- Move procedural macro tests to their own directory |
| 89 | + [PR3097](https://github.com/rust-gcc/gccrs/pull/3097) |
| 90 | +- Change bug report issue template |
| 91 | + [PR3095](https://github.com/rust-gcc/gccrs/pull/3095) |
| 92 | +- Change assertion of asm operand constructor |
| 93 | + [PR3093](https://github.com/rust-gcc/gccrs/pull/3093) |
| 94 | +- \[#2987\] Patch ICE when deriving Clone and Copy |
| 95 | + [PR3091](https://github.com/rust-gcc/gccrs/pull/3091) |
| 96 | +- Added options for ParseMode |
| 97 | + [PR3090](https://github.com/rust-gcc/gccrs/pull/3090) |
| 98 | +- gccrs: \[E0576\] Associated \`item\` not found in given \`type\` |
| 99 | + [PR3089](https://github.com/rust-gcc/gccrs/pull/3089) |
| 100 | +- Properly striping struct fields when using attrs |
| 101 | + [PR3087](https://github.com/rust-gcc/gccrs/pull/3087) |
| 102 | +- Fix CI bootstrap build with a nightly rust compiler |
| 103 | + [PR3085](https://github.com/rust-gcc/gccrs/pull/3085) |
| 104 | +- Improve error messages for operator expressions |
| 105 | + [PR3084](https://github.com/rust-gcc/gccrs/pull/3084) |
| 106 | +- Add compile error to fix ICE when failing to find enum variants. |
| 107 | + [PR3083](https://github.com/rust-gcc/gccrs/pull/3083) |
| 108 | +- Pin node16 by allowing old version |
| 109 | + [PR3081](https://github.com/rust-gcc/gccrs/pull/3081) |
| 110 | +- gccrs: Add external test directory for testsuite adaptor |
| 111 | + [PR3080](https://github.com/rust-gcc/gccrs/pull/3080) |
| 112 | +- \#\[may<sub>dangle</sub>\] in safe impl |
| 113 | + [PR3078](https://github.com/rust-gcc/gccrs/pull/3078) |
| 114 | +- Remove unnecessary \#include from rust-expr.h |
| 115 | + [PR3077](https://github.com/rust-gcc/gccrs/pull/3077) |
| 116 | +- New class for bck diagnostics |
| 117 | + [PR3076](https://github.com/rust-gcc/gccrs/pull/3076) |
| 118 | +- rust: fix HIR dump for MatchExpr |
| 119 | + [PR3075](https://github.com/rust-gcc/gccrs/pull/3075) |
| 120 | +- Safe-guard InlineAsm structs |
| 121 | + [PR3074](https://github.com/rust-gcc/gccrs/pull/3074) |
| 122 | +- Store parse result of parse<sub>formatstring</sub>(s) |
| 123 | + [PR3073](https://github.com/rust-gcc/gccrs/pull/3073) |
| 124 | +- Added FFIVector to get Polonius output on C++ side |
| 125 | + [PR3058](https://github.com/rust-gcc/gccrs/pull/3058) |
| 126 | +- Fix all tests in execute to be \] |
| 127 | + |
| 128 | +### Contributors this month |
| 129 | + |
| 130 | +- [Liam Naddell](https://github.com/liamnaddell) (new contributor!) |
| 131 | +- [antoniospg](https://github.com/antoniospg) (new contributor!) |
| 132 | +- [Mahad Muhammad](https://github.com/mahadmuhammad) |
| 133 | +- [Kushal Pal](https://github.com/braw-lee) |
| 134 | +- [Jasmine Tang](https://github.com/badumbatish) |
| 135 | +- [Marc Poulhiès](https://github.com/dkm) |
| 136 | +- [Pierre-Emmanuel Patry](https://github.com/P-E-P) |
| 137 | +- [Arthur Cohen](https://github.com/CohenArthur) |
| 138 | + |
| 139 | +### Overall Task Status |
| 140 | + |
| 141 | +| Category | Last Month | This Month | Delta | |
| 142 | +|-------------|------------|------------|-------| |
| 143 | +| TODO | 340 | 338 | -2 | |
| 144 | +| In Progress | 70 | 71 | +1 | |
| 145 | +| Completed | 846 | 856 | +10 | |
| 146 | + |
| 147 | +### Test Cases |
| 148 | + |
| 149 | +| TestCases | Last Month | This Month | Delta | |
| 150 | +|-----------|------------|------------|-------| |
| 151 | +| Passing | 8543 | 8557 | +14 | |
| 152 | +| Failed | \- | \- | \- | |
| 153 | +| XFAIL | 72 | 72 | \- | |
| 154 | +| XPASS | \- | \- | \- | |
| 155 | + |
| 156 | +### Bugs |
| 157 | + |
| 158 | +| Category | Last Month | This Month | Delta | |
| 159 | +|-------------|------------|------------|-------| |
| 160 | +| TODO | 127 | 125 | -2 | |
| 161 | +| In Progress | 38 | 38 | \- | |
| 162 | +| Completed | 419 | 424 | +5 | |
| 163 | + |
| 164 | +### Milestones Progress |
| 165 | + |
| 166 | +| Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC | |
| 167 | +|----------------------------|------------|------------|-------|---------------|-----------------|---------------|------------| |
| 168 | +| GCC 14.2 | 100% | 100% | \- | 7th Jun 2024 | 15th Jun 2024 | 15th Jun 2024 | GCC 14.2 | |
| 169 | +| GCC 15.1 | 100% | 100% | \- | 21st Jun 2024 | 31st Jun 2024 | 1st Jul 2024 | GCC 15.1 | |
| 170 | +| Name resolution 2.0 rework | 6% | 6% | \- | 1st Jun 2024 | \- | 1st Apr 2025 | GCC 15.1 | |
| 171 | +| Macro expansion | 7% | 15% | +8% | 1st Jun 2024 | \- | 1st Jan 2025 | GCC 15.1 | |
| 172 | +| Unhandled attributes | 80% | 80% | \- | 1st Jul 2024 | \- | 15th Aug 2024 | GCC 15.1 | |
| 173 | +| Lang items | 0% | 0% | \- | 1st Jul 2024 | \- | 1st Sep 2024 | GCC 15.1 | |
| 174 | + |
| 175 | +| Upcoming Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC | |
| 176 | +|--------------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------| |
| 177 | +| Indexing fixes | 0% | 0% | \- | 21st Jul 2024 | \- | 15th Sep 2024 | GCC 15.1 | |
| 178 | +| Iterator fixes | 0% | 0% | \- | 21st Jul 2024 | \- | 15th Sep 2024 | GCC 15.1 | |
| 179 | +| Auto traits improvements | 0% | 0% | \- | 15th Sep 2024 | \- | 21st Oct 2024 | GCC 15.1 | |
| 180 | +| Deref and DerefMut improvements | 0% | 0% | \- | 28th Sep 2024 | \- | 28th Oct 2024 | GCC 15.1 | |
| 181 | +| Remaining typecheck issues | 0% | 0% | \- | 21st Oct 2024 | \- | 1st Jan 2025 | GCC 15.1 | |
| 182 | +| cfg-core | 0% | 0% | \- | 1st Dec 2024 | \- | 1st Jan 2025 | GCC 15.1 | |
| 183 | +| Question mark operator | 0% | 0% | \- | 15th Dec 2024 | \- | 21st Feb 2025 | GCC 15.1 | |
| 184 | +| Codegen fixes | 0% | 0% | \- | 7th Oct 2024 | \- | 1st Mar 2025 | GCC 15.1 | |
| 185 | +| Specialization | 0% | 0% | \- | 1st Jan 2025 | \- | 1st Mar 2025 | GCC 15.1 | |
| 186 | +| Inline assembly | 0% | 0% | \- | 1st Jun 2024 | \- | 15th Sep 2024 | GCC 15.1 | |
| 187 | +| Borrow checker improvements | 0% | 0% | \- | 1st Jun 2024 | \- | 15th Sep 2024 | GCC 15.1 | |
| 188 | +| Rustc Testsuite Adaptor | 0% | 0% | \- | 1st Jun 2024 | \- | 15th Sep 2024 | GCC 15.1 | |
| 189 | +| black<sub>box</sub> intrinsic | 0% | 0% | \- | 28th Oct 2024 | \- | 28th Nov 2024 | GCC 15.1 | |
| 190 | +| Unstable RfL features | 0% | 0% | \- | 7th Jan 2025 | \- | 1st Mar 2025 | GCC 15.1 | |
| 191 | +| cfg-rfl | 0% | 0% | \- | 7th Jan 2025 | \- | 15th Feb 2025 | GCC 15.1 | |
| 192 | +| alloc parser issues | 100% | 100% | \- | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 15.1 | |
| 193 | +| let-else | 0% | 0% | \- | 28th Jan 2025 | \- | 28th Feb 2025 | GCC 15.1 | |
| 194 | +| Explicit generics with impl Trait | 0% | 0% | \- | 28th Feb 2025 | \- | 28th Mar 2025 | GCC 15.1 | |
| 195 | +| offset<sub>of</sub>!() builtin macro | 0% | 0% | \- | 15th Mar 2025 | \- | 15th May 2025 | GCC 15.1 | |
| 196 | +| Generic Associated Types | 0% | 0% | \- | 15th Mar 2025 | \- | 15th Jun 2025 | GCC 16.1 | |
| 197 | +| RfL const generics | 0% | 0% | \- | 1st May 2025 | \- | 15th Jun 2025 | GCC 16.1 | |
| 198 | +| frontend plugin hooks | 0% | 0% | \- | 15th May 2025 | \- | 7th Jul 2025 | GCC 16.1 | |
| 199 | +| Handling the testsuite issues | 0% | 0% | \- | 15th Sep 2024 | \- | 15th Sep 2025 | GCC 16.1 | |
| 200 | +| std parser issues | 100% | 100% | \- | 7th Jan 2025 | 31st Jun 2024 | 28th Jan 2025 | GCC 16.1 | |
| 201 | +| main shim | 0% | 0% | \- | 28th Jul 2025 | \- | 15th Sep 2025 | GCC 16.1 | |
| 202 | + |
| 203 | +| Past Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | Target GCC | |
| 204 | +|-----------------------------------|------------|------------|-------|---------------|-----------------|---------------|------------| |
| 205 | +| Data Structures 1 - Core | 100% | 100% | \- | 30th Nov 2020 | 27th Jan 2021 | 29th Jan 2021 | GCC 14.1 | |
| 206 | +| Control Flow 1 - Core | 100% | 100% | \- | 28th Jan 2021 | 10th Feb 2021 | 26th Feb 2021 | GCC 14.1 | |
| 207 | +| Data Structures 2 - Generics | 100% | 100% | \- | 11th Feb 2021 | 14th May 2021 | 28th May 2021 | GCC 14.1 | |
| 208 | +| Data Structures 3 - Traits | 100% | 100% | \- | 20th May 2021 | 17th Sep 2021 | 27th Aug 2021 | GCC 14.1 | |
| 209 | +| Control Flow 2 - Pattern Matching | 100% | 100% | \- | 20th Sep 2021 | 9th Dec 2021 | 29th Nov 2021 | GCC 14.1 | |
| 210 | +| Macros and cfg expansion | 100% | 100% | \- | 1st Dec 2021 | 31st Mar 2022 | 28th Mar 2022 | GCC 14.1 | |
| 211 | +| Imports and Visibility | 100% | 100% | \- | 29th Mar 2022 | 13th Jul 2022 | 27th May 2022 | GCC 14.1 | |
| 212 | +| Const Generics | 100% | 100% | \- | 30th May 2022 | 10th Oct 2022 | 17th Oct 2022 | GCC 14.1 | |
| 213 | +| Initial upstream patches | 100% | 100% | \- | 10th Oct 2022 | 13th Nov 2022 | 13th Nov 2022 | GCC 14.1 | |
| 214 | +| Upstream initial patchset | 100% | 100% | \- | 13th Nov 2022 | 13th Dec 2022 | 19th Dec 2022 | GCC 14.1 | |
| 215 | +| Update GCC's master branch | 100% | 100% | \- | 1st Jan 2023 | 21st Feb 2023 | 3rd Mar 2023 | GCC 14.1 | |
| 216 | +| Final set of upstream patches | 100% | 100% | \- | 16th Nov 2022 | 1st May 2023 | 30th Apr 2023 | GCC 14.1 | |
| 217 | +| Borrow Checking 1 | 100% | 100% | \- | TBD | 8th Jan 2024 | 15th Aug 2023 | GCC 14.1 | |
| 218 | +| Procedural Macros 1 | 100% | 100% | \- | 13th Apr 2023 | 6th Aug 2023 | 6th Aug 2023 | GCC 14.1 | |
| 219 | +| GCC 13.2 Release | 100% | 100% | \- | 13th Apr 2023 | 22nd Jul 2023 | 15th Jul 2023 | GCC 14.1 | |
| 220 | +| GCC 14 Stage 3 | 100% | 100% | \- | 1st Sep 2023 | 20th Sep 2023 | 1st Nov 2023 | GCC 14.1 | |
| 221 | +| GCC 14.1 Release | 100% | 100% | \- | 2nd Jan 2024 | 2nd Jun 2024 | 15th Apr 2024 | GCC 14.1 | |
| 222 | +| format<sub>args</sub>!() support | 100% | 100% | \- | 15th Feb 2024 | \- | 1st Apr 2024 | GCC 14.1 | |
| 223 | + |
| 224 | +## Planned Activities |
| 225 | + |
| 226 | +- Start work on required items for `for` loops |
| 227 | +- Continue work on name resolution and macro expansion for `core` 1.49 |
| 228 | +- Start adding Detailed Changelogs to the reports again |
| 229 | + |
| 230 | +### Risks |
| 231 | + |
| 232 | +There have been no changes to the Risk table this month |
| 233 | + |
| 234 | +| Risk | Impact (1-3) | Likelihood (0-10) | Risk (I \* L) | Mitigation | |
| 235 | +|----------------------------------------|--------------|-------------------|---------------|-----------------------------------------------------------------| |
| 236 | +| Missing features for GCC 15.1 deadline | 2 | 1 | 2 | Start working on required features as early as July (6mo ahead) | |
| 237 | + |
| 238 | +## Detailed changelog |
0 commit comments