-
Notifications
You must be signed in to change notification settings - Fork 160
Google Summer of Code 2021
As part of the GCC organisation, GCC-Rust has been accepted as a mentoring organisation within the Google Summer of Code 2021 framework. This is exciting news for eligible students around the world to add compiler development to your resume.
Please see example projects over on the GCC wiki to get started and reach out to the GCC Rust community on Zulip or email the GCC mailing list. Many other students are already there working on their first contributions.
The application period completes on April 13, 2021, where you can apply to the GCC mentoring organisation for a project for the Rust Front-end, so get your compiler hat on and start coding.
Improve debugging experience by improving the existing HIR dump to include HIR mappings information akin to rustc. We can leverage work here to then emit a name and type resolution dump. This will greatly improve the debugging experience with gcc-rust. We can use the official rustc compiler as a reference here for the HIR dump. Difficulty Medium
Add more deadcode/unreachable static analysis (waqrnings) if a function is unused all functions after that point is unused. In this example bar is unused therefore foo is unused. Difficulty: Medium
fn foo() {
...
}
fn bar() {
foo();
}
fn test() {
....
}
fn main() {
test();
}
Currently the implementation of unused code will warn for bar being unused but we could enhance this to understand that due to bar being unused all reference under that block are unused also marking foo to also be unused. The algorithm is very basic at the moment over in:
https://github.com/Rust-GCC/gccrs/blob/master/gcc/rust/resolve/rust-ast-resolve-unused.h
In rust we could write something like:
let mut a = 123;
let b = a;
This is perfectly fine but if we add tracking or read/writes to names in the resolver we can determine that a is never written to apart from its initializer and warn that a could be made immutable.
See issue: https://github.com/Rust-GCC/gccrs/issues/114
Mentored by Philip Herron. Required Skills include C/C++ and finding a way through a large codebase.
Applications are submitted to the GCC Organisation over on: https://summerofcode.withgoogle.com/organizations/4718882427764736/
Please put this information at the top of your proposal.
- Your full name
- University / current enrollment
- Short bio / overview of your background and or experience
- How can we contact you (email, GitHub username, etc.)? This information will help us associate all of your various usernames with you.
- GitHub username
- Any other user name you want us to know about
Also, please use your full real name in your GSoC portal profile, so that it appears in the proposal list.
Include a section about yourself and your experience with programming, git, open-source C++ or Rust
Your project: explain your project idea, provide details and provide a rough week by week timeline it is important to consider the feasibility of your project.