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

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

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

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

  • في المترجم Rustc مؤمن دعم التحسين بناءً على نتائج ملفات تعريف التعليمات البرمجية (PGO، التحسين الموجه بالملف الشخصي)،
    مما يسمح لك بإنشاء المزيد من التعليمات البرمجية المثالية بناءً على تحليل الإحصائيات المتراكمة أثناء تنفيذ البرنامج. لإنشاء ملف تعريف، يتم توفير علامة "-C Profile-generate"، ولاستخدام ملف التعريف أثناء التجميع - "-C Profile-use" (في البداية، يتم تجميع البرنامج مع العلامة الأولى، ويتم تشغيله، وبعد الإنشاء الملف الشخصي، يتم إعادة تجميعه بالعلم الثاني)؛
  • عند تنفيذ الأمر "Cargo Run"، وهو أمر مناسب للاستخدام للاختبار السريع لتطبيقات وحدة التحكم، تمت إضافة القدرة على تحديد ملف قابل للتنفيذ تلقائيًا لتشغيله إذا كان هناك العديد من الملفات القابلة للتنفيذ في الحزمة. يتم تحديد الملف الافتراضي الذي سيتم تنفيذه من خلال توجيه التشغيل الافتراضي في قسم [package] مع معلمات الحزمة، مما يسمح لك بتجنب تحديد اسم الملف بشكل صريح من خلال علامة "-bin" في كل مرة تقوم فيها بتشغيل "cargo run"؛
  • أمر "بائع البضائع" الذي تم توفيره سابقًا كـ حزمة منفصلة. يسمح لك الأمر بتنظيم العمل باستخدام نسخة محلية من التبعيات - بعد تنفيذ "بائع البضائع"، يتم تنزيل جميع أكواد المصدر لتبعيات المشروع من صناديق.io إلى دليل محلي، والذي يمكن بعد ذلك استخدامه للعمل دون الوصول إلى الصناديق. io (بعد تنفيذ الأمر، يظهر تلميح لتغيير التكوين لاستخدام الدليل للإنشاءات). تُستخدم هذه الميزة بالفعل لتنظيم تسليم مترجم Rustc مع تعبئة جميع التبعيات في أرشيف واحد مع الإصدار؛
  • أصبح من الممكن الآن إنشاء روابط لخيارات التعداد باستخدام الأسماء المستعارة للنوع (على سبيل المثال، في نص الوظيفة "fn increment_or_zero(x: ByteOption) يمكنك تحديد "ByteOption::None => 0")، اكتب بنيات الحساب (‹ MyType‹.. ››::option => N) أو الوصول الذاتي (في الكتل c &self يمكنك تحديد "Self::Quarter => 25")؛
  • تمت إضافة القدرة على إنشاء ثوابت غير مسماة في وحدات الماكرو. بدلاً من تحديد اسم العنصر في "const"، يمكنك الآن استخدام الحرف "_" لتحديد معرف غير متكرر ديناميكيًا، وتجنب تعارض الأسماء عند استدعاء الماكرو مرة أخرى؛
  • تمت إضافة القدرة على استخدام السمة "#[repr(align(N))" مع التعدادات باستخدام بناء جملة مشابه لتعريف بنية AlignN‹T› مع المحاذاة ثم استخدام AlignN‹MyEnum›;
  • تم نقل جزء جديد من واجهة برمجة التطبيقات (API) إلى الفئة الثابتة، بما في ذلك BufReader::buffer، وBufWriter::buffer، و
    الخلية::from_mut,
    الخلية::as_slice_of_cells،
    DoubleEndedIterator::nth_back,
    الخيار::xor
    {i,u}{8,16,64,128,size}::reverse_bits، التغليف::reverse_bits و
    شريحة::copy_within.

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

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster