Skip to content

Commit

Permalink
2023-10: Add monthly report
Browse files Browse the repository at this point in the history
  • Loading branch information
CohenArthur committed Nov 6, 2023
1 parent 6a85f56 commit 9aa491c
Showing 1 changed file with 223 additions and 0 deletions.
223 changes: 223 additions & 0 deletions _posts/2023-11-06-2023-10-monthly-report.md
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

0 comments on commit 9aa491c

Please sign in to comment.