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

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

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

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

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

  • "کارگو" پیکیج مینیجر "add" کمانڈ پیش کرتا ہے، جو آپ کو Cargo.toml مینی فیسٹ میں نئے انحصار شامل کرنے یا کمانڈ لائن سے موجودہ انحصار کو تبدیل کرنے کی اجازت دیتا ہے۔ کمانڈ آپ کو انفرادی خصوصیات اور ورژن کی وضاحت کرنے کی بھی اجازت دیتی ہے، مثال کے طور پر: cargo add serde — Features derive cargo add nom@5
  • enums کے ساتھ "#[derive(Default)]" کو استعمال کرنے کی صلاحیت شامل کی گئی جس میں "#[default]" وصف کا استعمال کرتے ہوئے ڈیفالٹ آپشن کی وضاحت کی گئی ہے۔ #[ماخوذ(ڈیفالٹ)] شاید {#[پہلے سے طے شدہ] کچھ نہیں، کچھ (T)، }
  • لینکس پلیٹ فارم پر، لینکس کرنل کی طرف سے فراہم کردہ فیوٹیکس کے استعمال کی بنیاد پر، Mutex سنکرونائزیشن میکانزم کا زیادہ کمپیکٹ اور تیز تر نفاذ استعمال کیا جاتا ہے۔ pthreads لائبریری پر مبنی پہلے استعمال شدہ نفاذ کے برعکس، نیا ورژن Mutex سٹیٹ کو ذخیرہ کرنے کے لیے 5 کے بجائے صرف 40 بائٹس کا استعمال کرتا ہے۔
  • x86_64-unknown-none ٹارگٹ پلیٹ فارم کے لیے سپورٹ کی دوسری سطح کو لاگو کیا گیا ہے، جو قابل عمل فائلیں بنانے کے لیے ڈیزائن کیا گیا ہے جو آپریٹنگ سسٹم کے بغیر کام کر سکتی ہیں۔ مثال کے طور پر، مخصوص ٹارگٹ پلیٹ فارم استعمال کیا جا سکتا ہے جب کرنل کے اجزاء لکھتے ہیں۔ سپورٹ کے دوسرے درجے میں اسمبلی کی گارنٹی شامل ہے۔
  • سپورٹ کی تیسری سطح aarch64-pc-windows-gnullvm اور x86_64-pc-windows-gnullvm پلیٹ فارمز کے لیے نافذ کی گئی ہے۔ تیسرے درجے میں بنیادی مدد شامل ہے، لیکن خودکار جانچ کے بغیر، آفیشل بلڈ کو شائع کرنا، یا یہ چیک کرنا کہ آیا کوڈ بنایا جا سکتا ہے۔
  • API کے ایک نئے حصے کو مستحکم کے زمرے میں منتقل کر دیا گیا ہے، بشمول خصوصیات کے طریقوں اور نفاذ کو مستحکم کیا گیا ہے:
    • bool::then_some
    • f32::total_cmp
    • f64::total_cmp
    • Stdin :: لائنز
    • windows::CommandExt::raw_arg
    • impl AssertUnwindSafe کے لیے پہلے سے طے شدہ قدر
    • سے > Rc کے لیے
    • سے > آرک کے لیے<[u8]>
    • انکوڈ وائیڈ کے لیے فیوزڈ آئیٹریٹر

    ماخذ: opennet.ru

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