Схема Cyclone-это совершенно новый компилятор, который позволяет разработать реальные приложения, используя стандарт языка схемы R 7 RS. Мы предоставляем современные функции и стабильную систему, способную генерировать быстрые нативные двоичные файлы.
Cheney на MTA используется во время выполнения Cyclone для реализации полной рекурсии, продолжения и сбора мусора для поколений. Кроме того, Cheney на концепции MTA была расширена, чтобы позволить выполнять несколько собственных потоков. Сборщик мусора на лете используется для управления кучей второго поколения и выполнения крупных коллекций без «остановки мира».
syntax-rulesВы можете запустить интерпретатор циклона прямо в вашем браузере. Установка не требуется.
Для полного пользовательского опыта - компиляция файлов, установка пакетов, запуск натурального кода и т. Д. - необходимо установить копию Cyclone.
Доступно несколько вариантов установки:

Циклон можно запустить с изображения Docker:
docker run -it cyclonescm/cyclone bash

Mac (и Linux!) Пользователи, желающие использовать Homebrew, могут сделать следующее.
Примечание, если Homebrew еще не установлен: Следуйте инструкциям по адресу https://brew.sh/, чтобы установить менеджер пакетов Homebrew.
brew tap cyclone-scheme/cyclone
brew install cyclone-scheme/cyclone/cyclone-bootstrap

Пользователи Arch Linux могут установить с помощью AUR:
git clone https://aur.archlinux.org/cyclone-scheme.git
cd cyclone-scheme
makepkg -si

Cyclone доступен в официальном хранилище пакета Gentoo.

Чтобы установить Cyclone на вашем компьютере в первый раз на Linux, Windows, FreeBSD и для пользователей Mac, которые хотят установить, не используя домашний заправочный, используйте циклон-бутстрап для создания набора двоичных файлов. Инструкции предоставляются для Linux, Mac, Windows (через MSYS) и FreeBSD 12.
После установки вы можете запустить команду cyclone для составления одного файла схемы:
$ cyclone examples/fac.scm
$ examples/fac
3628800
И команда icyc для запуска интерактивного переводчика. ПРИМЕЧАНИЕ, вы можете использовать rlwrap , чтобы сделать интерпретатора более дружелюбным, например: 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
Прочитайте документацию ниже для получения дополнительной информации о том, как использовать циклон.

Диспетчер пакетов winds предоставляет возможность устанавливать упакованные библиотеки и программы для циклона. Смотрите сайт Winds для получения дополнительной информации.
Winds Wiki содержит полный список пакетов с документацией.
Руководство пользователя подробно рассказывает о том, как использовать циклон и предоставляет информацию о языковых функциях схемы, реализованных Cyclone.
Ссылка на API доступна для всех библиотек, предоставленных Cyclone, включая полный алфавитный список.
Руководство предоставляется для конвенций с кодом схемы.
Если вам нужен ресурс, чтобы начать изучать язык схемы, вы можете попробовать классический учебник, такой как структура и интерпретация компьютерных программ.
Наконец, эта страница тестов Ecraven сравнивает производительность циклона с другими схемами.
Cyclone предоставляет несколько примеров программ, в том числе:
Оптимизация хвостовых вызовов - простой пример оптимизации хвостовых вызовов схемы; Эта программа работает навсегда, обращаясь к двум взаимно рекурсивным функциям.
Резьба - различные примеры многопоточных программ.
Game of Life - Программа «Игра в Conway Game of Life» и библиотеки от 7 RS.
Game of Life Png Generator - модифицированная версия Game of Life, которая использует Libpng для создания изображения каждой итерации вместо того, чтобы писать его в консоли. Этот пример также демонстрирует базовое использование интерфейса по внешней функции C (FFI).
Наконец, самой большой программой является сам компилятор. Большая часть кода содержится в серии библиотек, которые используются cyclone.scm и icyc.scm для создания исполняемых файлов для компилятора и интерпретатора Cyclone.
Написание компилятора схемы циклонов содержит подробную информацию о том, как был написан компилятор и как он работает.
Существует руководство по разработке с инструкциями для общих задач при взломе самого компилятора.
Коллектор мусора циклона задокументирован на высоком уровне. Этот документ включает в себя подробную информацию о расширении Cheney на MTA, чтобы поддержать несколько стеков и объединение этого подхода с тройным коллекционером маркировки.
Авторское право (C) 2014 Джастин Эфи.
Циклон доступен по лицензии MIT.