-
Notifications
You must be signed in to change notification settings - Fork 159
Google Summer of Code 2022
Please read https://gcc.gnu.org/wiki/SummerOfCode for more detailed information, this wiki just contains information on the potential projects.
Note these are simply possible projects, we are open to accepting proposals with your own ideas.
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. We expect the HIR dump will output S-expressions which is a good format to allow for the mappings to be added. See the relevant github issues:
- https://github.com/Rust-GCC/gccrs/issues/89
- https://github.com/Rust-GCC/gccrs/issues/88
- Difficulty: Medium
- Size: medium
Mentored by Philip Herron. Required Skills include C/C++ and finding a way through a large codebase.
We currently have two warnings for unused code:
- Deadcode pass
- Unused code
They are currently duplicating warnings we have at the moment. The Deadcode pass is working correctly but the unused code scan is also emitting warnings, we need to remove this unused code pass and update the dead code pass to encompass unused variables.
- Difficulty: Medium
- Size: medium
Mentored by Philip Herron. Required Skills include C/C++ and finding a way through a large codebase.
We need to be able to do constant folding regardless of optimization level for all constants such as array capacity and enum discriminates. We can do this by continuing the port of the gcc/cp/constexpr.c over to gcc/rust/backend/rust-constexpr.cc to get more error handling and improved constant folding.
- Difficulty: Hard
- Size: large
Mentored by Philip Herron. Required Skills include C/C++ and finding a way through a large codebase.
Investigate reusing the Rustc testsuite in the short term by building a script to invoke the gccrs compiler on a specified testcase of the rust-testsuite and parse the annotations to determine if it should pass or fail. We could investigate porting it to reuse our dejagnu suite and use the appropriate annotations
- Difficulty: medium
- Size: medium
Mentored by Philip Herron. Required Skills include Python and finding a way through a large codebase.