|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "May 2023 Monthly report" |
| 4 | +author: Philip Herron 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 | +### Milestone Progress |
| 16 | + |
| 17 | +The GCC 13.2 release date is approaching, and we are hard at work trying |
| 18 | +to get `core` integrated to `gccrs`. We are progressing a lot on our AST |
| 19 | +pipeline, with many contributions from external contributors as well as |
| 20 | +work from Pierre-Emmanuel and Arthur. We are still trying to figure out |
| 21 | +some of the steps necessary for integrating the Rust 1.49 version of |
| 22 | +`core` with GCC's build system, and how to properly submit these |
| 23 | +patches upstream in time for reviewing. This year's Google Summer of |
| 24 | +Code is also starting, with our two students getting started on their |
| 25 | +projects this week. This work will be happening in public on our GitHub |
| 26 | +repository and our Zulip chat, which you can join for updates. |
| 27 | + |
| 28 | +We are also getting things ready for submitting a talk to EuroRust in |
| 29 | +October - if you have any subject you'd like us to talk about when we |
| 30 | +meet there, feel free to send us a message or email! The subject of the |
| 31 | +talk is not fully defined yet and we are open to all ideas. |
| 32 | + |
| 33 | +### Community call |
| 34 | + |
| 35 | +We will have our next monthly community call on the 12th of June 2023. |
| 36 | +You can subscribe to our calendar to see when the next one will be held. |
| 37 | +The call is open to everyone, even if you would just like to sit-in and |
| 38 | +listen. You can also subscribe to our |
| 39 | +[mailing-list](https://gcc.gnu.org/mailman/listinfo/gcc-rust) or join |
| 40 | +our [Zulip chat](https://gcc-rust.zulipchat.com) to be notified of |
| 41 | +upcoming events. |
| 42 | + |
| 43 | +- Calendar ID: |
| 44 | + 7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894@group.calendar.google.com |
| 45 | +- [Google calendar |
| 46 | + link](https://calendar.google.com/calendar/embed?src=7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com) |
| 47 | +- [iCal |
| 48 | + link](https://calendar.google.com/calendar/ical/7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com/public/basic.ics) |
| 49 | + |
| 50 | +## Completed Activities |
| 51 | + |
| 52 | +- derive: Add proper derive(Clone) for unions |
| 53 | + [PR2256](https://github.com/rust-gcc/gccrs/pull/2256) |
| 54 | +- derive: Add \#\[derive(Clone)\] for regular structs |
| 55 | + [PR2255](https://github.com/rust-gcc/gccrs/pull/2255) |
| 56 | +- gccrs: get rid of useless helper class and fix header usage |
| 57 | + [PR2254](https://github.com/rust-gcc/gccrs/pull/2254) |
| 58 | +- Add \#\[derive(Copy)\] support |
| 59 | + [PR2253](https://github.com/rust-gcc/gccrs/pull/2253) |
| 60 | +- macro-invoc-lexer: Add Copyright header. |
| 61 | + [PR2251](https://github.com/rust-gcc/gccrs/pull/2251) |
| 62 | +- Properly match delimiters |
| 63 | + [PR2249](https://github.com/rust-gcc/gccrs/pull/2249) |
| 64 | +- gccrs: Fix cast site to not miss type-unifications |
| 65 | + [PR2248](https://github.com/rust-gcc/gccrs/pull/2248) |
| 66 | +- Add missing name-resolution and hir lowering to Stmts |
| 67 | + [PR2247](https://github.com/rust-gcc/gccrs/pull/2247) |
| 68 | +- Fix handling of single fragments in repetitions |
| 69 | + [PR2243](https://github.com/rust-gcc/gccrs/pull/2243) |
| 70 | +- Avoid invalid metavariable substitutions |
| 71 | + [PR2241](https://github.com/rust-gcc/gccrs/pull/2241) |
| 72 | +- Add Spans to procedural macros |
| 73 | + [PR2240](https://github.com/rust-gcc/gccrs/pull/2240) |
| 74 | +- gccrs: remove stray semicolon |
| 75 | + [PR2237](https://github.com/rust-gcc/gccrs/pull/2237) |
| 76 | +- Bug fixes autoderef cycles using derefs |
| 77 | + [PR2235](https://github.com/rust-gcc/gccrs/pull/2235) |
| 78 | +- enr: Cleanup \#\[macro_use\] accumulation |
| 79 | + [PR2231](https://github.com/rust-gcc/gccrs/pull/2231) |
| 80 | +- Only check first item of cfg_attr attribute as predicate |
| 81 | + [PR2230](https://github.com/rust-gcc/gccrs/pull/2230) |
| 82 | +- Fix macro resolutions in middle of multiple nested |
| 83 | + macro_use modules |
| 84 | + [PR2226](https://github.com/rust-gcc/gccrs/pull/2226) |
| 85 | +- Add operator== for Optional. |
| 86 | + [PR2224](https://github.com/rust-gcc/gccrs/pull/2224) |
| 87 | +- Handle keyword metavariables during macro expansion |
| 88 | + [PR2221](https://github.com/rust-gcc/gccrs/pull/2221) |
| 89 | +- Change return type of `token_id_keyword_string` |
| 90 | + [PR2219](https://github.com/rust-gcc/gccrs/pull/2219) |
| 91 | +- derive: Add base for builtin derives and \#\[derive(Clone)\] |
| 92 | + [PR2216](https://github.com/rust-gcc/gccrs/pull/2216) |
| 93 | +- ast: Add `outer_attrs` to all `Item`s |
| 94 | + [PR2215](https://github.com/rust-gcc/gccrs/pull/2215) |
| 95 | +- dump: Dump `TupleIndexExpr`s |
| 96 | + [PR2214](https://github.com/rust-gcc/gccrs/pull/2214) |
| 97 | +- Improve Optional\<T\> implementation |
| 98 | + [PR2213](https://github.com/rust-gcc/gccrs/pull/2213) |
| 99 | +- Improve Optional\<T&\> implementation |
| 100 | + [PR2212](https://github.com/rust-gcc/gccrs/pull/2212) |
| 101 | +- Allow hashing Optional\<T\> |
| 102 | + [PR2211](https://github.com/rust-gcc/gccrs/pull/2211) |
| 103 | +- ast: Propagate type suffix |
| 104 | + [PR2210](https://github.com/rust-gcc/gccrs/pull/2210) |
| 105 | +- Address invalid little-endian-only testcases |
| 106 | + [PR2208](https://github.com/rust-gcc/gccrs/pull/2208) |
| 107 | +- Rework expression statement parsing |
| 108 | + [PR2206](https://github.com/rust-gcc/gccrs/pull/2206) |
| 109 | +- libproc_macro: Change rust literal internals |
| 110 | + [PR2204](https://github.com/rust-gcc/gccrs/pull/2204) |
| 111 | +- Add missing coercion site logic |
| 112 | + [PR2202](https://github.com/rust-gcc/gccrs/pull/2202) |
| 113 | +- Handle keywords in macro fragments |
| 114 | + [PR2200](https://github.com/rust-gcc/gccrs/pull/2200) |
| 115 | +- Fix "default unsafe fn …" parsing |
| 116 | + [PR2199](https://github.com/rust-gcc/gccrs/pull/2199) |
| 117 | +- Fix ICE with unit expressions |
| 118 | + [PR2197](https://github.com/rust-gcc/gccrs/pull/2197) |
| 119 | +- gccrs: Add missing compile locals for constants and statics |
| 120 | + [PR2196](https://github.com/rust-gcc/gccrs/pull/2196) |
| 121 | +- Parse AST::AttrInputMacro attributes |
| 122 | + [PR2185](https://github.com/rust-gcc/gccrs/pull/2185) |
| 123 | +- Add AST::AttrInputMacro |
| 124 | + [PR2177](https://github.com/rust-gcc/gccrs/pull/2177) |
| 125 | +- Make key and key/value config options seperate |
| 126 | + [PR2175](https://github.com/rust-gcc/gccrs/pull/2175) |
| 127 | +- Fix tail expression stripping |
| 128 | + [PR2156](https://github.com/rust-gcc/gccrs/pull/2156) |
| 129 | +- Modularize libproc macro |
| 130 | + [PR2153](https://github.com/rust-gcc/gccrs/pull/2153) |
| 131 | +- builtin: Cleanup handling of builtin macros |
| 132 | + [PR2152](https://github.com/rust-gcc/gccrs/pull/2152) |
| 133 | +- Proc macro type |
| 134 | + [PR2150](https://github.com/rust-gcc/gccrs/pull/2150) |
| 135 | +- Fix out of bounds indexing while expanding macros with repetition |
| 136 | + [PR2141](https://github.com/rust-gcc/gccrs/pull/2141) |
| 137 | +- Handle nested \#\[macro_use\] modules properly |
| 138 | + [PR2131](https://github.com/rust-gcc/gccrs/pull/2131) |
| 139 | +- Added HIR::InlineAsm |
| 140 | + [PR1886](https://github.com/rust-gcc/gccrs/pull/1886) |
| 141 | + |
| 142 | +### Contributors this month |
| 143 | + |
| 144 | +- [Matthew Jasper](https://github.com/matthewjasper) (new |
| 145 | + contributor!) |
| 146 | +- [Owen Avery](https://github.com/powerboat9) |
| 147 | +- [Pierre-Emmanuel Patry](https://github.com/P-E-P) |
| 148 | +- [David Malcolm](https://github.com/davidmalcolm) |
| 149 | +- [mvvsmk](https://github.com/mvvsmk) |
| 150 | + |
| 151 | +### Overall Task Status |
| 152 | + |
| 153 | +| Category | Last Month | This Month | Delta | |
| 154 | +|-------------|------------|------------|-------| |
| 155 | +| TODO | 219 | 227 | +8 | |
| 156 | +| In Progress | 49 | 50 | +1 | |
| 157 | +| Completed | 639 | 670 | +31 | |
| 158 | + |
| 159 | +### Test Cases |
| 160 | + |
| 161 | +| TestCases | Last Month | This Month | Delta | |
| 162 | +|-----------|------------|------------|-------| |
| 163 | +| Passing | 7737 | 7924 | +187 | |
| 164 | +| Failed | \- | \- | \- | |
| 165 | +| XFAIL | 53 | 53 | +13 | |
| 166 | +| XPASS | \- | \- | \- | |
| 167 | + |
| 168 | +### Bugs |
| 169 | + |
| 170 | +| Category | Last Month | This Month | Delta | |
| 171 | +|-------------|------------|------------|-------| |
| 172 | +| TODO | 66 | 72 | +6 | |
| 173 | +| In Progress | 22 | 26 | +4 | |
| 174 | +| Completed | 304 | 327 | +23 | |
| 175 | + |
| 176 | +### Milestones Progress |
| 177 | + |
| 178 | +Note that the intrinsics milestone percentage on github is not |
| 179 | +representative: It shows a 73% completion rate, but does not take into |
| 180 | +account the tracking issues with dozens of unresolved items. Thus the |
| 181 | +percentage is computed using the sum of issues and tracked items done |
| 182 | +divided by the sums of issues and tracked items overall. Similarly, the |
| 183 | +Update GCC's master branch milestone contains a [tracking |
| 184 | +issue](https://github.com/rust-gcc/gccrs/issues/1705) containing over |
| 185 | +200 tasks. The percentage shown here takes this into account. |
| 186 | + |
| 187 | +| Milestone | Last Week | This Week | Delta | Start Date | Completion Date | Target | |
| 188 | +|-----------------------------------|-----------|-----------|-------|---------------|-----------------|---------------| |
| 189 | +| Data Structures 1 - Core | 100% | 100% | \- | 30th Nov 2020 | 27th Jan 2021 | 29th Jan 2021 | |
| 190 | +| Control Flow 1 - Core | 100% | 100% | \- | 28th Jan 2021 | 10th Feb 2021 | 26th Feb 2021 | |
| 191 | +| Data Structures 2 - Generics | 100% | 100% | \- | 11th Feb 2021 | 14th May 2021 | 28th May 2021 | |
| 192 | +| Data Structures 3 - Traits | 100% | 100% | \- | 20th May 2021 | 17th Sep 2021 | 27th Aug 2021 | |
| 193 | +| Control Flow 2 - Pattern Matching | 100% | 100% | \- | 20th Sep 2021 | 9th Dec 2021 | 29th Nov 2021 | |
| 194 | +| Macros and cfg expansion | 100% | 100% | \- | 1st Dec 2021 | 31st Mar 2022 | 28th Mar 2022 | |
| 195 | +| Imports and Visibility | 100% | 100% | \- | 29th Mar 2022 | 13th Jul 2022 | 27th May 2022 | |
| 196 | +| Const Generics | 100% | 100% | \- | 30th May 2022 | 10th Oct 2022 | 17th Oct 2022 | |
| 197 | +| Initial upstream patches | 100% | 100% | \- | 10th Oct 2022 | 13th Nov 2022 | 13th Nov 2022 | |
| 198 | +| Upstream initial patchset | 100% | 100% | \- | 13th Nov 2022 | 13th Dec 2022 | 19th Dec 2022 | |
| 199 | +| Update GCC's master branch | 100% | 100% | \- | 1st Jan 2023 | 21st Feb 2023 | 3rd Mar 2023 | |
| 200 | +| Final set of upstream patches | 96% | 100% | +4% | 16th Nov 2022 | 1st May 2023 | 30th Apr 2023 | |
| 201 | +| Borrow Checking 1 | 0% | 0% | \- | TBD | \- | 15th Aug 2023 | |
| 202 | +| AST Pipeline for libcore 1.49 | 20% | 51% | +31% | 13th Apr 2023 | \- | 1st Jul 2023 | |
| 203 | +| HIR Pipeline for libcore 1.49 | 40% | 53% | +13% | 13th Apr 2023 | \- | TBD | |
| 204 | +| Procedural Macros 1 | 45% | 70% | +25% | 13th Apr 2023 | \- | 6th Aug 2023 | |
| 205 | +| GCC 13.2 Release | 0% | 26% | +26% | 13th Apr 2023 | \- | 15th Jul 2023 | |
| 206 | +| GCC 14 Stage 3 | 0% | 0% | \- | TBD | \- | 1st Nov 2023 | |
| 207 | +| Rustc Testsuite Prerequisistes | 0% | 0% | \- | TBD | \- | 1st Sep 2023 | |
| 208 | +| Intrinsics and builtins | 18% | 18% | \- | 6th Sep 2022 | \- | TBD | |
| 209 | +| Const Generics 2 | 0% | 0% | \- | TBD | \- | TBD | |
| 210 | +| Rust-for-Linux compilation | 0% | 0% | \- | TBD | \- | TBD | |
| 211 | + |
| 212 | +### Testing project |
| 213 | + |
| 214 | +The testing project is on hold as we try and figure out some of the |
| 215 | +issues we're running into with GitHub and our various automations around |
| 216 | +it. |
| 217 | + |
| 218 | +## Planned Activities |
| 219 | + |
| 220 | +- Look at remaining AST issues for compiling `core` |
| 221 | +- Fix remaining type systems bugs for `core` 1.49 |
| 222 | +- Look at procedural macro name resolution |
| 223 | +- Look at moving imports name resolution to Early Name Resolver |
| 224 | + |
| 225 | +## Detailed changelog |
0 commit comments