[GSoC] Rust: Compiling the alloc crate - Status Report 5

Enes Cevik via Gcc <[email protected]> Mon, 03 Aug 2026 17:14:32 +0300
Newsgroups gmane.comp.gcc.devel
Message-ID <[email protected]>
Hi!
This is the fifth report on compiling the alloc crate with GCCRS.

This week I set out to:
- Implement the 4 missing lang items mentioned in the previous report.
- Continue investigating using the mock core as an extern crate.
- Implement the 'coerce_unsized' infrastructure.

Over the week:
- I added the 4 mentioned lang items to the compiler. The
   implementations for 'range_inclusive_new' and 'unsafe_cell' have been
   merged. 'pin' and 'unpin' are currently waiting to be merged.
- I reported several bugs encountered during the alloc crate compilation
   to the Rust-GCC/gccrs issue tracker. Since these issues need to be
   resolved, I have added some to my own to-do list to fix, and shared
   the rest with the core team.
- I implemented the coercion infrastructure. With this patch, GCCRS will
   now support unsized ADT types and their coercions. Additionally,
   array-to-slice coercions are now functional thanks to this patch.
   Because this is a large and complex patch, the review and
   stabilization process may take a long time, which is expected.

Current status:
- Due to major problems in the trait solver, we cannot fully compile the
   mock core. As a result, we cannot advance the compilation phase for
   the alloc testsuite. Therefore, keeping alloc synchronized with the
   core testsuite seems to be the most logical approach right now.
- Aside from that, my current focus is to clean up and resolve the
   issues reported for alloc. Some of these issues are major blockers
   preventing the compilation of alloc. Others aim to minimize the local
   modifications I have had to make to the alloc source code in order to
   compile it.
- Now that we have unsized ADT support, the next step is for 'owned_box'
   to support DSTs.

Best regards,
Enes