Shadow stack implementation for rooting in GCs
Unlike other algorithms to take care of rooted objects like use reference counting to take count of instances on stack, this algorithm maintains a singly linked list of stack roots. This so-called “shadow stack” mirrors the machine stack. Maintaining this data is much faster and memory-efficent than using reference-counted stack roots, it does not require heap allocation, and does not rely on compiler optimizations.
Dummy module that generates shadow stack type to see documentation of all APIs provided.
Create rooted value and push it to provided shadowstack instance.
Instatiate shadow stack type that can work with your GC API.