برمجياتقراءة دقيقتين

أداة الربط mold تصدر بإصدار 3.0.0 بعد إعادة كتابتها بلغة Rust

المغزى

المغزى: نقاش إعادة الكتابة بـ Rust يدور غالبًا بين من لم يكتبوا الأداة الأصلية، وهنا قرّره كاتب اثنتين من أشهر أدوات الربط ودفع ثمنه من وقته.

صدرت أداة mold، المعروفة بسرعتها في مرحلة الربط (linking)، بإصدار 3.0.0 مكتوبًا من جديد بلغة Rust.

ووظيفة الـ linker بسيطة في وصفها. فالمترجم يحوّل كل ملف كود إلى ملف كائن (object file) منفصل، ثم يأتي الـ linker فيدمج هذه الملفات في ملف تنفيذي واحد، ويربط كل اسم بمكانه. وهذه المرحلة الثانية هي ما ينتظره المطور بعد كل تعديل صغير في مشروع كبير.

وكاتب mold هو Rui Ueyama، الكاتب الأصلي لـ LLVM lld، وهو الـ linker الذي تُبنى به Android وChrome وFreeBSD وPlayStation. أي أنه بنى الأداة السائدة، ثم بنى منافستها، ثم أعاد كتابة منافستها بلغة أخرى.

وتُظهر شجرة المصدر الحالية في المستودع أن الانتقال اكتمل ولم يعد في بدايته. ففيها 122 ملفًا بلغة Rust، ولم يبق من لغة C إلا ملفان، ويُدار البناء بأداة Cargo.

وتبقى mold بديلًا مباشرًا (drop-in replacement)، تُستخدم بتمرير خيار إلى المترجم، دون تعديل في الكود أو في بنية المشروع.

وتأتي أهمية الخبر من صاحب القرار أكثر من الأرقام. فقد سبق أن اختلفت اختبارات السرعة بين wild وmold بحسب طريقة القياس. لكن نقاش “إعادة الكتابة بـ Rust” يدور في الغالب بين من لم يكتبوا الأداة الأصلية ولا تولّوا صيانتها، وهنا اتخذ القرار من كتب اثنتين من أشهر أدوات الربط.

وللمطورين في المنطقة فائدة عملية مباشرة. فزمن البناء يُدفع من وقت المطور نفسه، وأثره أكبر على الأجهزة المتوسطة التي يعمل عليها كثيرون.

المصادر

  1. مستودع mold
  2. صفحة الإصدار 3.0.0
  3. طريقة الاستخدام في README
  4. موقع LLVM lld
  5. مستودع wild

من عدد الثلاثاء 25 ربيع الآخر - 6 أكتوبر

أخبار ذات صلة

أخبار الثلاثاء 25 ربيع الآخر - 6 أكتوبر