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

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

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

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

  • تم توسيع إمكانيات الوظائف المحددة باستخدام التعبير "const fn"، والتي يمكن تسميتها ليس فقط كوظائف عادية، ولكن أيضًا استخدامها في أي سياق بدلاً من الثوابت. يتم حساب هذه الوظائف في وقت الترجمة، وليس في وقت التشغيل، لذا فهي تخضع لقيود معينة، مثل القدرة على القراءة من الثوابت فقط.

    يزيل الإصدار الجديد الحظر المفروض على استخدام العوامل المنطقية (“&&” و”||”) في مثل هذه الوظائف، ويسمح باستخدام بنيات “if”، و”if Let”، و”match”،
    "بينما" و"أثناء السماح" و"الحلقة"، ويوفر أيضًا القدرة على التحويل إلى شرائح (شريحة، صفائف ديناميكية) باستخدام التعبير "&[T]". يتيح لك استخدام هذه الميزات في وظائف "const fn" نقل بعض العمليات كثيفة الاستخدام للموارد إلى مرحلة التجميع. على سبيل المثال، تطبيق "const-sha1" يجعل من الممكن حساب تجزئات SHA-1 في وقت الترجمة، مما يؤدي إلى تسريع روابط WinRT لـ Rust بما يقرب من 40 مرة.

  • لجعل رسائل الخطأ أكثر إفادة، تم تثبيت دعم السمة "#[track_caller]"، وهو أمر مفيد لوظائف مثل إلغاء التغليف، والتي قد تسبب الذعر إذا تم استخدام الأنواع بشكل غير صحيح. سيتم استخدام السمة المحددة بواسطة معالج الذعر لطباعة موقع المتصل في رسالة خطأ.
  • يتم استخدام السمة "const"، التي تحدد إمكانية استخدامها في أي سياق بدلاً من الثوابت، في الأسلوب std::mem::forget.
  • تم نقل جزء جديد من واجهة برمجة التطبيقات (API) إلى الفئة الثابتة، بما في ذلك Option::zip وvec::Drain::as_slice المستقرة.
  • في مدير الطرود البضائع مضاف دعم متغيرات البيئة الجديدة التي يتم تعيينها عند تجميع الحزمة: CARGO_BIN_NAME (اسم الملف القابل للتنفيذ الناتج)، CARGO_CRATE_NAME (اسم الحزمة)، CARGO_PKG_LICENSE (الترخيص المحدد في البيان)، CARGO_PKG_LICENSE_FILE (المسار إلى ملف الترخيص).

المصدر: opennet.ru

إضافة تعليق