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

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

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

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

  • У рустц компајлеру обезбеђено поддержка оптимизации на основе результатов профилирования кода (PGO, Profile-Guided Optimization),
    омогућавајући вам да генеришете оптималнији код на основу анализе статистике акумулиране током извршавања програма. За генерисање профила обезбеђена је заставица „-Ц профиле-генерате“, а за коришћење профила током склапања – „-Ц профиле-усе“ (у почетку се програм саставља са првом заставицом, покреће се, а након креирања профил, поново се склапа са другом заставицом);

  • Приликом извршавања команде „царго рун“, која је згодна за коришћење за брзо тестирање конзолних апликација, додата је могућност аутоматског одабира извршне датотеке за покретање ако у пакету постоји неколико извршних датотека. Датотека која се подразумевано извршава се одређује путем дефаулт-рун директиве у одељку [пацкаге] са параметрима пакета, што вам омогућава да избегнете експлицитно навођење имена датотеке преко ознаке „-бин“ сваки пут када покренете „царго рун“;
  • Команда „царго вендор“, претходно испоручена као посебан пакет. Команда вам омогућава да организујете рад са локалном копијом зависности - након извршавања „царго вендор“, сви изворни кодови зависности пројекта се преузимају са цратес.ио у локални директоријум, који се затим може користити за рад без приступа сандуцима. ио (након извршења команде, приказује се наговештај за промену конфигурације за коришћење директоријума за градње). Ова функција се већ користи за организовање испоруке рустц компајлера са паковањем свих зависности у једну архиву са издањем;
  • Сада је могуће креирати везе до опција набрајања користећи псеудониме типа (на пример, у телу функције „фн инцремент_ор_зеро(к: БитеОптион) можете да наведете „БитеОптион::Ноне => 0“), конструкције прорачуна типа (‹ МиТипе‹.. ››::оптион => Н) или Селф приступи (у блоковима ц &селф можете одредити “Селф::Куартер => 25”);
  • Додата могућност креирања неименованих константи у макроима. Уместо да дефинишете име елемента у „цонст“, сада можете да користите знак „_“ да бисте динамички изабрали идентификатор који се не понавља, избегавајући сукобе имена приликом поновног позивања макроа;
  • Додата је могућност коришћења атрибута „#[репр(алигн(Н))“ са набрајањима користећи синтаксу сличну дефинисању структуре АлигнН‹Т› са поравнањем, а затим коришћењем АлигнН‹МиЕнум›;
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы BufReader::buffer, BufWriter::buffer,
    Целл::фром_мут,
    Целл::ас_слице_оф_целлс,
    ДоублеЕндедИтератор::нтх_бацк,
    Опција::кор
    {и,у}{8,16,64,128,сизе}::реверсе_битс, Враппинг::реверсе_битс и
    слице::цопи_витхин.

Поред тога, може се приметити почетак тестирања пројекат Асинц-стд, који нуди асинхрону варијанту стандардне библиотеке Руст (порт стд библиотеке, у којој су сви интерфејси понуђени у асинхроној верзији и спремни за употребу са синтаксом асинц/аваит).

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

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