Our current GC API uses a lot of reference counting to track the number of roots for an object, but this is necessary by our current API. It would be good to check out some other APIs to see how they handle garbage collection:
Our ideal API:
- Disallows sharing
JsValues between Contexts in the same thread.
- Makes it really easy to root and unroot values, while being 100% safe to human error.
- Has compatibility with all GC algorithms, including compaction.
- Allows having concurrent and/or parallel garbage collectors.
- Snapshotting support
Our current GC API uses a lot of reference counting to track the number of roots for an object, but this is necessary by our current API. It would be good to check out some other APIs to see how they handle garbage collection:
runegc-arenaOur ideal API:
JsValues betweenContexts in the same thread.