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

Reply via email to