Versione di compilatore di lingua D 2.100

I sviluppatori di a lingua di prugrammazione D presentanu a liberazione di u compilatore di riferimentu principale DMD 2.100.0, chì supporta i sistemi GNU/Linux, Windows, macOS è FreeBSD. U codice compilatore hè distribuitu sottu a BSL (Boost Software License) libera.

D hè tipatu staticamente, hà una sintassi simile à C / C ++, è furnisce u rendiment di lingue compilate, mentre pigliate in prestito alcuni di l'efficienza di sviluppu è i benefici di sicurità di e lingue dinamiche. Per esempiu, furnisce supportu per arrays associativi, inferenza di tipu, gestione di memoria automatica, prugrammazione parallela, un cullettore di basura opzionale, un sistema di mudelli, cumpunenti di metaprogrammazione, a capacità di utilizà biblioteche C, è alcune biblioteche C++ è Objective-C.

Trà i cambiamenti in a nova versione:

  • U vechju stilu di overloading di l'operatore utilizatu in a filiera D1 hè statu discontinuatu. Sustituisce opNeg, opAdd_r, opAddAssign, etc. hè vinutu opUnary, opBinary, opBinaryRight è opOpAssign. L'anzianu stile di sovraccarichi di l'operatore hè statu obsoletu in 2019 è hà da scaccià un errore da a versione 2.100.
  • A chjave di sguassà hè stata deprecata da u 2018. Invece di sguassà, duvete aduprà a funzione destroy o core.memory.__delete.
  • Un novu attributu @mustuse hè statu implementatu chì pò esse appiicatu à i tipi di struct è unione cum'è un metudu alternativu di gestione di l'errore quandu u codice ùn pò micca gestisce l'eccezzioni (per esempiu, in i blocchi @nogc). Se una espressione marcata cù l'attributu @mustuse ùn hè micca usata in u codice, u compilatore generarà un errore.
  • Per array statici, l'usu di a pruprietà ".tupleof" hè permessu di ottene a sequenza di valori (lvalue) di ogni elementu di l'array. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analogu foo (1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // assignation simple fa = ia risultatu in un errore assert (fa == [1F, 2F, 3F]);

Source: opennet.ru

Add a comment