-
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
b5e54ea
commit 6a85f56
Showing
1 changed file
with
261 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,261 @@ | ||
--- | ||
layout: post | ||
title: "September 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 | ||
|
||
The focus for this month was the upstreaming of all `gccrs` commits | ||
which affect common GCC parts, in order for our subsequent work to be | ||
upstreamed properly. These patches are essential, as most of the work we | ||
have done this year relies on them: Error codes, for example, require | ||
changes to the error emitting framework within GCC. The procedural macro | ||
work, which was the subject of Pierre-Emmanuel's internship, relies on | ||
changes to the GCC build system in order for our set of Rust libraries | ||
to be built when building the Rust frontend. We are almost done fixing | ||
reviews from the GCC maintainers, and most of the commits aforementioned | ||
have been pushed to GCC's `trunk` branch already. We will now continue | ||
the upstreaming of commits, by sending over 800 patches to `trunk` in | ||
the following weeks. This work needs to be completed before the end of | ||
the GCC 14 development stage, which should happen sometime in May 2024. | ||
|
||
The upstreaming of patches is however a time-consuming task, and coupled | ||
with vacations, GNU Cauldron and the disappearance of our GSoC students, | ||
only 35 pull-requests have been merged to the `gccrs` repository this | ||
month. Nonetheless, we are on track and are happy with the progress of | ||
the compiler. The technical work that has been merged this month focused | ||
on compiler intrinsics, as well as backend cleanups. Furthermore, a | ||
longstanding cross- compilation issue has been fixed, allowing some of | ||
our early `gccrs` users to continue using the compiler for Dreamcast/SH4 | ||
development. | ||
|
||
The main event this month for `gccrs` was GNU Cauldron, during which | ||
Pierre-Emmanuel Patry gave an amazing talk detailing the progress of the | ||
frontend as well as some technical details regarding procedural macros. | ||
You can find the slides for this talk | ||
[here](https://github.com/Rust-GCC/Reporting/blob/main/Cauldron%202023.pdf). | ||
The next talk we will give will be at EuroRust 2023, in a couple of | ||
weeks! | ||
|
||
### Community call | ||
|
||
We will have our next monthly community call on the 9th of October 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 | ||
|
||
- Fix ICE when emitting an error during cfg strip | ||
[PR2639](https://github.com/rust-gcc/gccrs/pull/2639) | ||
|
||
- Fix CanonicalPath for impl | ||
[PR2633](https://github.com/rust-gcc/gccrs/pull/2633) | ||
|
||
- Fix spelling [PR2632](https://github.com/rust-gcc/gccrs/pull/2632) | ||
|
||
- gccrs: Add debug helper to dump HIR | ||
[PR2630](https://github.com/rust-gcc/gccrs/pull/2630) | ||
|
||
- gccrs: port over readonly<sub>error</sub> from c-family for lvalue | ||
assignment checks | ||
[PR2629](https://github.com/rust-gcc/gccrs/pull/2629) | ||
|
||
- gccrs: Remove HIR::ForLoopExpr | ||
[PR2628](https://github.com/rust-gcc/gccrs/pull/2628) | ||
|
||
- \[E0617\] Attempt for invalid type variable in \`variadic\` function | ||
[PR2627](https://github.com/rust-gcc/gccrs/pull/2627) | ||
|
||
- gccrs: Minor typo fix | ||
[PR2626](https://github.com/rust-gcc/gccrs/pull/2626) | ||
|
||
- gccrs: trivial typo fix. | ||
[PR2625](https://github.com/rust-gcc/gccrs/pull/2625) | ||
|
||
- Rename \`\`\`rust<sub>errorcodes</sub>.def\`\`\` to | ||
\`\`\`rust-error-codes.def\`\`\` | ||
[PR2623](https://github.com/rust-gcc/gccrs/pull/2623) | ||
|
||
- Remove unused complex number support | ||
[PR2622](https://github.com/rust-gcc/gccrs/pull/2622) | ||
|
||
- Memoize \`\`\`Backend::wchar<sub>type</sub>\`\`\` | ||
[PR2621](https://github.com/rust-gcc/gccrs/pull/2621) | ||
|
||
- Add \`\`\`assume\`\`\` intrinsic | ||
[PR2619](https://github.com/rust-gcc/gccrs/pull/2619) | ||
|
||
- Remove unused \`ctx\` argument in \`make<sub>unsignedlongtree</sub>\` | ||
function [PR2617](https://github.com/rust-gcc/gccrs/pull/2617) | ||
|
||
- Add license text to libproc<sub>macro</sub> rust interface | ||
[PR2616](https://github.com/rust-gcc/gccrs/pull/2616) | ||
|
||
- Add intrinsics \`copy\` and \`likely\` | ||
[PR2613](https://github.com/rust-gcc/gccrs/pull/2613) | ||
|
||
- Shorten \`make<sub>unsignedlongtree</sub>\` code | ||
[PR2612](https://github.com/rust-gcc/gccrs/pull/2612) | ||
|
||
- Use namespace definition to simplify function declarations | ||
[PR2610](https://github.com/rust-gcc/gccrs/pull/2610) | ||
|
||
- Convert class \`\`\`Backend\`\`\` into namespace | ||
[PR2609](https://github.com/rust-gcc/gccrs/pull/2609) | ||
|
||
- Remove \`\`\`Backend::write<sub>exportdata</sub>\`\`\` | ||
[PR2607](https://github.com/rust-gcc/gccrs/pull/2607) | ||
|
||
- Move remaining expression-related methods into base class | ||
\`\`\`Backend\`\`\` | ||
[PR2606](https://github.com/rust-gcc/gccrs/pull/2606) | ||
|
||
- Move block-related methods into base class \`\`\`Backend\`\`\` | ||
[PR2605](https://github.com/rust-gcc/gccrs/pull/2605) | ||
|
||
- Iterators WORKING | ||
[PR2604](https://github.com/rust-gcc/gccrs/pull/2604) | ||
|
||
- Move statement-related methods into base class \`\`\`Backend\`\`\` | ||
[PR2602](https://github.com/rust-gcc/gccrs/pull/2602) | ||
|
||
- Move function-related methods into base class \`\`\`Backend\`\`\` | ||
[PR2601](https://github.com/rust-gcc/gccrs/pull/2601) | ||
|
||
- Unify raw attribute values | ||
[PR2591](https://github.com/rust-gcc/gccrs/pull/2591) | ||
|
||
- Retrieve proc macro definition | ||
[PR2587](https://github.com/rust-gcc/gccrs/pull/2587) | ||
|
||
- Rename libproc<sub>macro</sub> to libproc<sub>macrointernal</sub> | ||
[PR2585](https://github.com/rust-gcc/gccrs/pull/2585) | ||
|
||
- AltPattern typechecking | ||
[PR2581](https://github.com/rust-gcc/gccrs/pull/2581) | ||
|
||
- Add testcase for \#1260 | ||
[PR2576](https://github.com/rust-gcc/gccrs/pull/2576) | ||
|
||
- \[E0599\] Failed to resovle method implementation | ||
[PR2571](https://github.com/rust-gcc/gccrs/pull/2571) | ||
|
||
- \[E0592\] method or associated functions already defined with same | ||
names [PR2555](https://github.com/rust-gcc/gccrs/pull/2555) | ||
|
||
- Name resolve proc macros | ||
[PR2496](https://github.com/rust-gcc/gccrs/pull/2496) | ||
|
||
- Remove \`\`\`Gcc<sub>backend</sub>\`\`\` | ||
[PR2440](https://github.com/rust-gcc/gccrs/pull/2440) | ||
|
||
- Add libstdc++ dependency to libgrust | ||
[PR2143](https://github.com/rust-gcc/gccrs/pull/2143) | ||
|
||
- Switch to "home made" website instead of using minimal theme | ||
\[\[<https://github.com/Rust-GCC/Rust-GCC.github.io/pull/35%5DPR35>\]\] | ||
|
||
### Contributors this month | ||
|
||
- [Guillaume Gomez](https://github.com/GuillaumeGomez) (new | ||
contributor!) | ||
- [Zixing Liu](https://github.com/liushuyu) | ||
- [Dave Evans](https://github.com/dme2) | ||
- [Owen Avery](https://github.com/powerboat9) | ||
- [Mahad Muhammad](https://github.com/mahadmuhammad) | ||
- [Marc Poulhiès](https://github.com/dkm) | ||
- [Thomas Schwinge](https://github.com/tschwinge) | ||
|
||
### Overall Task Status | ||
|
||
| Category | Last Month | This Month | Delta | | ||
|-------------|------------|------------|-------| | ||
| TODO | 257 | 256 | -1 | | ||
| In Progress | 54 | 55 | +1 | | ||
| Completed | 737 | 747 | +10 | | ||
|
||
### Test Cases | ||
|
||
| TestCases | Last Month | This Month | Delta | | ||
|-----------|------------|------------|-------| | ||
| Passing | 8148 | 8176 | +28 | | ||
| Failed | \- | \- | \- | | ||
| XFAIL | 69 | 69 | \- | | ||
| XPASS | \- | \- | \- | | ||
|
||
### Bugs | ||
|
||
| Category | Last Month | This Month | Delta | | ||
|-------------|------------|------------|-------| | ||
| TODO | 93 | 93 | \- | | ||
| In Progress | 28 | 29 | +1 | | ||
| Completed | 363 | 366 | +3 | | ||
|
||
### 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 | 67% | 69% | +2% | 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 | 0% | 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 | | ||
|
||
### 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 |