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

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

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

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

  • Додата је могућност коришћења макроа налик функцијама унутар атрибута (процедурални макрои и макрои креирани помоћу макроа „мацро_рулес!“). Такви макрои се разликују од функција симболом "!" после имена (макро!(...)) и замене изворног текста макроа уместо генерисања позива функције. Позивање макроа унутар атрибута може бити корисно за укључивање садржаја из других датотека у документовање коментара. На пример, да бисте уметнули садржај РЕАДМЕ датотеке и резултат извршавања скрипте, можете навести: #![доц = инцлуде_стр!("РЕАДМЕ.мд")] #[патх = цонцат!(енв!("ОУТ_ДИР "), "/генератед.рс" ​​)] мод генерисан;
  • Уграђене функције компајлера (Интринсицс) за васм32 платформу су стабилизоване, омогућавајући коришћење СИМД инструкција у ВебАссембли-у. Већина функција, као што је в128_битселецт, доступна је у „безбедном“ режиму, али неке функције које раде са показивачима (на пример, в128_лоад) остају „небезбедне“.
  • Вратила се подразумевана употреба инкременталне компилације, која вам омогућава да поново изградите само измењене делове кода, што може значајно да смањи време потребно за прављење пројекта приликом поновног компајлирања након мањих измена. Инкрементална компилација је онемогућена у издању 1.52.1 због скривених грешака које су се појавиле након додавања додатне провере за учитавање података из кеша диска.
  • Нови део АПИ-ја је пребачен у стабилну категорију, укључујући следеће стабилизоване:
      БТрееМап::инто_кеис
    • БТрееМап::инто_валуес
    • ХасхМап::инто_кеис
    • ХасхМап::инто_валуес
    • арцх::васм32
    • ВецДекуе::бинари_сеарцх
    • ВецДекуе::бинари_сеарцх_би
    • ВецДекуе::бинари_сеарцх_би_кеи
    • ВецДекуе::партитион_поинт
  • Додате опције за царго-стабло: „—орезати " за уклањање пакета са графикона зависности, "-дептх" за приказ само елемената датог нивоа угнежђења у стаблу зависности, "-едгес но-проц-мацро" за сакривање процедуралних макро зависности.

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

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