debug | ||
docs | ||
examples | ||
scheme | ||
tests | ||
.gitignore | ||
cgen.scm | ||
cyclone.h | ||
cyclone.scm | ||
dispatch.c | ||
eval.scm | ||
FEATURES.md | ||
generate-c.scm | ||
icyc.scm | ||
libraries.scm | ||
Makefile | ||
Makefile-bootstrap | ||
parser.scm | ||
README.md | ||
runtime-main.h | ||
runtime.c | ||
runtime.h | ||
test.scm | ||
test2.scm | ||
TODO | ||
transforms.scm | ||
util.scm |
Cyclone is an experimental Scheme-to-C compiler that uses the Cheney on the MTA technique to implement full tail recursion, continuations, and generational garbage collection.
Building
Prerequisites:
- make
- gcc
- CHICKEN Scheme
CHICKEN is required to bootstrap the Scheme parts of Cyclone. A long-term goal is for the compiler to be self-hosting.
From the source directory, to build and run the compiler:
$ make
...
$ ./cyclone
To run the interpreter:
$ ./icyc
Installation
At the moment there is no support for a separate installation. Just run cyclone
from the build directory.
Documentation
Run the cyclone
command to compile a single Scheme file, and the repl
command to start the interactive interpreter.
List of features.
TODO: "how it works section", or a link to a document that provides a brief overview. Much of this would also involve tying together references
References
- CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A., by Henry Baker
- CHICKEN Scheme
- Chibi Scheme
- Compiling Scheme to C with closure conversion
- Lisp in Small Pieces, by Christian Queinnec
- R5RS Scheme Specification
- R7RS Scheme Specification
- Structure and Interpretation of Computer Programs, by Harold Abelson and Gerald Jay Sussman with Julie Sussman
- The 90 minute Scheme to C compiler, by Marc Feeley
License
Copyright (C) 2014 Justin Ethier
License terms TBD