Нашри аввалини устувори Молдсоз, ки аз ҷониби LLVM lld таҳия шудааст

Руи Уеяма, муаллифи пайвандгари LLVM lld ва компилятори chibicc, аввалин барориши устувори пайвандгари нави баландсифати Mold-ро пешниҳод кард, ки нисбат ба пайвандгари тиллоии GNU ва LLVM lld дар суръати пайваст кардани файлҳои объект ба таври назаррас тезтар аст. Лоиҳа барои татбиқи истеҳсолот омода ҳисобида мешавад ва метавонад ҳамчун ивазкунандаи тезтар ва шаффоф барои пайвандгари GNU дар системаҳои Linux истифода шавад. Нақшаҳо барои нашри навбатии асосӣ аз анҷом додани дастгирии платформаи macOS иборатанд, ки пас аз он кор оид ба мутобиқсозии Mold барои Windows оғоз мешавад.

Молд дар C++ (C++20) навишта шудааст ва дар зери AGPLv3 литсензия шудааст, ки бо GPLv3 мувофиқ аст, аммо бо GPLv2 мувофиқ нест, зеро он ҳангоми таҳияи хидматҳои шабака тағйироти кушодро талаб мекунад. Ин интихоб бо хоҳиши ба даст овардани маблағгузории рушд шарҳ дода мешавад - муаллиф омода аст, ки ҳуқуқҳои кодро барои бозпас гирифтани иҷозатнома тибқи иҷозатномаи иҷозатдодашуда, ба монанди MIT фурӯшад ё барои онҳое, ки аз AGPL қаноатманд нестанд, иҷозатномаи тиҷоратии алоҳида пешниҳод кунад.

Молд тамоми хусусиятҳои пайвандгари GNU-ро дастгирӣ мекунад ва дорои иҷрои хеле баланд аст - пайвастшавӣ бо суръати танҳо нисфи нусхабардории файлҳо бо утилитаи cp иҷро карда мешавад. Масалан, ҳангоми сохтани Chrome 96 (ҳаҷми код 1.89 ГБ) барои пайваст кардани файлҳои иҷрошаванда бо debuginfo дар компютери 8-аслӣ бо истифода аз GNU gold, LLVM lld - 53 сония ва Mold ҳамагӣ 11.7 сония (2.2 маротиба тезтар аз он) лозим аст. тиллои GNU). Ҳангоми пайваст кардани Clang 26 (13 ГБ), он дар GNU тиллоӣ 3.18 сония, дар LLVM lld 64 сония ва дар Mold 5.8 сония вақт мегирад. Ҳангоми сохтани Firefox 2.9 (89 ГБ) он дар GNU тиллоӣ 1.64 сония, дар LLVM lld 32.9 ​​сония ва дар Молд 6.8 сония вақтро мегирад.

Нашри аввалини устувори Молдсоз, ки аз ҷониби LLVM lld таҳия шудааст

Коҳиш додани вақти сохтмон метавонад роҳати таҳияи лоиҳаҳои калонро тавассути кам кардани интизорӣ дар раванди тавлиди файлҳои иҷрошаванда ҳангоми ислоҳ ва санҷиши тағйирот ба таври назаррас беҳтар созад. Ҳавасмандии эҷоди Молд ин ноумедӣ аз интизор шудан ба анҷом ёфтани пайвастшавӣ пас аз ҳар як тағирёбии код, кори сусти пайванддиҳандаҳои мавҷуда дар системаҳои бисёраслӣ ва хоҳиши озмудани меъмории комилан фарқкунандаи пайвастшавӣ бидуни муроҷиат ба моделҳои аз ҳад зиёд мураккаб буд. ҳамчун пайванди афзоянда.

Маҳсулнокии баланди пайваст кардани файли иҷрошаванда аз шумораи зиёди файлҳои объектии аз ҷониби компилятор омодашуда дар Mold тавассути истифодаи алгоритмҳои тезтар, параллелизатсияи фаъоли амалиётҳо байни ядроҳои мавҷудаи CPU ва истифодаи сохторҳои муассири маълумот ба даст оварда мешавад. Масалан, Молд усулҳои иҷрои ҳисобҳои пуршиддатро ҳангоми нусхабардории файлҳо, пеш аз бор кардани файлҳои объектӣ ба хотира, истифодаи ҷадвалҳои зуд барои ҳалли аломатҳо, скан кардани ҷадвалҳои ҷойгиршавӣ дар риштаи алоҳида ва нусхабардории қисмҳои муттаҳидшуда, ки дар файлҳои гуногун такрор мешаванд, амалӣ мекунад.

Манбаъ: opennet.ru

Илова Эзоҳ