Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

Выпуск компоновщика Mold 3.0, развиваемого разработчиком LLVM lld

05.10.2026 22:16 (MSK)

Опубликован выпуск компоновщика Mold 3.0, который может применяться в качестве более быстрой прозрачной замены GNU linker на Linux-системах. Проект развивает Rui Ueyama, автор компоновщика LLVM lld. Ключевой особенностью Mold является очень высокая скорость связывания объектных файлов, заметно опережающая компоновщики GNU gold и LLVM lld (компоновка в Mold выполняется со скоростью, всего в два раза медленнее простого копирования файлов утилитой cp). Код написан на языке Rust и распространяется под лицензией MIT.

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

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

Ветка Mold 3.0 примечательна переписыванием кодовой базы с C++ (C++20) на язык Rust. Mold 3.0 может использоваться в качестве прозрачной замены Mold 2.42.1, последнего выпуска на языке C++, и поддерживает все ранее доступные опции и целевые архитектуры. Переход на Rust позволил обезопасить проект от потенциальных проблем при обработке повреждённых объектных файлов - в ситуациях, когда версия на С++ аварийно завершалась из-за обращения к областям памяти за пределами буфера, вариант на Rust останавливает работу на этапе проверки границ. Производительность реализации на Rust находится на одном уровне с версией на C++.

Помимо миграции на Rust ключевой целью при разработке ветки 3.0 было повышение совместимости с GNU ld и подготовка проекта к возможности использования в качестве компоновщика по умолчанию в дистрибутивах Linux. Сборочная система заменена с CMake на Cargo, а система тестов с ctest на cargo test. Из зависимостей исключена библиотека oneTBB.

  1. Главная ссылка к новости (https://github.com/rui314/mold...)
  2. OpenNews: Выпуск компоновщика Mold 2.0, развиваемого разработчиком LLVM lld
  3. OpenNews: В OpenBSD для sshd применена перекомпоновка во время загрузки
  4. OpenNews: Компания Qualcomm открыла компоновщик ELD, пригодный для замены GNU Linker
  5. OpenNews: Разработчики из Google предложили разработать свою libc для LLVM
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66406-mold
Ключевые слова: mold, linker
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (13) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:25, 05/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    lto проблемный процесс, сабж позволяет его ускорить?
     
     
  • 2.2, Аноним (1), 22:26, 05/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    и что там с потреблением памяти, обычный лто уже привычно 10 гб на 1 процесс
     

  • 1.3, Аноним (3), 22:49, 05/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/–
    Это очень хорошая новость!
     

  • 1.4, Аноним (5), 22:54, 05/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/–
    Однажды на опеннете написали новость не про Раст и у админа отвалился член.
     

  • 1.6, Аноним (6), 23:03, 05/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >>вариант на Rust останавливает работу на этапе проверки границ

    Что мешало сделать проверки на C++ ?

     
  • 1.7, Аноним (6), 23:05, 05/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >>Мотивом к созданию Mold стало раздражение от необходимости ждать завершения компоновки после каждого внесения изменения в код

    Надуманная проблема

     
  • 1.8, Bottle (?), 23:16, 05/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Ирония проекта в том, что он сам компилироваться будет ещё медленнее.
    Но, с другой стороны, лучше так, чем никак.
     
     
  • 2.9, жявамэн (ok), 23:22, 05/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ты из тех кто пересобирает файрфокс перед каждым заходом на опеннет?
     

  • 1.11, Аноним9000 (?), 23:29, 05/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Да что же такое, снова несуществующий реальный продукт на раст!
     
     
  • 2.13, Аноним (10), 23:35, 05/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ты посмотри в список контрибьютеров, это нейрослоп (почти)
     

  • 1.12, Инопланетянин (?), 23:30, 05/10/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/–
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: