Проект демонстрирует возможности находящегося в разработке компилятора cilly, позволяющего транслировать проекты с языке Rust на язык Си. Целью подобной трансляции является предоставление возможности сборки кода, изначально написанного на Rust, в системных окружениях и на архитектурах, не поддерживаемых компилятором rustc. На выходе генерируется код на ANSI С (C89), что потенциально позволит собирать проекты на устаревших системах, которые не поддерживаются в LLVM и GCC, но для которых имеется компилятор ANSI С. Компилятор cilly пока не доступен публично и будет опубликован после его доведения до готовности к широкому тестированию. Работа над проектом ведётся одним энтузиастом на протяжении трёх лет.
Cilly реализован в форме бэкенда для rustc, который транслирует внутреннее представление Rust в исходный код на языке Си. Особенностью cilly является то, что каждая трансляция производится с учётом конкретной платформы и целевого Си-компилятора, которым планируется собирать программу. На стадии проверки cilly формирует профиль целевого Си-компилятора, применяя тестирование на основе сборки набора мини-программ, оценивающих поддержку тех или иных возможностей (например, _Thread_local) и определяющих такие особенности платформы, как размеры типов, выравнивание данных в памяти и раскладка структур.
Источник: http://www.opennet.ru/opennews/art.shtml?num=65834
