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

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

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

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

  • خصوصیات کے اندر فنکشن جیسے میکرو استعمال کرنے کی صلاحیت شامل کی گئی (طریقہ کار میکروز اور میکرو "macro_rules!" میکرو کا استعمال کرتے ہوئے بنائے گئے)۔ ایسے میکرو کو فنکشنز سے علامت "!" سے ممتاز کیا جاتا ہے۔ نام کے بعد (macro!(...)) اور فنکشن کال بنانے کے بجائے میکرو سورس ٹیکسٹ کو تبدیل کرنا۔ تبصروں کی دستاویز میں دیگر فائلوں کے مواد کو شامل کرنے کے لیے صفات کے اندر میکرو کو کال کرنا مفید ہو سکتا ہے۔ مثال کے طور پر، README فائل کے مواد کو داخل کرنے کے لیے اور اسکرپٹ پر عمل درآمد کا نتیجہ، آپ یہ بتا سکتے ہیں: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR) ")، "/generated.rs" )] mod generated؛
  • wasm32 پلیٹ فارم کے لیے بلٹ ان کمپائلر فنکشنز (Intrinsics) کو مستحکم کر دیا گیا ہے، جس سے WebAssembly میں SIMD ہدایات کے استعمال کی اجازت دی گئی ہے۔ زیادہ تر فنکشنز، جیسے v128_bitselect، "محفوظ" موڈ میں دستیاب ہیں، لیکن کچھ فنکشنز جو پوائنٹرز کے ساتھ کام کرتے ہیں (مثال کے طور پر، v128_load) "غیر محفوظ" رہتے ہیں۔
  • اضافی تالیف کا پہلے سے طے شدہ استعمال واپس آ گیا ہے، جس سے آپ کوڈ کے صرف بدلے ہوئے حصوں کو دوبارہ بنانے کی اجازت ملتی ہے، جو معمولی تبدیلیاں کرنے کے بعد دوبارہ مرتب کرتے وقت پروجیکٹ کی تعمیر میں لگنے والے وقت کو نمایاں طور پر کم کر سکتا ہے۔ اضافی تالیف کو ریلیز 1.52.1 میں چھپے ہوئے کیڑے کی وجہ سے غیر فعال کر دیا گیا تھا جو ڈسک کیشے سے ڈیٹا لوڈ کرنے کے لیے اضافی چیک شامل کرنے کے بعد سامنے آئے تھے۔
  • APIs کا ایک نیا حصہ مستحکم زمرہ میں منتقل کر دیا گیا ہے، بشمول درج ذیل مستحکم:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • arch::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque ::partition_point
  • کارگو ٹری میں اختیارات شامل کیے گئے: انحصاری گراف سے پیکیج کو ہٹانے کے لیے، انحصار کے درخت میں صرف دیے گئے نیسٹنگ لیول کے عناصر کو ظاہر کرنے کے لیے "-گہرائی"، طریقہ کار میکرو انحصار کو چھپانے کے لیے "-edges no-proc-macro"۔

ماخذ: opennet.ru

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