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

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

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

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

  • "کارگو چیک" اور "کارگو کلپی" کمانڈز پر عمل درآمد کے حکم سے پابندی ہٹا دی گئی۔ اس سے پہلے، "کارگو چیک" کے بعد "کارگو کلپی" کو کال کرنے سے ان چیک موڈز کے لیے کیش علیحدگی کی کمی کی وجہ سے کلپی یوٹیلیٹی (لنٹر) شروع نہیں ہوتی تھی۔ اب یہ مسئلہ حل ہو گیا ہے اور جس ترتیب میں "کارگو کلپی" اور "کارگو چیک" کہا جاتا ہے اب کوئی فرق نہیں پڑتا۔
  • API کے ایک نئے حصے کو مستحکم زمرے میں منتقل کر دیا گیا ہے، بشمول درج ذیل طریقوں کو مستحکم کیا گیا ہے:
    • دلائل::as_str
    • char::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_غیر نشان زد
    • char::from_u32
    • ٹکڑا::پارٹیشن_پوائنٹ
    • str::rsplit_one
    • str::split_one
  • "const" وصف، جو مستقل کی بجائے اسے کسی بھی سیاق و سباق میں استعمال کرنے کے امکان کا تعین کرتا ہے، طریقوں میں استعمال ہوتا ہے:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • شامل کیا گیا lint check unsafe_op_in_unsafe_fn اس بات کا تعین کرنے کے لیے کہ آیا غیر محفوظ فنکشنز میں استعمال ہونے والا غیر محفوظ کوڈ غیر محفوظ بلاکس کے ذریعے تیار کیا گیا ہے۔
  • اسے صفوں کے عنصر کی قسم کے پوائنٹرز کی شکل میں بدلنے والے پوائنٹرز کو صفوں میں ڈالنے کی اجازت ہے۔ let mut x: [usize; 2] = [0, 0]; let p = &mut x بطور *mut usize; p = &mut x کو *const استعمال کرنے دیں؛
  • کلپی (لنٹر) میں 9 نئے چیک شامل کیے گئے ہیں۔
  • کارگو پیکیج مینیجر اب پیکجوں کے لیے JSON میں "manifest_path" فیلڈ کو سپورٹ کرتا ہے۔ crates.io ریپوزٹری میں SPDX 3.11 فارمیٹ میں لائسنس کی معلومات کی وضاحت کے لیے معاونت شامل کی گئی۔
  • ٹیسٹ چلاتے وقت اسے متعدد فلٹرز کی وضاحت کرنے کی اجازت ہے، مثال کے طور پر "کارگو ٹیسٹ - foo بار" چلانے سے ماسک "foo" اور "bar" سے مماثل تمام ٹیسٹ چلیں گے۔
  • ڈیفالٹ LLVM ٹول کٹ کو LLVM 12 میں اپ ڈیٹ کر دیا گیا ہے۔
  • s390x-unknown-linux-musl، riscv32gc-unknown-linux-musl، riscv64gc-unknown-linux-musl اور powerpc-unknown-openbsd پلیٹ فارمز کے لیے تیسرے درجے کی سپورٹ کو نافذ کیا گیا ہے۔ تیسرے درجے میں بنیادی مدد شامل ہے، لیکن خودکار جانچ کے بغیر، آفیشل بلڈ کو شائع کرنا، یا یہ چیک کرنا کہ آیا کوڈ بنایا جا سکتا ہے۔

ماخذ: opennet.ru

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