Представлен открытый проект crustc — компилятор rustc, переведённый на язык C

Состоялся выпуск открытого проекта под названием crustc. Это компилятор для языка rustc, созданный путём трансляции кода штатного компилятора rustc 1.98.0-nightly на язык C. На выходе получилось 46 млн строк кода на C, которые можно собрать при помощи GCC и утилиты make.

Собранный таким способом компилятор crustc успешно проходит тесты компиляции Rust-кода, такого как стандартные rust-библиотеки.

По информации OpenNET, проект crustc демонстрирует возможности находящегося в разработке компилятора cilly (старый репозиторий проекта), позволяющего транслировать проекты с языка Rust на язык C. Целью подобной трансляции является предоставление возможности сборки кода, изначально написанного на Rust, в системных окружениях и на архитектурах, не поддерживаемых компилятором rustc. На выходе генерируется код на ANSI С (C89), что потенциально позволит собирать проекты на устаревших системах, которые не поддерживаются в LLVM и GCC, но для которых имеется компилятор ANSI С. Компилятор cilly пока не доступен для публичного ознакомления и будет опубликован после его доведения до готовности к широкому тестированию. Работа над проектом ведётся одним разработчиком (Fractal Fir — aka Michał Kostrubiec) на протяжении трёх лет.

Проект Cilly реализован в форме бэкенда для rustc, который транслирует внутреннее представление Rust в исходный код на языке C. Особенностью cilly является то, что каждая трансляция производится с учётом конкретной платформы и целевого C‑компилятора, которым планируется собирать программу. На стадии проверки cilly формирует профиль целевого C‑компилятора, применяя тестирование на основе сборки набора мини‑программ, оценивающих поддержку тех или иных возможностей (например, Threadlocal) и определяющих такие особенности платформы, как размеры типов, выравнивание данных в памяти и раскладка структур.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев