Rust 1.67 پروگرامنگ لینگویج ریلیز

Rust 1.67 عام مقصد کی پروگرامنگ لینگویج کی ریلیز، جسے Mozilla پروجیکٹ نے قائم کیا تھا، لیکن اب اسے آزاد غیر منافع بخش تنظیم Rust Foundation کے زیر اہتمام تیار کیا گیا ہے، شائع کیا گیا ہے۔ زبان میموری کی حفاظت پر توجہ مرکوز کرتی ہے اور کوڑا اٹھانے والے اور رن ٹائم کے استعمال سے گریز کرتے ہوئے اعلی ملازمت کے متوازی کو حاصل کرنے کے ذرائع فراہم کرتی ہے (رن ٹائم کو معیاری لائبریری کی بنیادی شروعات اور دیکھ بھال تک کم کیا جاتا ہے)۔

زنگ کے میموری ہینڈلنگ کے طریقے ڈویلپر کو پوائنٹرز میں ہیرا پھیری کرتے وقت غلطیوں سے بچاتے ہیں اور نچلے درجے کی میموری ہینڈلنگ کی وجہ سے پیدا ہونے والے مسائل سے بچاتے ہیں، جیسے کہ میموری کے علاقے کو آزاد ہونے کے بعد اس تک رسائی حاصل کرنا، null pointers کا حوالہ دینا، بفر اووررن وغیرہ۔ لائبریریوں کو تقسیم کرنے، تعمیرات فراہم کرنے اور انحصار کا انتظام کرنے کے لیے، پروجیکٹ کارگو پیکیج مینیجر کو تیار کرتا ہے۔ کتب خانوں کی میزبانی کے لیے crates.io ریپوزٹری معاون ہے۔

Reference چیکنگ، آبجیکٹ کی ملکیت پر نظر رکھنے، آبجیکٹ کے لائف ٹائم (اسکوپس) کا ٹریک رکھنے اور کوڈ پر عمل درآمد کے دوران میموری تک رسائی کی درستگی کا اندازہ لگانے کے ذریعے رسٹ میں میموری کی حفاظت فراہم کی جاتی ہے۔ زنگ انٹیجر اوور فلو کے خلاف بھی تحفظ فراہم کرتا ہے، استعمال سے پہلے متغیر اقدار کی لازمی ابتداء کی ضرورت ہوتی ہے، معیاری لائبریری میں غلطیوں کو بہتر طریقے سے ہینڈل کرتا ہے، غیر متغیر حوالہ جات اور متغیرات کے تصور کو بطور ڈیفالٹ لاگو کرتا ہے، منطقی غلطیوں کو کم کرنے کے لیے مضبوط جامد ٹائپنگ پیش کرتا ہے۔

اہم اختراعات:

  • Future::Output کے ساتھ async فنکشنز کے لیے، "#[must_use]" تشریحات کی وضاحت کرنا اب ممکن ہے جس میں ریٹرن ویلیو کو نظر انداز کرنے کی صورت میں انتباہ شامل ہوتا ہے، جو اس مفروضے کی وجہ سے ہونے والی غلطیوں کی نشاندہی کرنے میں مدد کرتا ہے کہ فنکشن اقدار کو تبدیل کر دے گا۔ ایک نئی قدر واپس کرنے کے بجائے۔ #[ضروری_استعمال] async fn bar() -> u32 { 0 } async fn کالر () { bar().await; } انتباہ: مستقبل کا غیر استعمال شدہ آؤٹ پٹ `بار` کے ذریعہ واپس کیا گیا جسے استعمال کرنا ضروری ہے —> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^ | = نوٹ: `#[warn(unused_must_use)]` بطور ڈیفالٹ آن
  • FIFO queues std::sync::mpsc (ملٹی پروڈیوسر سنگل کنزیومر) کے نفاذ کو اپ ڈیٹ کر دیا گیا ہے، جسے پچھلے API کو برقرار رکھتے ہوئے کراس بیم چینل ماڈیول کے استعمال پر تبدیل کر دیا گیا ہے۔ نئے نفاذ کو متعدد مسائل کو حل کرنے، اعلیٰ کارکردگی اور آسان کوڈ کی دیکھ بھال کے ذریعے ممتاز کیا گیا ہے۔
  • API کے ایک نئے حصے کو مستحکم کے زمرے میں منتقل کر دیا گیا ہے، بشمول خصوصیات کے طریقوں اور نفاذ کو مستحکم کیا گیا ہے:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • نان زیرو*::BITS
  • "const" وصف، جو مستقل کی بجائے اسے کسی بھی سیاق و سباق میں استعمال کرنے کے امکان کا تعین کرتا ہے، افعال میں استعمال ہوتا ہے:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • لینکس کرنل (linuxkernel) میں Rust استعمال کرنے کے ساتھ ساتھ Sony PlayStation 1 (mipsel-sony-psx)، پاور پی سی کے ساتھ AIX (powerpc64-ibm-aix)، QNX نیوٹرینو RTOS ( aarch64-unknown-nto-) پلیٹ فارمز qnx710, x86_64-pc-nto-qnx710)۔ تیسرے درجے میں بنیادی مدد شامل ہے، لیکن خودکار جانچ کے بغیر، آفیشل بلڈ کو شائع کرنا، یا یہ چیک کرنا کہ آیا کوڈ بنایا جا سکتا ہے۔

مزید برآں، ہم پیچ کی ARM کی اشاعت کو نوٹ کر سکتے ہیں جو AArch64 فن تعمیر پر مبنی سسٹمز کے لیے جمع کردہ ڈرائیوروں اور لینکس کرنل ماڈیولز کو تیار کرنے کے لیے رسٹ زبان کے استعمال کی اجازت دیتے ہیں۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں