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

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

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

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

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

  • يقوم مدير حزمة الشحن بتنفيذ الكشف عن التحذيرات التي يمكن حلها تلقائيًا والتوصيات المناسبة لتشغيل "إصلاح البضائع" أو "إصلاح كليبي البضائع". تحذير: استيراد غير مستخدم: 'std :: hash :: Hash' -> src / main.rs: 1: 5 | 1 | استخدام الأمراض المنقولة جنسيا :: hash :: hash؛ | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ = note: '# [warn (unused_imports)]' عند التحذير الافتراضي: 'foo' (bin "foo") ولّد تحذيرًا واحدًا (قم بتشغيل 'cargo fix --bin "foo"' لتطبيق اقتراح واحد)
  • تمت إضافة Cargo لعرض توصية باستخدام أمر "cargo add" عند محاولة تثبيت مكتبة باستخدام أمر "cargo install".
  • لتقليل وقت الترجمة ، تم تعطيل معلومات التصحيح في نصوص الإنشاء افتراضيًا. إذا تم تشغيل البرامج النصية للبناء بنجاح ، فلن يحدث التغيير أي فرق مرئي ، ولكن إذا فشل ، فسيحتوي تفريغ التتبع الخلفي على معلومات أقل. لإعادة السلوك القديم إلى Cargo.toml ، أضف: [profile.dev.build-override] debug = true [profile.release.build-override] تصحيح = صحيح
  • تم نقل جزء جديد من واجهة برمجة التطبيقات إلى فئة المستقر ، بما في ذلك تم تثبيت طرق وتطبيقات السمات:
    • CStr :: from_bytes_until_nul
    • الأساسية :: ffi :: FromBytesUntilNulError
  • تُستخدم خاصية "const" ، التي تحدد إمكانية استخدامها في أي سياق بدلاً من الثوابت ، في الدوال:
    • SocketAddr :: جديد
    • SocketAddr :: ip
    • SocketAddr :: المنفذ
    • SocketAddr :: is_ipv4
    • SocketAddr :: is_ipv6
    • SocketAddrV4 :: جديد
    • SocketAddrV4 :: ip
    • SocketAddrV4 :: المنفذ
    • SocketAddrV6 :: جديد
    • SocketAddrV6 :: ip
    • SocketAddrV6 :: المنفذ
    • SocketAddrV6 :: flowinfo
    • SocketAddrV6 :: range_id
  • تمت إضافة القدرة على استخدام علامات الصواب والخطأ في وسيطات المترجم.

المصدر: opennet.ru

إضافة تعليق