Relocated as this function is required by the transform and library modules. Also rewrote it to use letrec instead of named let, as the latter is not support yet by cyclone. |
||
---|---|---|
debug | ||
docs | ||
examples | ||
scheme | ||
tests | ||
.gitignore | ||
cgen.scm | ||
cyclone.h | ||
cyclone.scm | ||
eval.scm | ||
FEATURES.md | ||
icyc.scm | ||
libraries.scm | ||
Makefile | ||
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