Ticket #596 (closed roadmap: fixed)

Opened 6 years ago

Last modified 5 years ago

garbage collectable contexts

Reported by: allison Owned by:
Priority: normal Milestone: 1.9
Component: none Version:
Severity: medium Keywords: pmc
Cc: Language:
Patch status: Platform:

Description


Attachments

context.c Download (3.6 KB) - added by whiteknight 5 years ago.
an example file for how a new Context abstraction API could look. Does not build and is not pretty

Change History

Changed 6 years ago by whiteknight

  • status changed from new to assigned
  • keywords pmc added

Okay, talking to Allison++ on IRC has given me a good idea about how to get this all done. Here's the general roadmap for this task. Note that not all of these will need to be completed to close this particular ticket, so once we get the first two items done we can open tickets to support the others:

1) Create a Context PMC that mirrors the functionality of the current Parrot_Context structure 2) Replace all uses of Interp_Context and Parrot_Context structures with the new Context PMC 3) Combine the RetContinuation PMC into the Context PMC 4) Combine the Call_State structure, which is used extensively in the /src/call/* and the /src/jit/* subsystems, into the Context PMC. 5) Combine the CallSignature PMC into the Context PMC. Optimize the calling paths heavily to reduce the amount of data shuffling that needs to be done to make a call.

Lots of work to do, but again only #1 and #2 really need to be done to complete this ticket. The remainder are wishlist items for the distant future (Possibly post-2.0)

Changed 6 years ago by coke

This was originally mentioned in " http://rt.perl.org/rt3/Ticket/Display.html?id=60564", which is superseded by this ticket.

Changed 5 years ago by whiteknight

an example file for how a new Context abstraction API could look. Does not build and is not pretty

Changed 5 years ago by whiteknight

I've attached an example file here for the start of what could become a context API. Here is a rough path to complete this ticket:

  • Implement an API (like the one attached, but prettier) that does everything we need to do with contexts without having to poke into the guts of the data structure directly
  • Begin moving context accesses behind this abstraction layer
  • Once contexts are completely abstracted behind the API, we can convert them to a new storage format more easily.

Changed 5 years ago by allison

  • status changed from assigned to new
  • owner whiteknight deleted
  • summary changed from garbage collectable contexts (rescheduled from 0.9.0) to garbage collectable contexts
  • milestone changed from 2.0 to 1.9

Changed 5 years ago by bacek

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

context_pmc3 branch with GCable Contexts merged into trunk.

Note: See TracTickets for help on using tickets.