---
# System prepended metadata

title: Kangrejos 2023 status report

---

# Kangrejos 2023 status report

## Upstreaming in GCC 13.1

- The compiler was not released since it was still missing some basic features
- We spent a lot of time sending in patches and getting them approved, and gccrs is now a full part of GCC
- This makes our work much easier for the planned first release of gccrs within GCC, which should happen with GCC 14.1

## Technical side of things

- Macro name resolution
- Fixes to macro expansion to properly handle eager expansion of builtin macros
- Fixed point expansion and name resolution algorithm
- Implementation of derive macros framework, support for Clone and Copy
- Closures support
- Iterators support
- Binding associated types (`core::ops::Add<Output = i32>>`)
- Procedural macros are almost completely implemented
- Unicode support 
- Support for `Fn` traits
- Integration of rustc error codes within the compiler
    - This will help us pass the rustc testsuite when the time comes
- Compiler intrinsics
- Complete rework of our name resolution pass
- Jakub Dupak's master thesis is about integrating polonius to gccrs, in order to have access to a borrow checker

## Upcoming work

- Mostly upstreaming work... which takes a very long time
- Support for `format_args!()` builtin macro
    - Kernel print macros, `println!()` in `core`...

## Upstreaming in GCC 14.1

- Patch upstreaming has started again
- Sending in commits which affect common GCC parts (such as the build system)
- Once these are accepted, we will begin upstreaming all of the work we did since ~April 2023, which is around 900 commits
- We are hoping to be released as part of GCC 14.1

## Talks

- FOSDEM
- GNU Cauldron (22/09/2023)
- EuroRust (13/10/2023)