Пре неколико дана је објављено издање нове верзије популарног програмског језика «Руст 1.72», верзија у којој су додате нове функције, као и побољшања, исправке грешака и разне промене које се фокусирају на то да процес креирања кода буде лакши и флуиднији.
За оне који не познају овај програмски језик, то би требало да знају фокусира се на безбедност меморије и обезбеђује средства за постизање високог паралелизма послова уз избегавање употребе сакупљача смећа и времена извршавања (време извођења је сведено на основну иницијализацију и стандардно одржавање библиотеке).
Рустове методе управљања меморијом они чувају програмера од грешака приликом манипулисања показивачима и штите од проблема који настају услед руковања меморијом ниског нивоа, као што је приступ меморијској области након што је она ослобођена, дереференцирање нултих показивача, прекорачење бафера итд. Да би дистрибуирао библиотеке, обезбедио градње и управљао зависностима, пројекат развија менаџер пакета Царго.
Главне нове карактеристике Руста 1.72
У овој новој верзији која долази из Руст 1.72 верзије један од најиновативније карактеристике је побољшање у корисност ставки онемогућених цфг атрибутима условна компилација, која омогућава вам да омогућите извршавање Руст кода у зависности од да ли су одређене функције кутије подржане или раде на одређеним платформама.
Раније, ставке онемогућене преко цфг-а нису биле видљиве за компајлер, али сада се то мења, пошто компајлер сада чува виталне информације укључујући имена елемената и цфг услове. Ово омогућава компајлеру да пружи занимљиве повратне информације, као што је истицање недоступности неке функције због потребе да се омогући одређена функција кутије. Ово програмерима даје јаснија упутства и омогућава ефикасније искуство кодирања. На пример, омогућава да се разуме да нека функција није доступна због онемогућавања одређених особина у оквиру.
Још једна од промена која се истиче у овој новој верзији Руста 1.72 је то уклоњена су ограничења за време евалуације константних израза, Раније, да би избегао петље у времену компајлирања, Руст је ограничавао максималан број израза који су могли да се изврше током константне евалуације.
Ова карактеристика је изазвала грешке при компајлирању кода који није био у складу на ограничења, па у новој верзији одлучено је да се замени строга ограничења са екраном упозорења који обавештава о сталним прорачунима дугог трајања. Цонст_евал_лонг_руннинг провера влакана се такође подразумевано примењује за откривање петљи.
Поред овога, напомиње се и да Цлиппи листе су побољшане, пошто су бројне Цлиппи провере премештене у Рустц компајлер:
- ундроппед_мануалли_дропс: промењено у са нивоом одбијања. Када се ради са МануаллиДроп, интерна вредност се не испушта аутоматски. Позивање стд::мем::дроп нема ефекта. Уместо тога, овај линт сада предлаже коришћење МануаллиДроп::инто_иннер као главне опције.
- инвалид_утф8_ин_унцхецкед: преименован у ниво одбијања и ниво упозорења; инвалид_фром_утф8_унцхецкед инвалид_фром_утф8. Идентификује инстанце у којима се стд::стр::фром_утф8_унцхецкед и стд::стр::фром_утф8_унцхецкед_мут користе са неважећим УТФ-8 литералима. Ова употреба нарушава његове безбедносне предуслове и доводи до недефинисаног понашања. Овај пух је сада категорички забрањен.
- неважеће_нан_поређења: идентификује поређења која укључују ф32::НАН или ф64::НАН као операнде. Пошто НаН-у недостају смислена поређења
- инвалид_референце_цастинг: истиче случајеве у којима &Т постаје &мут Т без искоришћавања предности унутрашње променљивости. Такве радње резултирају тренутним и недефинисаним понашањем, без обзира да ли се референца користи или не.
Оф тхе друге промене које се истичу нове верзије:
- Нови део АПИ-ја је премештен у стабилну категорију, укључујући методе и имплементације особина које су стабилизоване.
- Атрибут "цонст", који одређује могућност коришћења у било ком контексту уместо константи, користи се у функцијама:
- Подршка трећег нивоа за лоонгарцх64-ункновн-ноне* платформе је имплементирана. Трећи ниво укључује основну подршку, али без аутоматизованог тестирања, објављивања званичних верзија и провере компилабилности кода.
- У будућем издању Руста 1.76, планирано је да се укине подршка за Виндовс 7, 8 и 8.1 платформе и да Виндовс 10 буде минимална верзија и за потребе компајлера и за прављење.
Ако јесте заинтересовани да сазнају више о томе, детаље можете проверити у следећи линк.
Коначно, за оне који јесу Заинтересован за надоградњу са претходне верзије Руста инсталиран преко руступа, нову верзију Руста 1.72.0 можете добити са:
rustup update stable