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

Recent News

Released Cyclone Scheme 0.9.10

March 5, 2019
This release improves the performance of record types and vectors.

Released Cyclone Scheme 0.9.9

February 19, 2019
This release contains several bug fixes for numeric operations.

Released Cyclone Scheme 0.9.8

February 16, 2019
This release adds a compiler optimization to perform limited memoization of pure functions.