---
# System prepended metadata

title: GSoC 2023 GCC Rust Project Ideas

---

# GSoC 2023 GCC Rust Project Ideas

We need to update https://gcc.gnu.org/wiki/SummerOfCode

## projects

### Project A - HIR Dump

Implement an HIR dump by leveraging work already done for our AST dump. This should be a pretty printed textural form of our HIR data structures. A completed HIR Dump will create an improved debugging experience for new contributors as the HIR is used to desugar the AST greatly. This HIR dump should be extensible to be reused for a kind of type-resolution dump to emit some type information as a follow-up project.

Difficulty: Easy
Size: 175 (medium)
Mentors: Arthur

### Project B - Unicode support

Our Lexer and AST do not support Unicode strings and identifiers, which we need to be a Rust compiler. The project will require a student to work mostly in the Lexer and AST but the changes here will ripple all the way through our HIR and code-generation passes. For example, in implementing Unicode support, it will make sense to ensure we improve location info, so instead of simply passing around Unicode strings in the IR's we should create a unique string data structure which also contains location info to improve our error diagnostics and debug information.

Difficulty: Hard
Size: 350 hours (large)
Mentors: Arthur and/or Philip

### Project C - Metadata Exports

Rustc support several different metadata outputs which are used in order to support importing crates. We need to support this, there is code in gccrs for the simple case and a framework that we can work to ensure we complete the metadata exports. The student will need to be comfortable with understanding compilation and linking.

Difficulty: Hard
Size: 350 hours (large)
Mentors: Philip

### Loose ideas

* Improving user errors 
    * Research proper rustc error codes to use
    * Improve the various metadata classes used for doing this in gccrs
    * Emit more and better errors in more places
    * Add more hints/notes/informs to help user
