Awesome
What's Aquario
Aquario is a GC-oriented Lisp interpreter.
Features of Aquario
- 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
Target persons
Aquario is for someone who
- wants to learn how Garbage Collector is implemented
- wants to implement Garbage Collector
- loves Garbage Collection
How to run
Prerequisite
- CMake
For macOS or Linux
Make a directory to build the binary, execute cmake
and make
, then execute the generated binary aquario
$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./aquario
For Windows
- 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
How to test
To ensure that all GCs are working properly, you can do:
For macOS or Linux
$ make test
For Windows
Switch to Folderview and click "Run All" in Text Explorer view.
Future work
- More supports for GC such as Read Barrier
- More Garbage Collectors such as Yuasa's Snapshot collector
- Visualization
- Profiler