Toleo la mkusanyaji wa lugha D 2.100

Waendelezaji wa lugha ya programu ya D waliwasilisha kutolewa kwa mkusanyaji mkuu wa kumbukumbu DMD 2.100.0, ambayo inasaidia mifumo ya GNU/Linux, Windows, macOS na FreeBSD. Nambari ya mkusanyaji inasambazwa chini ya BSL ya bure (Leseni ya Programu ya Boost).

D imechapwa kitakwimu, ina sintaksia sawa na C/C++, na hutoa utendakazi wa lugha zilizokusanywa, huku ikikopa baadhi ya ufanisi wa maendeleo na manufaa ya usalama ya lugha zinazobadilika. Kwa mfano, hutoa usaidizi kwa safu shirikishi, uelekezaji wa aina, usimamizi wa kumbukumbu kiotomatiki, upangaji programu sambamba, kikusanya takataka cha hiari, mfumo wa violezo, vipengee vya kupanga metaprogramu, uwezo wa kutumia maktaba za C, na baadhi ya maktaba za C++ na Objective-C.

Miongoni mwa mabadiliko katika toleo jipya:

  • Mtindo wa zamani wa upakiaji wa waendeshaji kupita kiasi unaotumiwa katika tawi la D1 umekatishwa. Inachukua nafasi ya opNeg, opAdd_r, opAddAssign, n.k. ilikuja opUnary, opBinary, opBinaryRight na opOpAssign. Mtindo wa zamani wa upakiaji wa waendeshaji kupita kiasi uliacha kutumika mwaka wa 2019 na utatupa hitilafu kufikia toleo la 2.100.
  • Neno kuu la kufuta limeacha kutumika tangu 2018. Badala ya kufuta, unapaswa kutumia kitendakazi cha kuharibu au core.memory.__delete.
  • Sifa mpya ya @mustuse imetekelezwa ambayo inaweza kutumika kwa muundo na aina za muungano kama njia mbadala ya kushughulikia makosa wakati msimbo hauwezi kushughulikia vighairi (kwa mfano, katika vizuizi vya @nogc). Ikiwa usemi ulio na alama ya @mustuse hautumiki katika msimbo, mkusanyaji atatoa hitilafu.
  • Kwa safu tuli, matumizi ya sifa ya ".tupleof" inaruhusiwa kupata mlolongo wa thamani (lvalue) ya kila kipengele cha safu. utupu foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analog foo(1, 2, 3); kuelea[3] fa; fa.tupleof = ia.tupleof; // mgawo rahisi fa = ia husababisha madai ya makosa(fa == [1F, 2F, 3F]);

Chanzo: opennet.ru

Kuongeza maoni