GCC Rust Weekly Status Report 45

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

Milestone Progress

Last week we began work on imports/visibility; it was a quiet week of figuring things out since much of this milestone was started in the previous year by the community, including implementing module support and multiple files. However, this week, some work is needed to determine our milestone progress for these reports accurately so we have left the milestone as no progress change for now.

In other news, we started receiving GSoC draft proposals from interested students on zulip, which we are very excited about!

Completed Activities

  • Bugfix makefile not installing compiler driver when cross-compiling PR1092
  • Fix out of memory issue on huge array constructors PR1087
  • Add compile_error! builtin macro PR1080
  • Cleanup and bugfix of -frust-crate-name being overriden PR1083

Contributors this month

Overall Task Status

CategoryLast WeekThis WeekDelta
TODO114118+4
In Progress2324+1
Completed338339+1
GitHub Issues

Test Cases

CategoryLast WeekThis WeekDelta
Passing57015735+34
Failed
XFAIL2222
XPASS
make check-rust

Bugs

CategoryLast WeekThis WeekDelta
TODO3941+2
In Progress1010
Completed130131+1
GitHub Bugs

Milestones 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 Visibility0%0%29th Mar 202227th May 2022
Const Generics0%0%30th May 202225th Jul 2022
Intrinsics0%0%6th Sept 202130th Sept 2022
GitHub Milestones

Risks

RiskImpact (1-3)Likelihood (0-10)Risk (I * L)Mitigation
Rust Language Changes3721Keep up to date with the Rust language on a regular basis
Going over target dates2510Maintain status reports and issue tracking to stakeholders

Planned Activities

  • Continue work into privacy pass
  • Continue work on metadata exports
  • Merge outstanding PR backlog
  • Iterators lang items

Detailed changelog

Array Constructors

Recently as part of our testing effort to use the rustc testsuite we hit upon a rustc testcase that tries to allocate a 4tb array on the stack. This testcase was designed to detect an out-of-memory case in the rustc compiler rust-lang/rust#66342 we also had this failure in our implementation. The error here is due to the fact for copied array constructors we created a constructor expression of the specified number of elements. This means we create a huge vector in memory at compile time which is inefficent. Though if we follow how the GCC D front-end handles this we can use a loop to initilize the memory and allow the GCC middle-end to optimize this using a memset. The only caveat here is that this is not possible in a const context.

For more information see:

Leave a Reply

Your email address will not be published. Required fields are marked *