GCC Rust Weekly Status Report 57

Thanks again to Open Source Security, inc and Embecosm for their ongoing support for this project.

Milestone Progress

This week we saw more bug fixing driven by trying to compile libcore 1.29.0, which exposed bugs in our parser and expansion pass. Concerning our milestone, we merged some more pieces to close out the name resolution pass for this and began work on the type-checking phase. The complicated part of const generics is how to bind the arguments to their respective types; in principle, we should be able to reuse our existing generic argument substitution code, which should solve this.

In terms of google summer of code, Faisal Abbas has ported enough code from the CPP constexpr engine so we can support constant evaluation of function calls with arguments. However, the more we port of the CPP constexpr evaluation, the more we realise we will need to strip it back since during const evaluation, the CPP is still trying to synthesise code which complicates this process, especially for us. This code is yet to be merged into our main branch, but we will focus on this in August.

As mentioned last week, we are focusing on keeping a high pace throughout July and August as not to be too affected by the many exciting conferences we’ll attend in September 🙂 As a reminder, we will be at the Linux Plumbers Conference, GNU Cauldron and Kangrejos. If you’re there as well, feel free to come to chat with us about the project!

Completed Activities

  • Typechecking of default const generic parameters PR1373
  • Disambiguation of generic params PR1358
  • Parse any possible inner attribute items on module expansion PR1392
  • Fix grouped tail expression parsing PR1394
  • Add support for keywords based on rust editions PR1397
  • Fix make check-rust in paralell mode for link tests PR1404
  • Fix bug in recursive macro expansion PR1401
  • Allow repeating metavars in macros PR1405
  • Refactor analysis passes in the compiler pipeline PR1409
  • Add new attribute checking pass PR1406
  • Experiment: Add error-codes to error diagnostics along with embeded url PR1408

Contributors this week

Overall Task Status

CategoryLast WeekThis WeekDelta
TODO152158+6
In Progress2726-1
Completed413418+5
GitHub Issues

Test Cases

CategoryLast WeekThis WeekDelta
Passing64686498+30
Failed
XFAIL3144+13
XPASS
make check-rust

Bugs

CategoryLast WeekThis WeekDelta
TODO6968+1
In Progress1211-1
Completed172176+4
GitHub Bugs

Milestone Progress

MilestoneLast WeekThis WeekDeltaStart DateCompletion DateTarget
Data Structures 1 – Core100%100%30th Nov 202027th Jan 202129th Jan 2021
Control Flow 1 – Core100%100%28th Jan 202110th Feb 202126th Feb 2021
Data Structures 2 – Generics100%100%11th Feb 202114th May 202128th May 2021
Data Structures 3 – Traits100%100%20th May 202117th Sept 202127th Aug 2021
Control Flow 2 – Pattern Matching100%100%20th Sept 20219th Dec 202129th Nov 2021
Macros and cfg expansion100100%1st Dec 202131st Mar 202228th Mar 2022
Imports and Visibility100%100%29th Mar 202213th Jul 202227th May 2022
Const Generics32%40%+8%30th May 202217th Oct 2022
Intrinsics0%0%6th Sept 202214th Nov 2022
GitHub Milestones

Risks

RiskImpact (1-3)Likelihood (0-10)Risk (I * L)Mitigation
Rust Language Changes2714Target specific Rustc version for first go
Going over target dates2714Maintain status reports and issue tracking to stakeholders

Planned Activities

  • Unsafety visitor
  • Const generic argument typechecking
  • Work on overflow traps
  • Bug fixing
  • Submit first patch for gcc-review

Leave a Reply

Your email address will not be published.