GCC Rust Weekly Status Report 14
source link: https://thephilbert.io/2021/05/10/gcc-rust-weekly-status-report-14/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
GCC Rust Weekly Status Report 14
Thanks again to Open Source Security, inc and Embecosm for their ongoing support for this project.
Milestone Progress
There was no change in the percentage progress for the milestone this week, but we are still on track to be finished by the end of the week. Several of the final tasks are mostly finished but need some more cleanup and testing before they can be merged.
Monthly Community Call
We had our monthly community call for the project on zulip on 7th May 2021 at 10am UTC+1. You can find our meeting minutes: here
Detailed changelog
Fix crash in parser with bad syntax
The parser had a crash when there was a space in between “+” and “=” which has been fixed with a simple null check from a new contributor: teromene
fn test() {
let mut a = 1;
a + = 1;
}
Stricter type checking
All implicit inference variables now get location info which is important for cases where a Path resolves to a generic impl item but the Self type cannot be inferred at that position. To get around this rust expects you to use a turbo fish to explicitly set the type parameter here.
struct Foo<T>(T, bool);
impl<T> Foo<T> {
fn test() -> i32 {
123
}
}
fn main() {
let a = Foo::test();
// { dg-error "type annotations needed" "" { target { *-*-* } } .-1 }
}
Fix crash when returning a generic tuple
The compiler would crash when you return a generic tuple as it was missing some substitution checks.
fn test<A,B>(a:A, b:B) -> (A,B) {
(a,b)
}
fn main() {
let a = test::<i32, i32>(123, 456);
let b = test::<f32, f32>(123f32, 456f32);
}
Completed Activities
- Fix bug in parser: PR409
- Stricter type checking: PR406
- Crash in generics: PR416
- Testsuite cleanup: PR411
Overall Task Status
CategoryLast WeekThis WeekDeltaTODO6769+2In Progress78+1Completed125128+3GitHub Issues
Test Cases
CategoryLast WeekThis WeekDeltaPassing21902261+71XFAIL3840+2Failed–––make check-rustCategoryLast WeekThis WeekDeltaTODO1415+1In Progress35+2Completed3537+2GitHub Bugs
Milestones Progress
MilestoneLast WeekThis WeekDeltaStart DateCompletion DateTargetData Structures 1 – Core100%100%–30th Nov 202027th Jan 202129th Jan 2021Control Flow 1 – Core100%100%–28th Jan 202110th Feb 202126th Feb 2021Data Structures 2 – Generics92%92%–11th Feb 2021–28th May 2021Data Structures 3 – Traits0%0%–––27th Aug 2021Control Flow 2 – Pattern Matching0%0%–––29th Oct 2021Imports and Visibility0%0%–––TBDGitHub Milestones
Risks
RiskImpact (1-3)Likelihood (0-10)Risk (I*L)MitigationCopyright assignments2510Be up front on all PRs that the code is destined to be upstreamed to FSFLanguage Changes3721Keep up to date with the Rust language on a regular basis
Planned Activities
- Complete Generics milestone
- Plan out traits milestone
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK