D хэлний хөрвүүлэгч хувилбар 2.100

D програмчлалын хэлийг хөгжүүлэгчид GNU/Linux, Windows, macOS болон FreeBSD системүүдийг дэмждэг DMD 2.100.0 үндсэн лавлах хөрвүүлэгчийн хувилбарыг танилцууллаа. Хөрвүүлэгчийн кодыг үнэгүй BSL (Boost Software License) дагуу тараадаг.

D нь статик хэлбэрээр бичигдсэн, C/C++-тэй төстэй синтакстай, хөрвүүлсэн хэлүүдийн гүйцэтгэлийг хангадаг бөгөөд динамик хэлнүүдийн хөгжүүлэлтийн үр ашиг, аюулгүй байдлын зарим давуу талыг зээлдэг. Жишээлбэл, энэ нь ассоциатив массив, төрлийн дүгнэлт, санах ойн автомат удирдлага, зэрэгцээ програмчлал, нэмэлт хог цуглуулагч, загвар систем, метапрограмчлалын бүрэлдэхүүн хэсгүүд, Си номын санг ашиглах чадвар, зарим C++ болон Objective-C номын сангуудад дэмжлэг үзүүлдэг.

Шинэ хувилбарт гарсан өөрчлөлтүүдийн дунд:

  • D1 салбарт ашигласан операторын хэт ачааллын хуучин хэв маягийг зогсоосон. opNeg, opAdd_r, opAddAssign гэх мэтийг орлоно. opUnary, opBinary, opBinaryRight болон opOpAssign ирсэн. Операторын хэт ачааллын хуучин хэв маяг нь 2019 онд хуучирсан бөгөөд 2.100 хувилбараас эхлэн алдаа гаргах болно.
  • Устгах түлхүүр үгийг 2018 оноос хойш цуцалсан. Устгахын оронд устгах эсвэл core.memory.__delete функцийг ашиглах хэрэгтэй.
  • Код үл хамаарах зүйлийг (жишээ нь, @nogc блокуудад) зохицуулж чадахгүй үед алдаа засах өөр арга болгон struct болон union төрлүүдэд хэрэглэж болох @mustuse шинэ шинж чанарыг хэрэгжүүлсэн. Хэрэв @mustuse атрибутаар тэмдэглэгдсэн илэрхийлэл кодонд ашиглагдаагүй бол хөрвүүлэгч алдаа гаргах болно.
  • Статик массивын хувьд массивын элемент бүрийн утгын дарааллыг (lvalue) авахын тулд ".tupleof" шинж чанарыг ашиглахыг зөвшөөрдөг. 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]);

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх