Π ΡΠΈ Π£ΡΡΠΌΠ°, Π°Π²ΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ° 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
