Домой Софт и приложения Linux Разработчики Mold переписывают высокоскоростной линковщик на Rust

Разработчики Mold переписывают высокоскоростной линковщик на Rust

Проект высокоскоростного линковщика Mold переходит с C++ на Rust. В версии 3.0 разработчики намерены добиться полной совместимости, чтобы стать стандартным инструментом в Linux.

4
0

Разработчики открытого линковщика Mold анонсировали планы по масштабной трансформации проекта. В свежем релизе Mold 2.42.1 сообщается, что следующая крупная итерация — Mold 3.0 — будет полностью переписана с C++ на язык программирования Rust. Ведущий разработчик проекта Руи Уэяма подчеркнул, что зрелость Rust и его сильные гарантии безопасности делают этот язык наиболее подходящим выбором для будущего развития инструмента.

Логотип проекта Mold

Цели разработки Mold 3.0 и переход на Rust

Переход на Rust позволит проекту Mold встать в один ряд с линковщиком Wild, который изначально проектировался с ориентацией на высокую производительность при использовании возможностей этого языка. Основная задача команды — сохранить ту же скорость работы, которой отличались версии линейки 2.xx, при условии повышения надежности кода.

Однако главная цель смены архитектуры заключается в другом: Руи Уэяма стремится сделать Mold полноценной заменой системного линковщика /usr/bin/ld в дистрибутивах Linux. Автор проекта признает, что, несмотря на появление таких быстрых решений, как gold, lld и сам mold, в большинстве современных систем по умолчанию все еще используется GNU ld. Это приводит к тому, что задачи, которые Mold выполняет за сотни миллисекунд, стандартными средствами решаются десятки секунд или даже минуты.

Совместимость с ядрами и прошивками

Руи Уэяма отмечает, что ранее уделял основное внимание скорости, но недостаточно работал над вопросами совместимости, необходимыми для прямой замены системного инструмента. Для реализации этой задачи в рамках серии Mold 3.x разработчики планируют:

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

Эти шаги должны сделать внедрение Mold в качестве стандартного системного компонента практически целесообразным. Успешная интеграция является высшим приоритетом для команды проекта в текущем цикле разработки.

Возможности инкрементальной сборки

Помимо перехода на новый язык программирования и расширения совместимости, авторы Mold рассматривают возможность добавления долгожданной функции — инкрементальной сборки. На текущий момент линковщик не поддерживает данный функционал, однако разработчики ищут способы внедрения такой возможности без ущерба для общей простоты и надежности программного продукта. По мнению авторов, это могло бы значительно ускорить обработку определенных рабочих нагрузок. Более подробная информация о грядущих изменениях представлена в официальном анонсе выпуска Mold 2.42.1.

Источник: https://www.phoronix.com