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

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

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

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

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

  • Менаџер пакета „царго“ нуди команду „додај“, која вам омогућава да додате нове зависности Царго.томл манифесту или промените постојеће зависности из командне линије. Команда вам такође омогућава да наведете појединачне карактеристике и верзије, на пример: царго адд серде — карактеристике изводе царго адд ном@5
  • Додата је могућност коришћења „#[дериве(Дефаулт)]“ са енумима у којима је подразумевана опција дефинисана помоћу атрибута „#[дефаулт]“. #[дериве(Дефаулт)] енум Можда { #[подразумевано] Ништа, нешто(Т), }
  • На Линук платформи се користи компактнија и бржа имплементација Мутек механизма синхронизације, заснована на коришћењу футекса које обезбеђује Линук кернел. За разлику од претходно коришћене имплементације засноване на птхреадс библиотеци, нова верзија користи само 5 бајтова уместо 40 за складиштење Мутек стања.Слично, Цондвар и РвЛоцк механизми закључавања су пребачени у футек.
  • Други ниво подршке за циљну платформу к86_64-ункновн-ноне је имплементиран, дизајниран да генерише извршне датотеке које могу да раде без оперативног система. На пример, наведена циљна платформа се може користити приликом писања компоненти кернела. Други ниво подршке укључује гаранцију за монтажу.
  • Трећи ниво подршке је имплементиран за платформе аарцх64-пц-виндовс-гнуллвм и к86_64-пц-виндовс-гнуллвм. Трећи ниво укључује основну подршку, али без аутоматизованог тестирања, објављивања званичних верзија или провере да ли се код може изградити.
  • Нови део АПИ-ја је премештен у категорију стабилних, укључујући методе и имплементације особина које су стабилизоване:
    • боол::тхен_соме
    • ф32::тотал_цмп
    • ф64::тотал_цмп
    • Стдин::линес
    • виндовс::ЦоммандЕкт::рав_арг
    • импл подразумевана вредност за АссертУнвиндСафе
    • Од > за Рц
    • Од > за Арц<[у8]>
    • ФуседИтератор за ЕнцодеВиде

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

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