8

GCC Rust Weekly Status Report 14

 3 years ago
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.
neoserver,ios ssh client

GCC Rust Weekly Status Report 14

May 10, 2021May 10, 2021

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK