D valodas kompilatora izlaidums 2.100

Programmēšanas valodas D izstrādātāji prezentēja galvenā atsauces kompilatora DMD 2.100.0 izlaišanu, kas atbalsta GNU/Linux, Windows, macOS un FreeBSD sistēmas. Kompilatora kods tiek izplatīts saskaņā ar bezmaksas BSL (Boost Software License).

D ir rakstīts statiski, tā sintakse ir līdzīga C/C++, un tā nodrošina kompilēto valodu veiktspēju, vienlaikus aizņemoties dažas no dinamisko valodu izstrādes efektivitātes un drošības priekšrocībām. Piemēram, tas nodrošina atbalstu asociatīvajiem masīviem, tipa secinājumiem, automātiskai atmiņas pārvaldībai, paralēlai programmēšanai, izvēles atkritumu savācējam, veidņu sistēmai, metaprogrammēšanas komponentiem, iespējai izmantot C bibliotēkas un dažas C++ un Objective-C bibliotēkas.

Starp izmaiņām jaunajā laidienā:

  • Vecais operatora pārslodzes stils, kas tika izmantots D1 atzarā, ir pārtraukts. Aizstāts opNeg, opAdd_r, opAddAssign utt. nāca opUnary, opBinary, opBinaryRight un opOpAssign. Vecais operatora pārslodzes stils tika novecojis 2019. gadā un radīs kļūdu no 2.100. izdevuma.
  • Dzēšanas atslēgvārda darbība ir pārtraukta kopš 2018. gada. Tā vietā, lai izdzēstu, jums vajadzētu izmantot funkciju iznīcināt vai core.memory.__delete.
  • Ir ieviests jauns @mustuse atribūts, ko var izmantot struktūru un savienības veidiem kā alternatīvu kļūdu apstrādes metodi, ja kods nevar apstrādāt izņēmumus (piemēram, @nogc blokos). Ja kodā netiek izmantota izteiksme, kas apzīmēta ar atribūtu @mustuse, kompilators ģenerēs kļūdu.
  • Statiskajiem masīviem ir atļauts izmantot rekvizītu ".tupleof", lai iegūtu katra masīva elementa vērtību secību (value). void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.dupleof); // analogais foo(1, 2, 3); peldēt[3] fa; fa.tupleof = ia.tupleof; // vienkārša piešķiršana fa = ia rada kļūdu apgalvot(fa == [1F, 2F, 3F]);

Avots: opennet.ru

Pievieno komentāru