د ژبې کمپیلر ریلیز 2.100

د D پروګرام کولو ژبې پراختیا کونکو د اصلي حواله تالیف کونکي DMD 2.100.0 خوشې کول وړاندې کړل، کوم چې د GNU/Linux، وینډوز، 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 خاصیت پلي شوی چې د غلطۍ اداره کولو بدیل میتود په توګه جوړښت او اتحادیې ډولونو باندې پلي کیدی شي کله چې کوډ نشي کولی استثناوې اداره کړي (د مثال په توګه په @nogc بلاکونو کې). که په کوډ کې د @mustuse خاصیت سره نښه شوی بیان ونه کارول شي، کمپیلر به یوه تېروتنه رامنځته کړي.
  • د جامد صفونو لپاره، د ".tupleof" ملکیت کارولو ته اجازه ورکول کیږي ترڅو د هر عنصر د ارزښتونو ترتیب (lvalue) ترلاسه کړي. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analogue foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // ساده دنده fa = ia د غلطۍ ادعا پایله کوي (fa == [1F, 2F, 3F]);

سرچینه: opennet.ru

Add a comment