В GCC одобрили внедрение RUST (gccrs)

Недавно стало известно, что Руководящий комитет GCC одобрил включение реализации gccrs (GCC Rust) из компилятора Rust в ядре GCC.

С этим НКУ (Сборник компиляторов GNU) уже есть бэкенд для Rust, через проект под названием rustc_codegen_gcc, основанный Антони Буше. Он все еще находится в стадии разработки, но в сентябре 2021 года он был объединен с основным репозиторием Rust.

Для тех, кто не знает языка Ржавчина, они должны знать, что естьe фокусируется на безопасном управлении памятью и предоставляет средства для достижения высокого параллелизма заданий. Безопасная обработка памяти, которая исключает такие ошибки, как доступ к области памяти после ее освобождения, разыменование нулевых указателей и переполнение границ буфера, достигается в Rust во время компиляции за счет проверки ссылок, отслеживания владения объектом, учета времени жизни объектов (областей видимости). ) и оценку правильности доступа к памяти во время выполнения кода.

Ржавчина также обеспечивает целочисленную защиту от переполнения, требует инициализации переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, по умолчанию применяет концепцию ссылок и неизменяемых переменных.

После интеграции интерфейса в стандартный GCC его можно использовать для компиляции программ на Rust без необходимости установки компилятора rustc, собранного со сборками LLVM.

С ноября 2020 года я работаю полный рабочий день над интерфейсом Rust для GCC благодаря Open Source Security, Inc и Embecosm. В результате я пишу в этот список рассылки, чтобы заранее получить отзывы о коллективном опыте, чтобы спланировать путь к загрузке внешнего интерфейса в GCC.

Важность этого проекта заключается в его важности для Linux, обычно построенного с помощью GCC, где планы разрешить использование Rust вместе с C для кода ядра из соображений безопасности памяти постоянно продвигаются вперед.

Это означает, что компилятор Rust, rustc, может использоваться с серверной частью GCC, Бэкенд — это генератор кода, который поддерживает больше архитектур ЦП, чем LLVM, обычный компилятор бэкенда Rust, хотя есть ограничения, такие как требование исправленной версии GCC.

Альтернативой является наличие полной цепочки инструментов GCC. В январе 2021 года компания Open Source Security, Inc, создавшая усиленную версию ядра Linux под названием Grsecurity, заявила, что будет финансировать «общедоступную разработку» интерфейса GCC для Rust на том основании, что он повышает безопасность, не имея смешивать разные компиляторы.

С моей точки зрения, как лидера в этом интерфейсе, мы в настоящее время находится в стадии интенсивной разработки, поэтому это означает, что изрядное количество кода ротируется еще, и я не вижу, что это изменится, пока мы не сможем успешно скомпилировать коробка libcore позже в этом году. Хотя я хотел бы видеть друг друга объединены в GCC 13, я хочу убедиться, что этот проект будет успешным для все, и это может означать откат к следующему окну выпуска чтобы убедиться, что это управляемо, чтобы создать качественный интерфейс для сидения вместе другим.

Компания процитировала документ, показывающий, «как можно снизить общую безопасность среды выполнения, введя код, написанный на Rust или другом языке, где компилятор не обеспечивает такой же безопасности на двоичном уровне».

Разработчикам gccrs рекомендуется начать работу с группами проверки и GCC Change Release для окончательной доработки и утверждения исправлений с точки зрения соответствия техническим требованиям к коду, добавляемому в GCC.

Предполагая, что разработка gccrs продолжается в соответствии с планом и не выявлено непредвиденных проблем, Интерфейс языка Rust будет интегрирован в выпуск GCC 13, запланированный на май следующего года.. Реализация Rust в GCC 13 будет находиться в статусе бета-версии, еще не включенной по умолчанию.

В конце концов если вам интересно узнать об этом больше о проекте, вы можете ознакомиться с деталями в по следующей ссылке.


Комментарий, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   qtrit сказал

    Отлично, надеюсь реализация будет полезна многим программистам.