Skip to content

hikarin/aquario

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What's Aquario Build Status

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

  1. Launch CMake GUI
  2. Enter the source code path and the build path
  3. Press "Configure", then press "Generate" cmake-gui
  4. Open aquario.sln with Visual Studio
  5. Press "Build Solution"
  6. 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. visual-studio

Future work

  • More supports for GC such as Read Barrier
  • More Garbage Collectors such as Yuasa's Snapshot collector
  • Visualization
  • Profiler

License