Aquario is a GC-oriented Lisp interpreter.
- Lisp-1
- Supports for Implementing GC Algorithms (ex. root scan, object traverse, write barriers, etc.)
- Multiple and Selectable Garbage Collectors:
- Mark-Sweep collector
- Cheney's Copying collector
- Mark-Compact collector
- Reference Counting
- Generational Collector
Aquario is for someone who
- wants to learn how Garbage Collector is implemented
- wants to implement Garbage Collector
- loves Garbage Collection
- CMake
Make a directory to build the binary, execute cmake
and make
, then execute the generated binary aquario
$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./aquario
- Launch CMake GUI
- Enter the source code path and the build path
- Press "Configure", then press "Generate"
- Open aquario.sln with Visual Studio
- Press "Build Solution"
- Press "Start Debugging" or F5 to launch Aquario
To ensure that all GCs are working properly, you can do:
$ make test
Switch to Folderview and click "Run All" in Text Explorer view.
- More supports for GC such as Read Barrier
- More Garbage Collectors such as Yuasa's Snapshot collector
- Visualization
- Profiler