[GSoC] Rust: Compiling the alloc crate - Status Report 3
Enes Cevik
enes@nsvke.com
Wed Jul 1 12:06:18 GMT 2026
Hi!
This is the third report on compiling the alloc crate with GCCRS.
This week I set out to:
- Refactor the fat pointer structure by changing the vtable to a
static struct instead of an array embedded in the fat pointer,
ensuring fat pointers are always 2 words in size.
- Implement the 'coerce_unsized' and 'unsize' lang items.
- Implement the 'size_of_val' and 'min_align_of_val' intrinsics.
Over the week:
- The vtable structure was updated as planned, and fat pointers are
now always 2 words in size.
- With the vtable structure updated, we were able to implement the
'size_of_val' and 'min_align_of_val' intrinsics.
- We came across a bug where trait methods were being
mixed up during dynamic dispatch, and fixed it.
- For 'coerce_unsized' to work correctly, the where clauses in impl
blocks need to be properly processed by the compiler. However, I
noticed that the where clause is currently being ignored. I am
investigating the codebase to find the source of the issue.
- Since the 'coerce_unsized' implementation is blocked, I instead
implemented the 'write_bytes' and 'arith_offset' intrinsics, which
were planned as simpler tasks for next week.
Current status:
- The main priority is to investigate the issue we're having with impl
blocks and try to get a clearer picture of the problem. Based on the
outcome, we will need to make some decisions regarding the
'coerce_unsized' implementation.
- This task will likely take longer than a week, but if it doesn't,
the async/generator lang items need to be registered next. After
that, I expect we'll be ready to move on to expanding the alloc
testsuite, assuming we don't run into another issue.
Best regards,
Enes
More information about the Gcc
mailing list