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

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

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

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

  • کارگو پیکیج مینیجر کے پاس یہ صلاحیت ہے کہ وہ تعمیر کے دوران پیش آنے والی نقلی غلطیوں اور انتباہات کو ضم کر سکے۔ جب "کارگو ٹیسٹ" اور "کارگو چیک --آل ٹارگٹس" جیسی کمانڈز پر عمل درآمد کرتے ہیں جس کے نتیجے میں مختلف پیرامیٹرز کے ساتھ ایک پیکج کی متعدد تعمیرات ہوتی ہیں، تو صارف کو اب دکھائے جانے کے بجائے دہرائے جانے والے مسئلے کی موجودگی کا خلاصہ دکھایا جاتا ہے۔ ایک ہی چیز کو بار بار بناتے وقت ایک سے زیادہ ایک جیسی انتباہات۔ $ کارگو +1.55.0 چیک — تمام اہداف چیکنگ foo v0.1.0 وارننگ: فنکشن کبھی استعمال نہیں ہوتا: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = نوٹ: '#[warn(dead_code)]' پر بذریعہ ڈیفالٹ انتباہ: 'foo' (lib) نے 1 وارننگ وارننگ تیار کی: 'foo' (lib ٹیسٹ) نے 1 وارننگ تیار کی (1 ڈپلیکیٹ) مکمل ڈیو [unoptimized + debuginfo] ہدف (s)0.84 سیکنڈ میں
  • معیاری لائبریری میں فلوٹنگ پوائنٹ پارسنگ کوڈ کو تیز تر اور زیادہ درست Eisel-Lemire الگورتھم استعمال کرنے کے لیے منتقل کر دیا گیا ہے، جس نے بہت بڑی تعداد کے ہندسوں کے ساتھ نمبروں کو راؤنڈنگ اور پارس کرنے کے کچھ پہلے مشاہدہ کیے گئے مسائل کو حل کر دیا ہے۔
  • ٹیمپلیٹس میں غیر بند حدود کی وضاحت کرنے کی صلاحیت کو مستحکم کر دیا گیا ہے ("X.." کو ایک حد سے تعبیر کیا جاتا ہے جو قیمت X سے شروع ہوتی ہے اور عددی قسم کی زیادہ سے زیادہ قدر کے ساتھ ختم ہوتی ہے): x کو u32 { 0 => println کے طور پر میچ کریں! ("صفر!")، 1.. => println!("مثبت نمبر!"), }
  • std::io::ErrorKind (غلطیوں کو زمرہ جات میں درجہ بندی کرتا ہے جیسے NotFound اور WouldBlock)۔ پہلے، وہ غلطیاں جو موجودہ زمرہ جات میں فٹ نہیں ہوتی تھیں، ErrorKind::Other زمرہ میں آتی تھیں، جو تھرڈ پارٹی کوڈ میں غلطیوں کے لیے بھی استعمال ہوتی تھیں۔ اب ایک علیحدہ داخلی زمرہ ہے ErrorKind::غلطیوں کے لیے جو موجودہ زمروں میں فٹ نہیں ہوتی ہیں، اور ErrorKind::دوسری کیٹیگری ان غلطیوں تک محدود ہے جو معیاری لائبریری میں نہیں ہوتی ہیں (معیاری لائبریری کے افعال جو io::Error واپس کرتے ہیں) اب ErrorKind:: زمرہ دیگر) کا استعمال نہیں کریں گے۔
  • API کے ایک نئے حصے کو مستحکم کے زمرے میں منتقل کر دیا گیا ہے، بشمول خصوصیات کے طریقوں اور نفاذ کو مستحکم کیا گیا ہے:
    • پابند::کلون
    • ڈرین::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • ہو سکتا ہےUninit::assume_init_mut
    • ہو سکتا ہےUninit::assume_init_ref
    • ہو سکتا ہے یونیٹ::لکھیں۔
    • array ::map
    • آپریشنز::کنٹرول فلو
    • x86::_bittest
    • x86::_bittestand complement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestand complement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • "const" وصف، جو مستقل کے بجائے کسی بھی سیاق و سباق میں استعمال کرنے کے امکان کا تعین کرتا ہے، str::from_utf8_unchecked طریقہ میں استعمال ہوتا ہے۔
  • تیسرے درجے کی سپورٹ پاورpc64le-unknown-freebsd پلیٹ فارم کے لیے لاگو کر دی گئی ہے۔ تیسرے درجے میں بنیادی مدد شامل ہوتی ہے، لیکن خودکار جانچ کے بغیر، سرکاری عمارتوں کو شائع کرنا، یا یہ جانچنا کہ آیا کوڈ بنایا جا سکتا ہے۔

ماخذ: opennet.ru

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