https://github.com/hikarin/aquario
GC-oriented Lisp interpreter
https://github.com/hikarin/aquario
c cheney-copying-collector garbage-collector generational-scavenging mark-and-compact mark-and-sweep reference-counting
Last synced: 5 months ago
JSON representation
GC-oriented Lisp interpreter
- Host: GitHub
- URL: https://github.com/hikarin/aquario
- Owner: hikarin
- Created: 2013-01-02T17:05:41.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2021-03-11T13:23:15.000Z (about 4 years ago)
- Last Synced: 2024-08-03T18:16:14.817Z (9 months ago)
- Topics: c, cheney-copying-collector, garbage-collector, generational-scavenging, mark-and-compact, mark-and-sweep, reference-counting
- Language: C
- Homepage:
- Size: 512 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- AwesomeInterpreter - aquario
README
# What's Aquario [](https://travis-ci.org/hikarin/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
1. Launch CMake GUI
2. Enter the source code path and the build path
3. Press "Configure", then press "Generate"

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.
## Future work
* More supports for GC such as Read Barrier
* More Garbage Collectors such as Yuasa's Snapshot collector
* Visualization
* Profiler## License
- NYSL
http://www.kmonos.net/nysl/index.en.html