A detailed account of implementing a copying garbage collector for Plush, a dynamically-typed language with actor-based parallelism. The implementation uses a dual-allocator design where each actor has a primary allocator for private allocations and a mailbox allocator for receiving messages, enabling lock-free allocation while supporting message passing between actors. The GC was completed in two weeks with help from a contributor, allowing long-running programs and real-time 3D graphics at 60 FPS, though some optimization work remains for handling large collections.
Sort: