Π ΡΠΈ Π£ΡΡΠΌΠ°, Π°Π²ΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ° LLVM lld ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° chibicc, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ ΠΏΡΡΠ²ΠΈΡ ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΡΠ΅Π»ΠΈΠ· Π½Π° Π½ΠΎΠ²ΠΈΡ Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Mold, ΠΊΠΎΠΉΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅Π²ΡΠ·Ρ ΠΎΠΆΠ΄Π° ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡ ΡΠ²ΡΡΠ·Π²Π°ΡΠΈΡΠ΅ GNU gold ΠΈ LLVM lld. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΠΏΡΠΈΠ·Π½Π°Ρ Π·Π° Π³ΠΎΡΠΎΠ² Π·Π° ΡΠ°Π±ΠΎΡΠ½ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΊΠ°ΡΠΎ ΠΏΠΎ-Π±ΡΡΠ·Π° ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π° Π·Π°ΠΌΡΠ½Π° Π½Π° GNU linker Π² Linux ΡΠΈΡΡΠ΅ΠΌΠΈ. Π ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π° Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° macOS, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΡΡΠ° Π½Π° Mold Π·Π° Windows.
Mold Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° C++ (C++20) ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° AGPLv3, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ GPLv3, Π½ΠΎ Π½Π΅ ΠΈ Ρ GPLv2, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ°Π·ΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΠ»ΡΠ³ΠΈ. Π’Π°ΠΊΡΠ² ΠΈΠ·Π±ΠΎΡ Π΅ ΡΠ²ΡΡΠ·Π°Π½ Ρ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠΈΠ½Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° β Π°Π²ΡΠΎΡΡΡ Π΅ Π³ΠΎΡΠΎΠ² Π΄Π° ΠΏΡΠΎΠ΄Π°Π΄Π΅ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΠΊΠΎΠ΄Π° Π·Π° ΠΏΡΠ΅Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ°Π½Π΅ ΠΏΠΎΠ΄ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅Π»Π½Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΡ, ΠΊΠ°ΡΠΎ MIT, ΠΈΠ»ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΡΠ³ΠΎΠ²ΡΠΊΠ° Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ AGPL.
Mold ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° GNU linker ΠΈ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ β ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΡ ΡΠΊΠΎΡΠΎΡΡ, ΠΊΠΎΡΡΠΎ Π΅ ΡΠ°ΠΌΠΎ Π΄Π²Π° ΠΏΡΡΠΈ ΠΏΠΎ-Π±Π°Π²Π½Π° ΠΎΡ ΠΏΡΠΎΡΡΠΎΡΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° cp. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Chrome 96 (Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΊΠΎΠ΄Π° 1.89 ΠΠ) Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ debuginfo Π½Π° 8-ΡΠ΄ΡΠ΅Π½ ΠΊΠΎΠΌΠΏΡΡΡΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ GNU gold, ΠΎΡΠ½Π΅ΠΌΠ° 53 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, LLVM lld β 11.7 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° Mold ΡΠ°ΠΌΠΎ 2.2 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ (26 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ GNU gold). ΠΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° Clang 13 (3.18 ΠΠ) Π² GNU gold ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ 64 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π² LLVM lld β 5.8 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° Π² Mold β 2.9 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° Firefox 89 (1.64 ΠΠ) Π² GNU gold ΡΠ° Π½ΡΠΆΠ½ΠΈ 32.9 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π² LLVM lld β 6.8 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° Π² Mold β 1.4 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.

Π‘ΡΠΊΡΠ°ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠ°Π½Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΡΠΈΠ²ΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Mold Π±Π΅ΡΠ΅ Π΄ΡΠ°Π·Π½Π΅Π½Π΅ΡΠΎ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΡΠ°ΠΊΠ° Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ ΡΠ»Π΅Π΄ Π²ΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½ΠΈΡΠΊΠ°ΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΡΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ½ΠΎ Π½ΠΎΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ±ΡΠ³Π²Π° Π΄ΠΎ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎΡΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅.
ΠΠΈΡΠΎΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΡΠ°ΠΉΠ» ΠΎΡ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΎΠ±Π΅ΠΊΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Π² Mold, ΡΠ΅ Π΄ΠΎΡΡΠΈΠ³Π° ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎ-Π±ΡΡΠ·ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΄ΡΠ° Π½Π° CPU ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Mold Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠ΅Ρ
Π½ΠΈΠΊΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Ρ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ·ΠΈ Ρ
Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠΈ ΠΏΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ Ρ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΠΎΡΠΎΠΊ ΠΈ Π΄Π΅Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΏΠΎΠ²ΡΠ°ΡΡΡΠΈ ΡΠ΅ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ΠΊΡΠΈΠΈ Π·Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
