Cheney on the M.T.A. with native threads.

Cyclone is a brand-new Scheme-to-C compiler that allows practical development of applications using R7RS Scheme. Cheney on the MTA is used by the runtime to implement full tail recursion, continuations, and generational garbage collection. In addition, the Cheney on the MTA concept has been extended to allow execution of multiple native threads. An on-the-fly garbage collector is used to manage the second-generation heap and perform major collections without “stopping the world”.

Cyclone is the first compiler written entirely in the latest R7RS Scheme language standard, and the intent is to support as much of that language as possible.

Getting Started

  1. To install Cyclone on your machine for the first time use cyclone-bootstrap to build a set of binaries. Instructions are provided for Linux, Mac, and Windows (via MSYS).

  2. After installing you can run the cyclone command to compile a single Scheme file:

     $ cyclone examples/fac.scm
     $ examples/fac

    And the icyc command to start an interactive interpreter:

     $ icyc
            .@@@+@@@      Cyclone
            @@     @@     An experimental Scheme compiler
            @@     #@     (c) 2014 Justin Ethier
            `@@@#@@@.     Version 0.0.1 (Pre-release)
     cyclone> (write 'hello-world)

    You can use rlwrap to make the interpreter more friendly, EG: rlwrap icyc.

  3. Read the documentation below for more information on how to use Cyclone.


Example Programs

Cyclone provides several example programs, including:

Compiler Internals


Copyright (C) 2014 Justin Ethier.

Cyclone is available under the MIT license.