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






