Ticket #828 (closed RFC: done)

Opened 5 years ago

Last modified 4 years ago

Separate out GC String Core

Reported by: whiteknight Owned by:
Priority: normal Milestone:
Component: GC Version: 1.3.0
Severity: medium Keywords: GC
Cc: Language:
Patch status: Platform:

Description

Parrot really has two separate GC mechanisms: the fixed-size pool allocators (like GC_MS) and the string allocator.The string allocator does all sorts of fancy stuff like memory compacting, but it relies pretty heavily on encapsulation-breaking knowledge of the internals of the GC_MS.

In this ticket I propose two things: 1) We be more clear in our documentation and PDDs that we really have two separate cores that do two separate things 2) Improve the interface to the string allocator (and maybe modify the existing GC interface) so that the string core does not depend on intimate knowledge of the workings of the fixed-size core

The alternative is that we combine the two and be more clear that any new gc "core" will need to implement handler functions for both fixed-size headers and arbitrary-sized string buffers. This will require a little bit of rearranging the current GC to put string mangement functions into the GC_MS file.

Change History

Changed 5 years ago by jkeenan

  • keywords GC added

Changed 5 years ago by jkeenan

  • component changed from none to GC

Changed 4 years ago by bacek

  • status changed from new to closed
  • resolution set to done

Hello.

Most of work was done in string_gc_encapsulate branch. Finished in gc_massacre branch which is ready to merge. Closing ticket.

-- Bacek

Note: See TracTickets for help on using tickets.