Представлен crustc - компилятор rustc, переведённый на язык Си
Опубликован crustc, компилятор для языка Rust, созданный путём трансляции кода штатного компилятора rustc 1.98.0-nightly на язык Си. На выходе получилось 46 млн строк кода на Си, которые можно собрать при помощи GCC и утилиты make. Собранный таким способом компилятор успешно проходит тесты компиляции Rust-кода, такого как стандартные rust-библиотеки.
Проект демонстрирует возможности находящегося в разработке компилятора 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
© OpenNet
