D լեզվի կոմպիլյատորի թողարկում 2.100

D ծրագրավորման լեզվի մշակողները ներկայացրել են DMD 2.100.0 հիմնական հղում կոմպիլյատորի թողարկումը, որն աջակցում է GNU/Linux, Windows, macOS և FreeBSD համակարգերին։ Կազմողի կոդը բաշխվում է անվճար BSL (Boost Software License) ներքո:

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); // անալոգային foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // պարզ հանձնարարությունը fa = ia հանգեցնում է սխալի հաստատման (fa == [1F, 2F, 3F]);

Source: opennet.ru

Добавить комментарий