Rust 1.43 Программалоо тили релиз

жарыяланган системалык программалоо тили чыгаруу Дат 1.43, Mozilla долбоору тарабынан негизделген. Бул тил эстутумдун коопсуздугуна басым жасайт, эстутумду автоматтык башкарууну камсыз кылат жана таштанды жыйноочу жана узактыгы.

Rust'тун эстутумдун автоматтык башкаруусу иштеп чыгуучуну көрсөткүчтөрдү манипуляциялоодон бошотот жана эстутумдун төмөнкү деңгээлдеги манипуляциясынан келип чыккан көйгөйлөрдөн коргойт, мисалы, эстутумга бош кирүү мүмкүнчүлүгү, нөл көрсөткүчтү жокко чыгаруу, буферди ашып кетүү жана башка ушул сыяктуу. Китепканаларды бөлүштүрүү, чогултууну камсыз кылуу жана долбоор тарабынан көз карандылыкты башкаруу үчүн пакет менеджери иштелип чыгууда. жүк, программага керектүү китепканаларды бир чыкылдатуу менен алууга мүмкүндүк берет. Китепканаларды жайгаштыруу үчүн репозиторий колдоого алынат crates.io.

негизги инновациялар:

  • Макрос элементтердин фрагменттерин белгилердин (сыпат), ишке ашыруунун (impl) же тышкы блоктордун кодуна айландыруу үчүн колдонуу мүмкүнчүлүгүн берет. Мисалы:

    macro_reges! mac_trait {
    ($i:item) => {
    өзгөчөлүк T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    муунга алып келет:

    өзгөчөлүгү Т {
    fn foo() {}
    }

  • Примитивдердин, шилтемелердин жана бинардык операциялардын түрүн аныктоо жакшыртылган.
    Мисалы, мурда катага себеп болгон төмөнкү код эми компиляциялай алат (Rust азыр 0.0 жана &0.0 f32 тибинде болушу керектигин туура аныктайт):

    let n: f32 = 0.0 + &0.0;

  • CARGO_BIN_EXE_{name} жаңы чөйрө өзгөрмөсү Cargoго кошулду, ал интеграциялык тесттерди курууда орнотулат жана пакеттин “[[bin]]” бөлүмүндө аныкталган аткарылуучу файлга толук жолду аныктоого мүмкүндүк берет.
  • Эгерде билдирүүлөргө "#[cfg()]" сыяктуу атрибуттарды колдонууга уруксат берилсе.
  • Китепкана модулду импорттобостон, бүтүн жана бөлчөк түрлөрү үчүн түздөн-түз байланышкан константаларды колдонуу мүмкүнчүлүгүн берет. Мисалы, сиз дароо эле "use std::u32" жана "use std::f32" деп көрсөтпөстөн, u32::MAX же f32::NAN жазсаңыз болот.
  • Жаңы модуль кошулду эң жөнөкөй, ал Rust примитивдүү түрлөрүн реэкспорттойт, мисалы, макрос жазуу жана түрлөрү жашырылбагандыгын текшерүү керек болгондо.
  • API'лердин жаңы бөлүгү туруктуу категорияга, анын ичинде турукташтырылган категорияга которулду

    Бир жолу :: аяктады,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 жана
    iter::one_with.

Source: opennet.ru

Комментарий кошуу