العودة
Rust 1.99.1 يُصلح تراجعات في ربط wcslen، وإرجاع bool عبر FFI، وrust-lld على macOS
SiTech AI Team2 دقيقة قراءة

Rust 1.99.1 يُصلح تراجعات في ربط wcslen، وإرجاع bool عبر FFI، وrust-lld على macOS

Rust 1.99.1 إصدار تصحيحي يعالج ثلاثة تراجعات: البديل الاحتياطي لـ wcslen، وإرجاع bool عبر FFI على x86_64، وتحميل libLLVM بواسطة rust-lld على macOS.

ما الذي يُصلحه Rust 1.99.1

نشر فريق Rust إصدار Rust 1.99.1 كإصدار تصحيحي جديد. يُعالج هذا الإصدار ثلاثة تراجعات مُبلغ عنها من الإصدارات السابقة، بما في ذلك المشكلات التي تؤثر على أهداف UEFI، وكود FFI على x86_64، وتكوينات الربط على macOS.

في بعض المشاريع ذات أهداف Rust، قد تظهر أخطاء ربط بسبب رمز wcslen المفقود. الدالة موجودة الآن في مكتبة compiler-builtins الخاصة بـ Rust كحل بديل. نشأت المشكلة لأن LLVM مع تمرير loop-idiom-wcslen يمكنه تقديم استدعاءات لـ wcslen أثناء التحسين، بينما بعض الأهداف لا تملك هذه الدالة لا في libc ولا في أي مكان آخر. على وجه الخصوص، كانت أهداف UEFI معطلة لأي مشروع يستخدم std، لأن بعض هذه الاستدعاءات كانت مُضمّنة في المكتبة القياسية المترجمة مسبقاً، وقد تواجه نماذج كود المستخدمين نفس المشكلة أيضاً.

القيم المُرجعة وتحميل المُربط

دوال Rust التي تُرجع bool عبر FFI كان يمكنها ترك البتات من 1 إلى 7 في سجل الإرجاع غير مُهيأة، مما يعني أن المستدعين قد يرون قيماً غير صالحة غير 0 أو 1. نوع الإرجاع موسوم الآن للتوسيع بالأصفار كما يتطلب ABI.

بشكل منفصل، لم يكن بالإمكان تشغيل rust-lld على macOS عند استدعاء المترجم بدون وكيل rustup، لعدم وجود معامل مباشر لمسار البحث عن المكتبة المناسبة. Rust 1.99.1 يبني rust-lld الآن مع سجل rpath للدليل الذي يحتوي على libLLVM.dylib.

كيفية التحديث والاختبار

يمكن للمستخدمين الذين ثبّتوا إصداراً سابقاً عبر rustup الترقية إلى 1.99.1 باستخدام rustup update stable. يمكن لمن لا يملكون rustup الحصول عليه من الصفحة المناسبة على موقع Rust الإلكتروني. دعا فريق إصدارات Rust أيضاً الأشخاص لتجربة الإصدارات المستقبلية عبر قناتي beta وnightly محلياً وفي CI، والإبلاغ عن أي خطأ يتم اكتشافه. شكر الفريق كل من ساهم في 1.99.1، وقال إن الإصدار كان سيكون مستحيلاً بدونهم.

المصادر: Lobsters

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.