mold 3.0.0 هو إصدار رئيسي جديد للمُوصِل عالي السرعة، معاد كتابته من C++ إلى Rust. هذا هو أول إصدار بلغة Rust، مع كون 2.42.1 هو آخر إصدار بلغة C++. هدف mold 3.x هو سد فجوات التوافق مع GNU ld، خاصة في دعم نصوص المُوصِل، وتمهيد الطريق لاعتماد mold كالمُوصِل الافتراضي في توزيعات Linux.
mold 3.0 هو بديل مباشر لـ 2.42.1، يقبل نفس خيارات سطر الأوامر ويدعم نفس الأهداف. يبقى أداء الربط متساوياً. الانتقال إلى Rust يجعل mold أكثر أماناً مع ملفات الإدخال التالفة؛ إصدار C++ كان يمكنه قراءة ذاكرة خارج الحدود، بينما mold 3.0 يتحقق من الحدود ويحدث ذعراً بدلاً من ذلك.
تشمل تغييرات البناء استخدام Cargo بدلاً من CMake، مما يتطلب Rust 1.95 أو أحدث. قم بتشغيل `cargo build --release` و `./install-mold.sh`. mold لم يعد يعتمد على TBB ويربط بشكل ثابت mimalloc 3.5.3. تعمل مجموعة الاختبارات مع `cargo test`.
تتضمن إصلاحات الأخطاء إصلاح الأعطال مع نصوص الإصدار، `--gc-sections` لم يعد يزيل الوظائف من `--init` و `--fini`، وإصلاح المخرجات غير الحتمية في عدة مجالات. يتم الآن معالجة الأخطاء المتعلقة بإعادة التوطين النسبي للـ PC ضد الرموز في المكتبات المشتركة بشكل صحيح.
المصدر: Hacker News · لخّصه HeadlinesBriefing