Издање програмског језика Руст 1.46

објављено издање 1.46 системског програмског језика Рђа, који је основао пројекат Мозилла. Језик се фокусира на безбедност меморије, обезбеђује аутоматско управљање меморијом и пружа алате за постизање високог паралелизма задатака без коришћења сакупљача смећа и Рунтиме.

Руст-ово аутоматско управљање меморијом елиминише грешке приликом манипулације показивачима и штити од проблема који произилазе из манипулације меморијом ниског нивоа, као што је приступ меморијском региону након што је он ослобођен, нулте референце показивача, прекорачење бафера итд. Развија се менаџер пакета за дистрибуцију библиотека, обезбеђивање склапања и управљање зависностима од стране пројекта. Карго, што вам омогућава да једним кликом добијете библиотеке потребне за програм. Подржано је спремиште за хостовање библиотека сандуке.ио.

Главни иновације:

  • Проширене су могућности функција дефинисаних изразом „цонст фн“, које се могу позвати не само као регуларне функције, већ и користити у било ком контексту уместо константе. Ове функције се израчунавају у време компајлирања, а не у време извршавања, тако да подлежу одређеним ограничењима, као што је могућност читања само из константи.

    Ново издање уклања забрану коришћења Булових оператора (“&&” и “||”) у таквим функцијама и дозвољава употребу конструкција “иф”, “иф лет”, “матцх”,
    „вхиле“, „вхиле лет“ и „лооп“, а такође пружа могућност конверзије у резове (слице, динамички низови) користећи израз „&[Т]“. Коришћење ових функција у функцијама „цонст фн“ омогућава вам да неке операције које захтевају велике ресурсе преместите у фазу компилације. На пример, имплементација "цонст-сха1" омогућава израчунавање СХА-1 хешева у време компајлирања, што доводи до убрзања ВинРТ везивања за Руст за скоро 40 пута.

  • Да би поруке о грешкама биле информативније, подршка за атрибут „#[трацк_цаллер]“ је стабилизована, што је корисно за функције као што је одмотавање, што може изазвати панику ако се типови користе погрешно. Наведени атрибут ће користити руковалац паником за штампање локације позиваоца у поруци о грешци.
  • Атрибут „цонст“, који одређује могућност његовог коришћења у било ком контексту уместо константи, користи се у методи стд::мем::форгет.
  • Нови део АПИ-ја је премештен у стабилну категорију, укључујући стабилизовану Оптион::зип и вец::Драин::ас_слице.
  • У менаџеру пакета Царго додао је подршка за нове променљиве окружења постављене приликом компајлирања пакета: ЦАРГО_БИН_НАМЕ (име резултирајуће извршне датотеке), ЦАРГО_ЦРАТЕ_НАМЕ (назив пакета), ЦАРГО_ПКГ_ЛИЦЕНСЕ (лиценца наведена у манифесту), ЦАРГО_ПКГ_ЛИЦЕНСЕ_ФИЛЕ (путања до датотеке лиценце).

Извор: опеннет.ру

Додај коментар