Nim 1.2.0 чыгаруу

Nim системасынын программалоо тилинин жаңы версиясы чыкты. Анын 1.0 версиясы менен жарым-жартылай дал келбестиги бар, мисалы катаал түргө конвертациялоодон улам. Бирок бул учурда желек бар -useVersion:1.0.

Негизги жаңычылдык -gc:arc опциясы менен иштетилген жаңы таштанды жыйноочу. Тилдин автору Андреас Рампф ARCтин артыкчылыктары жөнүндө кеңири макала жазмакчы, бирок азыр ал сизди окууга чакырат. FOSDEM анын аткаруу менен, бул эталондук натыйжаларды көрсөтөт.

  • Эми компилятор өндүрүлгөн монтаждык кодду ыңгайлуураак текшерүү үчүн --asm опциясын колдойт.
  • Тегиздөө прагмасы объекттин өзгөрмөлөрүндө жана талааларында колдонулушу мүмкүн, бул C/C++теги тегиздөөлөргө окшош.
  • =синк оператору эми милдеттүү эмес. Компилятор эми объекттерди эффективдүү жылдыруу үчүн =destroy жана copyMem комбинациясын колдоно алат.
  • Кол коюлбаган бүтүн сандарга которуулар аткаруу убагында текшерилбейт. Толук маалымат https://github.com/nim-lang/RFCs/issues/175
  • lvalue үчүн жаңы синтаксис: var b {.byaddr.} = expr, импорт std/decls аркылуу туташты
  • Компилятор IndexError же OverflowError сыяктуу иштөө убактысынын каталарын сынап көрүү аркылуу кармап калууга мүмкүн болбогон коркунучтуу каталарга айландырган жаңы которгуч -panics:on колдойт. Бул иштөө убактысынын натыйжалуулугун жана программанын көлөмүн жакшыртат.
  • Түзүлгөн JS коду боштуктардын жана өтмөктөрдүн аралашмасынын ордуна боштуктарды гана колдонот.
  • Компилятор .localPassc прагмасынын колдоосун кошту, аны учурдагы Nim модулунан түзүлгөн C(++) файлы үчүн атайын C(++) сервердик варианттарын иштетүү үчүн колдонсо болот.
  • Nimpretty мындан ары чегинүү орнотуу үчүн терс аргументти кабыл албайт, анткени бул файлдарды бузуп жаткан.
  • Импорттук кант аркылуу туташтырылган жаңы макростор (чогултуу, кайталоо, басып алуу) кошулду.

Мындан тышкары, стандарттык китепканага көптөгөн өзгөртүүлөр кошулду жана көптөгөн мүчүлүштүктөр оңдолду.

Source: linux.org.ru

Комментарий кошуу