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 функциясын пайдалану керек.
  • Жаңа @mustuse атрибуты іске асырылды, ол код ерекшеліктерді өңдей алмаған кезде (мысалы, @nogc блоктарында) қателерді өңдеудің балама әдісі ретінде құрылым және бірлестік түрлеріне қолданылуы мүмкін. Егер @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

пікір қалдыру