O Cyclone Scheme é um compilador novinho em folha que permite o desenvolvimento de aplicativos do mundo real usando o padrão de idioma do esquema R 7 RS. Fornecemos recursos modernos e um sistema estável capaz de gerar binários nativos rápidos.
Cheney no MTA é usado pelo tempo de execução do Cyclone para implementar a recursão completa da cauda, continuações e coleta de lixo geracional. Além disso, o Cheney no conceito MTA foi estendido para permitir a execução de vários threads nativos. Um coletor de lixo on-the-fly é usado para gerenciar a pilha de segunda geração e realizar grandes coleções sem "parar o mundo".
syntax-rulesVocê pode executar o intérprete do ciclone no seu navegador. Nenhuma instalação necessária.
Para a experiência completa do usuário - compilando arquivos, instalando pacotes, executando código nativo, etc - é necessário instalar uma cópia do ciclone.
Existem várias opções de instalação disponíveis:

O ciclone pode ser executado a partir de uma imagem do Docker:
docker run -it cyclonescm/cyclone bash

Os usuários Mac (e Linux!) Que desejam usar o homebrew podem fazer o seguinte.
NOTA Se ainda não estiver instalado a Homebrew: siga as instruções em https://brew.sh/ para instalar o gerenciador de pacotes Homebrew.
brew tap cyclone-scheme/cyclone
brew install cyclone-scheme/cyclone/cyclone-bootstrap

Os usuários do Arch Linux podem instalar usando o AUR:
git clone https://aur.archlinux.org/cyclone-scheme.git
cd cyclone-scheme
makepkg -si

O ciclone está disponível no repositório oficial do Pacote Gentoo.

Para instalar o Cyclone em sua máquina pela primeira vez no Linux, Windows, FreeBSD e para usuários de Mac que desejam instalar sem usar o HomeBrew, use o ciclone-Bootstrap para criar um conjunto de binários. As instruções são fornecidas para Linux, Mac, Windows (via MSYS) e FreeBSD 12.
Após a instalação, você pode executar o comando cyclone para compilar um único arquivo de esquema:
$ cyclone examples/fac.scm
$ examples/fac
3628800
E o comando icyc para iniciar um intérprete interativo. Nota Você pode usar rlwrap para tornar o intérprete mais amigável, por exemplo: rlwrap icyc :
$ icyc
:@
@@@
@@@@:
`@@@@@+
.@@@+@@@
@@ @@ Cyclone Scheme->C compiler
,@ http://justinethier.github.io/cyclone/
'@
.@
@@ #@ (c) 2014-2019 Justin Ethier
`@@@#@@@. Version 0.11
#@@@@@
+@@@+
@@#
`@.
cyclone> (write 'hello-world)
hello-world
Leia a documentação abaixo para obter mais informações sobre como usar o Cyclone.

O winds Package Manager oferece a capacidade de instalar bibliotecas e programas embalados para o ciclone. Consulte o site Winds para obter mais informações.
O Wiki Winds contém uma lista completa de pacotes com documentação.
O manual do usuário cobre em detalhes como usar o Cyclone e fornece informações sobre os recursos do idioma do esquema implementados pelo Cyclone.
Uma referência da API está disponível para todas as bibliotecas fornecidas pelo Cyclone, incluindo uma listagem alfabética completa.
Um guia é fornecido para convenções de código de esquema.
Se você precisar de um recurso para começar a aprender o idioma do esquema, experimente um livro clássico, como estrutura e interpretação dos programas de computador.
Finalmente, esta página de referência da Ecraven compara o desempenho do ciclone com outros esquemas.
O Cyclone fornece vários programas de exemplo, incluindo:
Otimização de chamadas de cauda - um exemplo simples de otimização de chamadas de rabo de esquema; Este programa é para sempre, convocando duas funções mutuamente recursivas.
Threading - vários exemplos de programas multithread.
Game of Life - O programa de exemplo de jogo da vida e bibliotecas de Conway de R 7 Rs.
Game of Life PNG Image Gerator - Uma versão modificada do Game of Life que usa libpng para criar uma imagem de cada iteração em vez de escrevê -la para consolar. Este exemplo também demonstra o uso básico da interface da função estrangeira C (FFI).
Finalmente, o maior programa é o próprio compilador. A maior parte do código está contida em uma série de bibliotecas usadas pelo cyclone.scm e icyc.scm para criar executáveis para o compilador e intérprete do Cyclone.
A redação do compilador do esquema de ciclone fornece detalhes de alto nível sobre como o compilador foi escrito e como ele funciona.
Existe um guia de desenvolvimento com instruções para tarefas comuns ao invadir o próprio compilador.
O coletor de lixo do Cyclone está documentado em um nível alto. Este documento inclui detalhes sobre a extensão de Cheney no MTA para suportar várias pilhas e fundir essa abordagem com um colecionador de marcação tri-cor.
Copyright (c) 2014 Justin Ethier.
O ciclone está disponível sob a licença do MIT.