silenus-dionysus / fluffos-2.x

A repository that tracks Wodan's FluffOS 2.28 and beyond with some enhancements. Linux, OS X, Cygwin.
Other
4 stars 1 forks source link

Implement a concurrent garbage collector. #5

Open silenus-dionysus opened 5 years ago

silenus-dionysus commented 5 years ago

Most modern VM systems handle memory management using a garbage collector. FluffOS being an older system relies on a rather verbose reference counting system. This system should be removed and replaced with a concurrent garbage collector of some type.

silenus-dionysus commented 4 years ago

Depending on if/when the JIT goes in this might need to interact with the LLVM system.

silenus-dionysus commented 4 years ago

This should be a separate module that ties into interpret.c and runs on a separate thread which is initialized when the interpreter is. The main problem is identifying the root set. Perhaps I need to grep for or write a static analyzer in clang to find an approximation of paths where svalue_t is stored and used.