ڈی لینگویج کمپائلر ریلیز 2.100

ڈی پروگرامنگ لینگویج کے ڈویلپرز نے مین ریفرنس کمپائلر DMD 2.100.0 کی ریلیز پیش کی، جو GNU/Linux، Windows، macOS اور FreeBSD سسٹم کو سپورٹ کرتا ہے۔ کمپائلر کوڈ مفت BSL (بوسٹ سافٹ ویئر لائسنس) کے تحت تقسیم کیا جاتا ہے۔

D کو جامد طور پر ٹائپ کیا جاتا ہے، اس کا نحو C/C++ سے ملتا جلتا ہے، اور مرتب شدہ زبانوں کی کارکردگی فراہم کرتا ہے، جبکہ متحرک زبانوں کی ترقی کی کارکردگی اور حفاظتی فوائد میں سے کچھ ادھار لیتے ہیں۔ مثال کے طور پر، یہ ایسوسی ایٹیو اری، ٹائپ انفرنس، خودکار میموری مینجمنٹ، متوازی پروگرامنگ، ایک اختیاری کوڑا اٹھانے والا، ایک ٹیمپلیٹ سسٹم، میٹا پروگرامنگ اجزاء، C لائبریریوں کو استعمال کرنے کی صلاحیت، اور کچھ C++ اور Objective-C لائبریریوں کے لیے معاونت فراہم کرتا ہے۔

نئی ریلیز میں تبدیلیوں میں سے:

  • D1 برانچ میں استعمال ہونے والے آپریٹر اوور لوڈنگ کے پرانے طرز کو بند کر دیا گیا ہے۔ opNeg، opAdd_r، opAddAssign، وغیرہ کو بدل دیتا ہے۔ opUnary، opBinary، opBinaryRight اور opOpAssign آیا۔ آپریٹر اوور لوڈنگ کے پرانے انداز کو 2019 میں فرسودہ کر دیا گیا تھا اور ریلیز 2.100 کے مطابق اس میں ایک غلطی ہو گی۔
  • حذف شدہ کلیدی لفظ 2018 سے فرسودہ ہے۔ حذف کرنے کے بجائے، آپ کو تباہ یا core.memory.__delete فنکشن استعمال کرنا چاہیے۔
  • ایک نیا @mustuse وصف نافذ کیا گیا ہے جو struct اور یونین کی اقسام پر غلطی سے نمٹنے کے متبادل طریقہ کے طور پر لاگو کیا جا سکتا ہے جب کوڈ مستثنیات کو نہیں سنبھال سکتا ہے (مثال کے طور پر، @nogc بلاکس میں)۔ اگر @mustuse انتساب کے ساتھ نشان زد ایک اظہار کوڈ میں استعمال نہیں کیا جاتا ہے، تو مرتب کرنے والا ایک غلطی پیدا کرے گا۔
  • static arrays کے لیے، ".tupleof" پراپرٹی کے استعمال کو صف کے ہر عنصر کی قدروں کی ترتیب (lvalue) حاصل کرنے کی اجازت ہے۔ void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof)؛ // اینالاگ foo(1، 2، 3)؛ float[3] fa; fa.tupleof = ia.tupleof؛ // سادہ تفویض fa = ia کے نتیجے میں غلطی کا دعویٰ ہوتا ہے (fa == [1F, 2F, 3F])؛

ماخذ: opennet.ru

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