🌀 A brand-new compiler that allows practical application development using R7RS Scheme. We provide modern features and a stable system capable of generating fast native binaries.
Find a file
Justin Ethier 5cf4481604 Migrated (filter) to the util module
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.
2015-06-25 21:14:06 -04:00
debug Initial file 2015-02-21 22:15:18 -05:00
docs Initial file 2015-02-21 22:15:18 -05:00
examples Obsolete 2015-05-29 21:15:17 -04:00
scheme Migrated (filter) to the util module 2015-06-25 21:14:06 -04:00
tests Added more I/O tests 2015-06-24 21:22:54 -04:00
.gitignore Initial file 2015-02-21 22:25:06 -05:00
cgen.scm Added util module 2015-06-24 22:28:09 -04:00
cyclone.h Return the "void" object from I/O functions 2015-06-11 22:13:46 -04:00
cyclone.scm Moving common functions to util module 2015-06-24 22:11:41 -04:00
eval.scm Added (file-exists?) and (delete-file) 2015-06-24 21:42:14 -04:00
FEATURES.md Comments on vector support 2015-06-04 21:38:02 -04:00
icyc.scm (scheme write) library 2015-06-11 21:54:39 -04:00
libraries.scm Use simpler constructs instead of and-let* 2015-06-24 23:02:03 -04:00
Makefile Migrated more functions to util 2015-06-24 22:55:09 -04:00
parser.scm Read vectors 2015-06-04 00:00:58 -04:00
README.md Updated URL 2015-05-26 21:39:15 -04:00
runtime-main.h Added Cyc-stdout 2015-06-10 23:02:39 -04:00
runtime.c Added (file-exists?) and (delete-file) 2015-06-24 21:42:14 -04:00
runtime.h Added (file-exists?) and (delete-file) 2015-06-24 21:42:14 -04:00
test.scm Added call-with-values back 2015-06-11 01:35:43 -04:00
test2.scm Compiler error when cond does not have else 2015-06-25 00:26:25 -04:00
TODO Removed completed item 2015-06-24 21:45:15 -04:00
transforms.scm Migrated (filter) to the util module 2015-06-25 21:14:06 -04:00
util.scm Migrated (filter) to the util module 2015-06-25 21:14:06 -04:00

cyclone-scheme

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

License

Copyright (C) 2014 Justin Ethier

License terms TBD