Kompilátor jazyka D vydanie 2.100

Vývojári programovacieho jazyka D predstavili vydanie hlavného referenčného kompilátora DMD 2.100.0, ktorý podporuje systémy GNU/Linux, Windows, macOS a FreeBSD. Kód kompilátora je distribuovaný pod bezplatnou BSL (Boost Software License).

D je staticky typované, má syntax podobnú C/C++ a poskytuje výkon kompilovaných jazykov, pričom si požičiava niektoré z výhod vývoja a bezpečnosti dynamických jazykov. Poskytuje napríklad podporu pre asociatívne polia, odvodenie typu, automatickú správu pamäte, paralelné programovanie, voliteľný zberač odpadu, systém šablón, komponenty metaprogramovania, možnosť používať knižnice C a niektoré knižnice C++ a Objective-C.

Medzi zmeny v novom vydaní:

  • Starý štýl preťažovania operátorov používaný vo vetve D1 bol zrušený. Nahradené opNeg, opAdd_r, opAddAssign atď. prišli opUnary, opBinary, opBinaryRight a opOpAssign. Starý štýl preťažovania operátorov bol v roku 2019 zastaraný a od vydania 2.100 vyvolá chybu.
  • Kľúčové slovo delete je od roku 2018 zastarané. Namiesto delete by ste mali použiť funkciu cancel alebo core.memory.__delete.
  • Bol implementovaný nový atribút @mustuse, ktorý možno použiť na typy struct a union ako alternatívnu metódu spracovania chýb, keď kód nedokáže spracovať výnimky (napríklad v blokoch @nogc). Ak sa v kóde nepoužije výraz označený atribútom @mustuse, kompilátor vygeneruje chybu.
  • Pre statické polia je povolené použitie vlastnosti ".tupleof" na získanie postupnosti hodnôt (lvalue) každého prvku poľa. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analógové foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // jednoduché priradenie fa = ia má za následok chybové tvrdenie (fa == [1F, 2F, 3F]);

Zdroj: opennet.ru

Pridať komentár