D dilinin tərtibçisi buraxılışı 2.100

D proqramlaşdırma dilinin tərtibatçıları GNU/Linux, Windows, macOS və FreeBSD sistemlərini dəstəkləyən DMD 2.100.0 əsas istinad kompilyatorunun buraxılışını təqdim ediblər. Kompilyator kodu pulsuz BSL (Boost Software License) altında paylanır.

D statik olaraq yazılmışdır, C/C++ ilə oxşar sintaksisə malikdir və dinamik dillərin inkişaf səmərəliliyi və təhlükəsizlik üstünlüklərindən bəzilərini götürməklə yanaşı tərtib edilmiş dillərin performansını təmin edir. Məsələn, o, assosiativ massivlər, tipli nəticə çıxarmaq, avtomatik yaddaş idarəetməsi, paralel proqramlaşdırma, isteğe bağlı zibil toplayıcısı, şablon sistemi, metaproqramlaşdırma komponentləri, C kitabxanalarından istifadə etmək imkanı və bəzi C++ və Objective-C kitabxanaları üçün dəstək verir.

Yeni buraxılışda dəyişikliklər arasında:

  • D1 filialında istifadə edilən köhnə operator həddindən artıq yükləmə tərzi dayandırıldı. opNeg, opAdd_r, opAddAssign və s. əvəz edir. opUnary, opBinary, opBinaryRight və opOpAssign gəldi. Operatorun həddən artıq yüklənməsinin köhnə üslubu 2019-cu ildə köhnəlib və 2.100 buraxılışından sonra xəta yaradacaq.
  • Sil açar sözü 2018-ci ildən köhnəlmişdir. Silmək əvəzinə məhv etmək və ya core.memory.__delete funksiyasından istifadə etməlisiniz.
  • Kod istisnaları (məsələn, @nogc bloklarında) idarə edə bilmədiyi zaman səhvlərin idarə edilməsinin alternativ üsulu kimi struktur və birlik növlərinə tətbiq oluna bilən yeni @mustuse atributu tətbiq edilmişdir. Əgər @mustuse atributu ilə işarələnmiş ifadə kodda istifadə olunmursa, kompilyator xəta yaradacaq.
  • Statik massivlər üçün massivin hər bir elementinin dəyər ardıcıllığını (lvalue) əldə etmək üçün “.tupleof” xassəsindən istifadə etməyə icazə verilir. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analoq foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // sadə təyinat fa = ia xəta ilə nəticələnir təsdiq (fa == [1F, 2F, 3F]);

Mənbə: opennet.ru

Добавить комментарий