Cyclone

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.

Features

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
     3628800
    

    And the icyc command to start an interactive interpreter:

     $ icyc
        
                   :@
                 @@@
               @@@@:
             `@@@@@+
            .@@@+@@@      Cyclone
            @@     @@     An experimental Scheme compiler
           ,@             https://github.com/justinethier/cyclone
           '@
           .@
            @@     #@     (c) 2014 Justin Ethier
            `@@@#@@@.     Version 0.0.1 (Pre-release)
             #@@@@@
             +@@@+
             @@#
           `@.
        
     cyclone> (write 'hello-world)
     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.

Documentation

Example Programs

Cyclone provides several example programs, including:

Compiler Internals

Recent News

Released Cyclone Scheme 0.9.3

Oct 01 2018
This release includes various bug fixes.

Released Cyclone Scheme 0.9.2

Aug 26 2018
This release includes various performance enhancements.

Released Cyclone Scheme 0.9.1

Aug 09 2018
This release fixes an intermittent crash affecting `read` and other I/O functions.