-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6a85f56
commit 9aa491c
Showing
1 changed file
with
223 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,223 @@ | ||
--- | ||
layout: post | ||
title: "October 2023 Monthly report" | ||
author: Philip Herron, Pierre-Emmanuel Patry and Arthur Cohen | ||
tags: | ||
- monthly-report | ||
--- | ||
|
||
## Overview | ||
|
||
Thanks again to [Open Source Security, inc](https://opensrcsec.com/) and | ||
[Embecosm](https://www.embecosm.com/) for their ongoing support for this | ||
project. | ||
|
||
### Milestone Progress | ||
|
||
We spent the majority of our time this month preparing patches, or | ||
fixing them after receiving reviews on the mailing lists. Some of these | ||
patches take a long time to upstream and review, as they touch common | ||
complex parts of the GCC project such as the build system, which we are | ||
currently fighting with to integrate a new `libgrust` folder containing | ||
various libraries useful to `gccrs`, such as those related to our | ||
procedural macros implementation. These patches are necessary to | ||
upstream before the rest of the work done this year, as intrinsic | ||
compiler features have been moved to this directory. Once this is done, | ||
we will be able to simply push the new patches upstream, after short | ||
modifications to make them more suitable to the upstream GCC project. At | ||
the moment, there are around 900 patches being prepared, with the hope | ||
of pushing them before the end of the month. We are also exploring | ||
solutions to help automate this process a little more, as it represents | ||
very time consuming work which we would like to avoid in the future - | ||
keeping `upstream` up to date with our development repository, with | ||
weekly or bi-weekly updates, should prove worthwhile in the long term. | ||
|
||
On the technical side, a lot of bugs were fixed this month again thanks | ||
to our contributor team. [Jakub Dupak](https://github.com/jdupak) has | ||
been making some amazing progress on borrow-checking in `gccrs`, with | ||
the development of a new, simplified intermediate representation | ||
specifically designed to interact with the polonius borrow-checker. At | ||
the moment, our compiler can start emitting simple errors, such as "use | ||
after move" errors, or simple lifetime analysis, which we are really | ||
excited for. | ||
|
||
We also got in touch with the GCC release maintainers to understand what | ||
was expected of `gccrs` for it to be an integral part of the GCC 14.1 | ||
release, and should be able to fulfill the requirements (`println!()` | ||
macro, simple Rust examples working…). We are very excited for everyone | ||
to be able to try the compiler. | ||
|
||
Finally, October also saw Pierre-Emmanuel and Arthur go to EuroRust, | ||
where they had an amazing time. We are looking forward to coming back | ||
next year. We gave a small talk on the compiler, and the challenges of | ||
compiling the standard Rust library, which we will link to once | ||
released. | ||
|
||
### Community call | ||
|
||
We will have our next monthly community call on the 13th of November | ||
2023. You can subscribe to our calendar to see when the next one will be | ||
held. The call is open to everyone, even if you would just like to | ||
sit-in and listen. You can also subscribe to our | ||
[mailing-list](https://gcc.gnu.org/mailman/listinfo/gcc-rust) or join | ||
our [Zulip chat](https://gcc-rust.zulipchat.com) to be notified of | ||
upcoming events. | ||
|
||
- [jitsi link](https://meet.jit.si/gccrs-community-call-october) | ||
- Calendar ID: | ||
7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894@group.calendar.google.com | ||
- [Google calendar | ||
link](https://calendar.google.com/calendar/embed?src=7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com) | ||
- [iCal | ||
link](https://calendar.google.com/calendar/ical/7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c23b1847f1f5f894%40group.calendar.google.com/public/basic.ics) | ||
|
||
## Completed Activities | ||
|
||
- Ast refactor [PR2721](https://github.com/rust-gcc/gccrs/pull/2721) | ||
- Remove obsolete HIR::BorrowExpr::double<sub>borrow</sub> | ||
[PR2719](https://github.com/rust-gcc/gccrs/pull/2719) | ||
- Parse const with no value | ||
[PR2708](https://github.com/rust-gcc/gccrs/pull/2708) | ||
- Fix overridden virtual method modifier | ||
[PR2707](https://github.com/rust-gcc/gccrs/pull/2707) | ||
- Compile pattern match statements into conditional statements | ||
[PR2705](https://github.com/rust-gcc/gccrs/pull/2705) | ||
- BIR [PR2702](https://github.com/rust-gcc/gccrs/pull/2702) | ||
- HIR cleanup and refactor | ||
[PR2697](https://github.com/rust-gcc/gccrs/pull/2697) | ||
- Fix token lexed as a float literal | ||
[PR2694](https://github.com/rust-gcc/gccrs/pull/2694) | ||
- libgrust: Add changelog, maintainers | ||
[PR2692](https://github.com/rust-gcc/gccrs/pull/2692) | ||
- 2688 labelled block | ||
[PR2689](https://github.com/rust-gcc/gccrs/pull/2689) | ||
- Fix pub unit type parsing | ||
[PR2686](https://github.com/rust-gcc/gccrs/pull/2686) | ||
- Fix macro fragment follow set | ||
[PR2685](https://github.com/rust-gcc/gccrs/pull/2685) | ||
- Make resolution of \`\`\`AssociatedItem\`\`\` instances polymorphic | ||
[PR2683](https://github.com/rust-gcc/gccrs/pull/2683) | ||
- Make lowering of \`\`\`AssociatedItem\`\`\` instances polymorphic | ||
[PR2682](https://github.com/rust-gcc/gccrs/pull/2682) | ||
- gccrs: minor changes (typo and minor refactor) | ||
[PR2681](https://github.com/rust-gcc/gccrs/pull/2681) | ||
- Create base class \`\`\`AssociatedItem\`\`\` | ||
[PR2679](https://github.com/rust-gcc/gccrs/pull/2679) | ||
- Fix parse mut ref | ||
[PR2678](https://github.com/rust-gcc/gccrs/pull/2678) | ||
- Replace \`\`\`get<sub>patternnodeid</sub>\`\`\` with | ||
\`\`\`get<sub>nodeid</sub>\`\`\` | ||
[PR2677](https://github.com/rust-gcc/gccrs/pull/2677) | ||
- Accept \`macro<sub>rules</sub>\` name for a macro rule. | ||
[PR2675](https://github.com/rust-gcc/gccrs/pull/2675) | ||
- Fix macro "default" call at item level | ||
[PR2674](https://github.com/rust-gcc/gccrs/pull/2674) | ||
- Fix closure in closure parsing | ||
[PR2673](https://github.com/rust-gcc/gccrs/pull/2673) | ||
- Fix RangeFromExpr parsing in for loop | ||
[PR2672](https://github.com/rust-gcc/gccrs/pull/2672) | ||
- Fix expression segment parsing | ||
[PR2671](https://github.com/rust-gcc/gccrs/pull/2671) | ||
- Fix global path parsing | ||
[PR2668](https://github.com/rust-gcc/gccrs/pull/2668) | ||
- Rename cloning methods in \`\`\`TupleStructItems\`\`\` and | ||
\`\`\`TuplePatternItems\`\`\` | ||
[PR2661](https://github.com/rust-gcc/gccrs/pull/2661) | ||
- Tyty cast api [PR2647](https://github.com/rust-gcc/gccrs/pull/2647) | ||
- Fix parser bug on tupplestruct pattern | ||
[PR2646](https://github.com/rust-gcc/gccrs/pull/2646) | ||
- Remove unnecessary "empty vector" comments | ||
[PR2644](https://github.com/rust-gcc/gccrs/pull/2644) | ||
- Adjust methods for \`\`\`TuplePatternItems\`\`\` to match | ||
\`\`\`TupleStructItems\`\`\` | ||
[PR2643](https://github.com/rust-gcc/gccrs/pull/2643) | ||
- Fix type confusion in coercion | ||
[PR2642](https://github.com/rust-gcc/gccrs/pull/2642) | ||
- Add tests for v0 mangling | ||
[PR2637](https://github.com/rust-gcc/gccrs/pull/2637) | ||
- Initial implementation of v0 mangling | ||
[PR2615](https://github.com/rust-gcc/gccrs/pull/2615) | ||
- Export proc macros in proc macro crates | ||
[PR2603](https://github.com/rust-gcc/gccrs/pull/2603) | ||
|
||
### Contributors this month | ||
|
||
- [Rizan F](https://github.com/zanf21) (new contributor!) | ||
- [Jakub Dupak](https://github.com/jdupak) | ||
- [Marc Poulhiès](https://github.com/dkm) | ||
- [Owen Avery](https://github.com/powerboat9) | ||
- [Raiki Tamura](https://github.com/tamaroning) | ||
|
||
### Overall Task Status | ||
|
||
| Category | Last Month | This Month | Delta | | ||
|-------------|------------|------------|-------| | ||
| TODO | 256 | 265 | +9 | | ||
| In Progress | 55 | 65 | +10 | | ||
| Completed | 747 | 765 | +18 | | ||
|
||
### Test Cases | ||
|
||
| TestCases | Last Month | This Month | Delta | | ||
|-----------|------------|------------|-------| | ||
| Passing | 8176 | 8203 | +27 | | ||
| Failed | \- | \- | \- | | ||
| XFAIL | 69 | 69 | \- | | ||
| XPASS | \- | \- | \- | | ||
|
||
### Bugs | ||
|
||
| Category | Last Month | This Month | Delta | | ||
|-------------|------------|------------|-------| | ||
| TODO | 93 | 98 | +5 | | ||
| In Progress | 29 | 38 | +9 | | ||
| Completed | 366 | 382 | +16 | | ||
|
||
### Milestones Progress | ||
|
||
| Milestone | Last Month | This Month | Delta | Start Date | Completion Date | Target | | ||
|-----------------------------------|------------|------------|-------|---------------|-----------------|---------------| | ||
| Data Structures 1 - Core | 100% | 100% | \- | 30th Nov 2020 | 27th Jan 2021 | 29th Jan 2021 | | ||
| Control Flow 1 - Core | 100% | 100% | \- | 28th Jan 2021 | 10th Feb 2021 | 26th Feb 2021 | | ||
| Data Structures 2 - Generics | 100% | 100% | \- | 11th Feb 2021 | 14th May 2021 | 28th May 2021 | | ||
| Data Structures 3 - Traits | 100% | 100% | \- | 20th May 2021 | 17th Sep 2021 | 27th Aug 2021 | | ||
| Control Flow 2 - Pattern Matching | 100% | 100% | \- | 20th Sep 2021 | 9th Dec 2021 | 29th Nov 2021 | | ||
| Macros and cfg expansion | 100% | 100% | \- | 1st Dec 2021 | 31st Mar 2022 | 28th Mar 2022 | | ||
| Imports and Visibility | 100% | 100% | \- | 29th Mar 2022 | 13th Jul 2022 | 27th May 2022 | | ||
| Const Generics | 100% | 100% | \- | 30th May 2022 | 10th Oct 2022 | 17th Oct 2022 | | ||
| Initial upstream patches | 100% | 100% | \- | 10th Oct 2022 | 13th Nov 2022 | 13th Nov 2022 | | ||
| Upstream initial patchset | 100% | 100% | \- | 13th Nov 2022 | 13th Dec 2022 | 19th Dec 2022 | | ||
| Update GCC's master branch | 100% | 100% | \- | 1st Jan 2023 | 21st Feb 2023 | 3rd Mar 2023 | | ||
| Final set of upstream patches | 100% | 100% | \- | 16th Nov 2022 | 1st May 2023 | 30th Apr 2023 | | ||
| Borrow Checking 1 | 0% | 0% | \- | TBD | \- | 15th Aug 2023 | | ||
| AST Pipeline for libcore 1.49 | 78% | 78% | \- | 13th Apr 2023 | \- | 1st Jul 2023 | | ||
| HIR Pipeline for libcore 1.49 | 69% | 69% | \- | 13th Apr 2023 | \- | TBD | | ||
| Procedural Macros 1 | 100% | 100% | \- | 13th Apr 2023 | \- | 6th Aug 2023 | | ||
| GCC 13.2 Release | 100% | 100% | \- | 13th Apr 2023 | 22nd Jul 2023 | 15th Jul 2023 | | ||
| GCC 14 Stage 3 | 100% | 100% | \- | 1st Sep 2023 | 20th Sep 2023 | 1st Nov 2023 | | ||
| core 1.49 functionality \[AST\] | 4% | 4% | \- | 1st Jul 2023 | \- | 1st Nov 2023 | | ||
| Rustc Testsuite Prerequisistes | 0% | 0% | \- | TBD | \- | 1st Feb 2024 | | ||
| Intrinsics and builtins | 18% | 18% | \- | 6th Sep 2022 | \- | TBD | | ||
| Const Generics 2 | 0% | 0% | \- | TBD | \- | TBD | | ||
| Rust-for-Linux compilation | 0% | 0% | \- | TBD | \- | TBD | | ||
| GCC 14.1 Release | 0% | 0% | \- | TBD | \- | 15th Apr 2024 | | ||
| Procedural Macros 2 | 0% | 57% | +57% | TBD | \- | TBD | | ||
|
||
### Testing project | ||
|
||
| Testsuite | Compiler | Last month | This month | Success delta | | ||
|-------------------------------------|---------------------|------------|------------|---------------| | ||
| rustc testsuite | gccrs -fsyntax-only | 92.7% | 92.7% | \- | | ||
| gccrs testsuite | rustc stable | 59.2% | 59.2% | \- | | ||
| rustc testsuite passing tests | gccrs | 14.0% | 14.0% | \- | | ||
| rustc testsuite (no<sub>std</sub>) | gccrs | 27.5% | 27.5% | \- | | ||
| rustc testsuite (no<sub>core</sub>) | gccrs | 3.8% | 3.8% | \- | | ||
| blake3 | gccrs | 25.0% | 25.0% | \- | | ||
| libcore | gccrs | 0% | 0% | \- | | ||
|
||
## Planned Activities | ||
|
||
- Opaque types | ||
- Drop marker trait | ||
|
||
## Detailed changelog |