# GSoC 2024 projects ## Borrow-checking IR location support Extend the borrow-checker IR (BIR) with information regarding source code location. Update the BIR builder, and use that information for error reporting. Update the testsuite to make use of these new error messages. In the early stages of borrow-checking, this will allow the testsuite to be more precise and ensure that compilation fails for the right reason. In the long run, location information is necessary for the errors to be useful for users. Difficulty: Medium ## Inline assembly Enhance gccrs macro expansion by adding support for all three inline assembly Rust macros: asm!(), llvm_asm!() and global_asm!(). This work will require modifications to mulitple parts of our compiler, with the creation of builtin macro expanders, AST nodes, HIR nodes, as well as the development of a Rust inline-assembly parser to then convert it to the GCC inline assembly format. Difficulty: Medium ## rustc testsuite adaptation Adapt a copy of the rustc testsuite to make use of the error code framework implemented in gccrs as part of GSoC 2023. You will need to develop a testcase runner similar to rustc's one, in order to match error codes and line numbers to the output of gccrs. Difficulty: Medium ## Exploring semantic differences between rustc and gccrs Explore the differences in the assembly generated by gccrs and rustc and start working on a test harness to ensure semantic equivalence as well as soundness - the goal is to have a test framework ready to verify that on top of supporting only valid Rust, gccrs will only emit assembly that behaves like Rust should. This project is very exploratory and will require more independence.