About this project
Description from the program archive
The proposed project aims at establishing a port between GHC and [MMTk](https://www.mmtk.io/) -- an external memory management toolkit that provides languages with a set of memory management primitives and garbage collectors.
The current existing GHC storage manager (GHCSM) has a sophisticated generational GC; However, it's also optimized and integrated into GHC's runtime, making it difficult to switch to a broader range of collectors. It would be beneficial to generalize GHC's runtime, make it separable from GHCSM, and connect it with a suite of different garbage collections from MMTk.
To achieve this goal, we propose to: 1. Refactor GHC's runtime system to more effectively abstract over storage management operations; 2. Introduce a storage management backend using MMTk's trivial no-GC collection plan; 3. Integrate write barriers necessary for generational collection with MMTk; 4. Introduce support for MMTk's semi-space and mark-sweep GC plans.