يصل Rust 1.68 مع تحسينات الدعم والمزيد

صدأ

Rust هي لغة برمجة مجمعة تدعم البرمجة الوظيفية والإجرائية والضرورية والموجهة نحو الكائن.

مؤخرا تم الإعلان عن إصدار النسخة الجديدة من لغة البرمجة “Rust 1.68”. بالنسبة لأولئك الذين ليسوا على دراية بـ Rust ، يجب أن تعلم أن لغة البرمجة هذه تم تأسيسها بواسطة مشروع Mozilla ، ولكن تم تطويرها الآن تحت رعاية مؤسسة Rust Foundation المستقلة غير الربحية.

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

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

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

الميزات الرئيسية الجديدة لـ Rust 1.68

في هذا الإصدار الجديد الذي يأتي من Rust 1.68 ، يمكننا أن نجد أن ملف تم تثبيت دعم بروتوكول Sparse في مدير حزمة الشحن ومستودع الصناديق يحدد طريقة جديدة للعمل مع فهرس يعكس الإصدارات المتوفرة لجميع الحزم الموجودة في المستودع.

يتيح البروتوكول الجديد إمكانية زيادة سرعة العمل مع crates.io بشكل كبير وحل مشكلات القياس مع زيادة أخرى في عدد الحزم في المستودع.

لتقليل التأخيرات التي تنتج عن تنزيل فهرس ممتلئ، متناثر، بدلاً من الوصول إلى الفهرس عبر Git ، التنزيل مباشرة عبر HTTPS فقط بيانات الفهرس ضرورية ، تغطي تبعيات مشروع معين. لإرجاع بيانات الفهرس ، يتم تضمين index.crates.io خدمة جديدة.

بشكل افتراضي، تم التخطيط للبروتوكول الجديد للاستخدام في فرع Rust 1.70وقبل ذلك ، لتفعيله ، يمكنك ضبط متغير البيئة "CARGO_REGISTRIES_CRATES_IO_PROTOCOL = متفرق»أو أضف المعلمةبروتوكول = متناثر إلى ملف .cargo / config.toml.

آخر التغييرات التي تبرز هو ذلكوأضاف الماكرو »دبوس! « أن يسمح لك بإنشاء بنية Pin <& mut T> من تعبير "T" مع تثبيت محلي لحالته (على عكس Box :: pin ، فإنه لا يخصص ذاكرة على الكومة ، ولكنه يرتبط بمستوى المكدس).

بالإضافة إلى ذلك ، يمكننا أيضًا إيجاد ذلك تم اقتراح معالج خطأ تخصيص الذاكرة الافتراضي، والتي تُستخدم عند استخدام حزمة التعيين القياسية.

التطبيقات التي تمكّن فقط تخصيص (وليس الأمراض المنقولة جنسياً) سيطلق الآن على وحدة التحكم "الذعر!" في حالة فشل تخصيص الذاكرة ، والتي يمكن اعتراضها اختياريًا باستخدام "# [panic_handler]". ستستمر البرامج التي تستخدم مكتبة الأمراض المنقولة جنسياً في طباعة معلومات الخطأ إلى stderr وتفشل.

من التغييرات الأخرى التي تبرز:

  • تم نقل جزء جديد من واجهة برمجة التطبيقات إلى مستقر ، بما في ذلك الأساليب وعمليات تنفيذ السمات التي تم تثبيتها
  • يتم استخدام خاصية "const" ، التي تحدد إمكانية استخدامها في أي سياق بدلاً من الثوابت ، في VecDeque :: new.
  • تتطلب منصة Android الآن على الأقل NDK r25 (API 19) ، أي تم رفع الحد الأدنى من إصدار Android المدعوم إلى 4.4 (KitKat).
  • تم تنفيذ المستوى الثالث من الدعم لمنصة Sony PlayStation Vita (armv7-sony-vita-newlibeabihf).
  • يتضمن المستوى الثالث دعمًا أساسيًا ، ولكن بدون اختبار آلي ، ونشر البنيات الرسمية ، والتحقق من توافق الكود.

إذا كنت مهتم بمعرفة المزيد عنها ، يمكنك التحقق من التفاصيل في الرابط التالي.

أخيرا ، لأولئك الذين هم مهتم بالترقية من إصدار سابق من Rust مثبتة عبر Rustup ، يمكنك الحصول على الإصدار الجديد من Rust 1.68.0 مع:

rustup update stable


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.