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

Reply via email to