إصدار لغة البرمجة Rust 1.35

يأخذ مكانا إصدار لغة برمجة النظام الصدأ 1.35، تم تطويره بواسطة مشروع موزيلا. تركز اللغة على سلامة الذاكرة، وتوفر إدارة تلقائية للذاكرة، وتوفر وسيلة لتحقيق التوازي العالي للمهام دون استخدام أداة تجميع البيانات المهملة أو وقت التشغيل.

تحمي إدارة الذاكرة التلقائية في Rust المطور من معالجة المؤشرات وتحمي من المشاكل الناشئة عن معالجة الذاكرة منخفضة المستوى ، مثل الوصول إلى منطقة الذاكرة بعد تحريرها ، وإلغاء الإشارة إلى المؤشرات الفارغة ، وتجاوزات المخزن المؤقت ، وما إلى ذلك. لتوزيع المكتبات ، وضمان التجميع وإدارة التبعيات ، يطور المشروع مدير الحزم حمولة، والذي يسمح لك بالحصول على المكتبات التي تحتاجها للبرنامج بنقرة واحدة. يتم دعم المستودع للمكتبات المضيفة الصناديق.

رئيسي الابتكارات:

  • سمات فنونس, فنموت и Fn تنفيذها للكومة المخصصة أنواع محاصر Box‹dyn FnOnce›، Box‹dyn FnMut› وBox‹dyn Fn›؛
  • أضيفت بواسطة فرصة إغلاق الصب لمؤشرات وظيفة غير آمنة (fn غير آمن) ؛
  • تم تنفيذ القدرة على استدعاء الماكرو "dbg!" بدون وسائط لعرض اسم الملف ورقم السطر في stderr دون فحص المتغير، وهو مناسب لتصحيح أخطاء التعبيرات الشرطية؛
  • تمت إضافة طريقة "إلى أنواع الفاصلة العائمة f32 وf64Copysign» لنسخ حرف من رقم إلى آخر؛
  • الطريقة المضافة "يحتوي"، والذي يسمح لك بالتحقق مما إذا كانت القيمة المحددة ضمن النطاق؛
  • الطريقة المضافة المرجع:الخلية:map_splitمما يسمح لك بعكس وفصل قيمة RefCell المقترضة للمكونات المختلفة للبيانات المقترضة؛
  • الطريقة المضافة RefCell::replace_with لاستبدال قيمة RefCell الحالية وإرجاع القيمة القديمة كنتيجة؛
  • الطريقة المضافة بتر :: التجزئة لتجزئة المؤشر أو المرجع حسب العنوان بدلاً من القيمة الموجهة؛
  • الطريقة المضافة الخيار::منسوخ لنسخ محتويات الخيارات Option‹&T› أو Option‹&mut T›؛
  • تم نقل جزء جديد من API إلى فئة مستقرة ، بما في ذلك الطرق المستقرة
    f32::نسخ التوقيع،
    f64::نسخ التوقيع،
    خلية مرجعية::replace_with،
    RefCell::map_split,
    بتر::التجزئة،
    النطاق::يحتوي على،
    RangeFrom::يحتوي على،
    RangeTo::يحتوي على،
    RangeInclusive::يحتوي على،
    RangeToInclusive::يحتوي على و
    الخيار::نسخ؛

  • تمت إضافة فحص drop_bounds إلى clippy (inter) والذي يتم تشغيله عند إضافة رابط "T: Drop" إلى الوظيفة؛
  • أضاف المترجم دعمًا لمنصة مستهدفة جديدة
    Wasm32-unknown-wasi (interface هل كنت لاستخدام WebAssembly خارج المتصفح)؛

  • تم تكييف مجموعة أدوات Rust للتوزيعات المستندة إلى مكتبة C القياسية Musl.

المصدر: opennet.ru

إضافة تعليق