-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Labels
component: runtimeConcerning the runtime systemConcerning the runtime systemmeta: triagedHas the issue been triaged yet?Has the issue been triaged yet?skill: C++status: acceptedA bug we intend to fix it.A bug we intend to fix it.type: enhancement
Milestone
Description
Add a stack structure that can allow us to re-use stack frames. There's lots of different stratergies but I'm partial to a spagetti stack that makes use of the GC to clean up frames. Something like.
- Adding a new frame uses a bump-pointer allocation (just like a regular stack frame).
- Capturing marks the frame as captured (mark parents?!)
- Returning "pops" the frame only if it is topmost AND not captured.
- The GC cleans and compacts the stack, removing captured-but-not-referenced frames.
If stack frames are not captured, it means that this part of the program isn't making use of continuations or similar features, or only captures them but never replays them. Then the Plasma abstract machine modle should work as near as possible to native execution, especially with regard to something like the x86 shadow stack.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
component: runtimeConcerning the runtime systemConcerning the runtime systemmeta: triagedHas the issue been triaged yet?Has the issue been triaged yet?skill: C++status: acceptedA bug we intend to fix it.A bug we intend to fix it.type: enhancement