Open
Description
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:
- Josephine (Thanks to @Manishearth for his suggestion!)
- Neon
- Post about
rune
gc-arena
Our ideal API:
- Disallows sharing
JsValue
s betweenContext
s 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