Thanks again to Open Source Security, inc and Embecosm for their ongoing support for this project.
This month saw an influx of new contributors and pull-requests, which we
are extremely happy about. We have opened multiple issues marked as
good-first-pr
in order to make sure that anyone interested in the
project is able to get started. Incidentally, this also caused us to
start looking at enhancing the contributing experience regarding GCC
ChangeLogs and restrictions earlier than planned. This is fine, as most
of the infrastructure was already in place for our work on upstreaming
patches to GCC’s master branch. Overall, more than 60 pull-requests were
merged this month, with 8 new people contributing to the project!
As a consequence, our continuous integration now checks whether or not your commits contain the proper format of Changelog and respect the Digital Certificate of Origin or were made under an FSF copyright assignment. We are putting together more “interactive” to make it easier for first time contributors to create these ChangeLog entries.
We also submitted our list of Google Summer of Code projects, which you can find here on the GCC wiki, in the Rust frontend section. We put together four different projects, two of them being “short” (175 hours) and the rest being “long” (350 hours) projects.
The project also made the trip to FOSDEM at the beginning of February to give a talk to the Rust devroom about some internal workings of the compiler. You can find the recording of that talk here, on the FOSDEM website.
Finally, the most important news for the project this month is the
arrival of Pierre-Emmanuel Patry as a full
time contributor to the project. Pierre-Emmanuel is joining us as part
of his final year internship for his Masters degree, and will be mostly
working on our procedural macros. Notably, his work will consist in
working on a reimplementation of libproc_macro
as well as the various
infrastructure surrounding that crate, such as inter process
communication and client/server behavior within the compiler.
We had our monthly community call on the 13th of February at 10h00 UTC. You can find some notes and minutes about the call in the agenda.
Agenda: https://hackmd.io/@Rust-GCC/ByuPb2Uii
You can subscribe to our newly-created Google calendar to get updates and the dates of events the team will attend. It also contains events for our community calls.
[CL] 24e9bd9..b3fcf32 PR1841
cli: Update safety warning message PR1839
typecheck: Refactor rust-hir-trait-reference.h PR1837
[CL] 849cea5 ec4695a PR1836
Update `gcc-patch-dev` after first half update PR1833
ci: Run commit format checker on push to `trying` branch PR1832
Removed comment copy-pasted from gcc/tree.def PR1826
parser: Fix parsing of closure param list PR1824
parser: Improve parsing of complex generic arguments PR1823
Support for TuplePattern in let statements PR1820
Implement lowering ReferencePattern from AST to HIR PR1818
ci: Require commits check to pass for bors to merge and fix CI names PR1817
Move rust-buffered-queue.h to util folder #1766 PR1816
parser: Allow parsing multiple reference types PR1812
Merge upstream (dummy), “Rust front-end patches v4” PR1811
fixed indentation in AST pretty printed expanded dump of trait. PR1810
Run workflow PR1789
ci: Add commit format checker PR1788
Fix SoB lines PR1784
Remove HIR::GroupedPattern PR1783
Add SoB CI PR1779
Moved operator.h to util/rust-operators.h. PR1778
Rename file rust-ast-full-test.cc to rust-ast.cc PR1777
fixed compiler error message on wildcard pattern within expression PR1776
Create and use CompilePatternLet visitor for compiling let statments PR1775
Added missing GroupedPattern visitors for code generation PR1772
Add type resolution for grouped patterns PR1771
Add HIR lowering for GroupedPattern PR1769
Do not crash on empty macros expand. Fixes #1712 PR1763
Support GroupedPattern during name resolution PR1760
Revert 10-second timeout for each test PR1759
[CL] ast dump and refactor PR1757
[CL] const test cases, const generics, various fixes PR1755
[CL] In place macro expansion and query-based type system PR1754
[CL] type cleanups + const cleanups PR1753
README.md: Added experimental flag & updated gccrs path PR1751
[CL] do not lint public items PR1749
[CL] cleanup macro expansion and parsing PR1748
Add CL checking automation to gcc-patch-dev PR1746
[CL] gccrs: const folding port PR1745
[CL] Double borrow + arithmetic overflow checks + builtin refactor PR1743
Initial type bounds checking for all type checks PR1739
Add support for feature check. PR1737
Change how CompileVarDecl outputs Bvariable’s PR1736
macro: Allow builtin `MacroInvocation`s within the AST PR1735
Add getlocus function for abstract class MetaItemInner. PR1734
diagnostics: Add underline for tokens in diagnostics. PR1733
testsuite: Handle Windows carriage returns properly PR1732
Improve type checking on let statements PR1730
Add support for generics associated type binding PR1724
[CL] First update Changelog tryout: Updating AST dump PR1721
format: Fix git whitespace errors PR1717
rust: add bound parsing in parsegenericarg. PR1716
unsafe: check use of `targetfeature` attribute PR1711
Check const functions for mutable references PR1709
Parse declarative macro (declmacro 2.0) PR1708
Fix frust very long typo PR1707
update the ubuntu version PR1698
ci: Use very long -frust flag for testing PR69
Fix clippy warnings PR67
Category | Last Month | This Month | Delta |
---|---|---|---|
TODO | 186 | 211 | +25 |
In Progress | 32 | 43 | +12 |
Completed | 500 | 522 | +22 |
TestCases | Last Month | This Month | Delta |
---|---|---|---|
Passing | 5467 | 5483 | +16 |
Failed | - | - | - |
XFAIL | 40 | 40 | - |
XPASS | - | - | - |
Category | Last Month | This Month | Delta |
---|---|---|---|
TODO | 55 | 67 | +12 |
In Progress | 16 | 11 | -5 |
Completed | 218 | 227 | +9 |
We are putting together milestones regarding projects such as libproc and will update the Milestone.
Note that the intrinsics milestone percentage on github is not representative: It shows a 69% completion rate, but does not take into account the tracking issues with dozens of unresolved items. Thus the percentage is computed using the sum of issues and tracked items done divided by the sums of issues and tracked items overall. Similarly, the Update GCC’s master branch milestone contains a tracking issue containing over 200 tasks. The percentage shown here takes this into account.
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 Sept 2021 | 27th Aug 2021 |
Control Flow 2 - Pattern Matching | 100% | 100% | - | 20th Sept 2021 | 9th Dec 2021 | 29th Nov 2021 |
Macros and cfg expansion | 0% | 100% | - | 1st Dec 2021 | 31st Mar 2022 | 28th Mar 2022 |
Imports and Visibility | 0% | 100% | - | 29th Mar 2022 | 13th Jul 2022 | 27th May 2022 |
Const Generics | 0% | 100% | - | 30th May 2022 | 10th Oct 2022 | 17th Oct 2022 |
Initial upstream patches | 0% | 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 | 39% | 71% | +32% | 1st Jan 2023 | - | 3rd Mar 2023 |
Final set of upstream patches | 31% | 47% | +16% | 16th Nov 2022 | - | 30th Apr 2023 |
Intrinsics and builtins | 0% | 18% | - | 6th Sept 2022 | - | TBD |
Borrow checking | 0% | 0% | - | TBD | - | TBD |
Const Generics 2 | 0% | 0% | - | TBD | - | TBD |
Rust-for-Linux compilation | 0% | 0% | - | TBD | - | TBD |
Risk | Impact (1-3) | Likelihood (0-10) | Risk (I * L) | Mitigation |
---|---|---|---|---|
Missing GCC 13 upstream window | 2 | 3 | 6 | Merge in GCC 14 and be proactive about reviews |
The testing project is on hold as we try and figure out some of the issues we’re running into with GitHub and our various automations around it.