Rust 1.38 Fa'apolokalame Gagana Fa'asa'oloto

lomia faasalalau fa'asa'olotoga gagana polokalame Ele 1.38, na faavaeina e le poloketi Mozilla. O le gagana e taulaʻi i le saogalemu o manatuaga, e maua ai le pulega otometi manatua, ma maua ai se auala e ausia ai le maualuga o galuega tutusa e aunoa ma le faʻaogaina o le lapisi poʻo le taʻavale.

Ole pulega otometi a le Rust e fa'asa'olotoina ai le tagata e faia le fa'aogaina o le fa'asinomaga ma puipuia mai fa'afitauli e tula'i mai i le fa'aogaina o mafaufauga maualalo, e pei ole fa'aogaina ole manatua e leai se totogi, fa'aletonu le fa'asinoala, fa'alavelave fa'alavelave, ma isi mea faapena. O lo'o fa'atupuina se pule o pusa e tufatufa faletusi, fa'amautinoa le fa'apotopotoina ma fa'afoe fa'alagolago e le poloketi. uta, e mafai ai ona e mauaina faletusi e manaʻomia mo le polokalame i le kiliki e tasi. E lagolagoina se fale teu oloa e talimalo ai faletusi crates.io.

tele mea fou:

  • Fa'aopoopoina se faiga fa'apipi'i fa'apipi'i (pipelined), lea e amata ai le fausiaina o se pusa fa'alagolago i le taimi lava e maua ai le metadata fa'alagolago, e aunoa ma le fa'atali mo lona tu'ufa'atasiga e mae'a. Pe a faʻapipiʻi se afifi, e le manaʻomia le faʻapipiʻiina atoatoa o faʻalagolago, naʻo le faʻamalamalamaina o metadata, lea e aofia ai lisi o ituaiga, faʻalagolago, ma elemene auina atu i fafo. Metadata e maua vave i le faagasologa o le tuʻufaʻatasia, o lea e mafai ai ona tuʻufaʻatasia afifi fesoʻotaʻi i le taimi nei. Pe a fausia ni afifi se tasi, o le faiga fuafuaina e le afaina ai le faatinoga, ae afai o le fale e ufiufi afifi ma faʻalagolago faʻalagolago, o le taimi atoa o le fausiaina e mafai ona faʻaititia e 10-20%;
  • Fa'amautinoa le iloa o le fa'aoga sese o galuega std::mem::uninitialized и std::mem::zeroed. Mo se faʻataʻitaʻiga, std::mem::uninitialized e faigofie mo le vave faia o arrays, ae e faʻasesēina le tuʻufaʻatasia ona e foliga mai e amataina, ae o le mea moni o le tau e tumau pea e leʻi amataina. O le mem :: galuega e le'i amataina ua uma ona fa'ailogaina e le toe fa'aaogaina ma ua fautuaina e fa'aoga se ituaiga vaeluaga nai lo. Masalo Iuni. Ae mo mem :: zeroed, o lenei galuega e mafai ona mafua ai faʻafitauli i ituaiga e le mafai ona talia zero values.

    Ina ia fesoasoani e fa'ailoa amioga e le'i fa'amalamalamaina, o le fa'asalalauga fou e fa'aopoopoina se siaki lint i le tu'ufa'atasi e iloa ai nisi fa'afitauli i le mem :: uninitialized po'o le mem :: zeroed. Mo se fa'ata'ita'iga, ua e maua nei se mea sese pe a e taumafai e fa'aoga mem::uninitialized po'o mem::zeroed i ituaiga &T ma Box‹T›, o lo'o fa'atusalia ai mea fa'asino e le mafai ona talia ni fa'atatau;

  • O le uiga “#[deprecated]” ua fa'alauteleina e fa'ataga ai pusa pusa e fa'ailoga ua le toe aoga ma fa'atulaga mo le tapeina i le lumana'i. E pei o le Rust 1.38, e mafai foi ona faʻaogaina lenei uiga mo macros;
  • Faʻaopoopo le tomai e faʻaaoga ai le uiga "#[global_allocator]" i submodules;
  • Fa'aopoopo galuega std::so'o::type_name, lea e mafai ai ona e suʻeina le igoa o le ituaiga, lea e mafai ona aoga mo faʻamoemoega faʻapipiʻi. Mo se faʻataʻitaʻiga, i le taimi o le faʻatinoina o le polokalame e mafai ona e suʻeina pe o le a le ituaiga na taʻua ai le galuega:

    fn gen_value‹T: Default>() -› T {
    println!("Amataina se fa'ata'ita'iga o {}", std::so'o::type_name::‹T›());
    Default::default()
    }

    fn autu() {
    tu'u _: i32 = gen_value(); # "i32" o le a lolomi
    tu'u _: String = gen_value(); # o le a lolomi le "aloc::string::String"
    }

  • Galuega fa'alautele a le faletusi masani:
    • slice::{concat, connect, join} ua mafai nei ona ave le tau &[T] faaopoopo i le &T;
    • "*const T" ma le "*mut T" ua fa'aaoga nei le maka::Tatala;
    • "Arc‹[T]›" ma le "Rc‹[T]›" ua fa'aaoga nei FromIterator‹T›;
    • iter::{StepBy, Peekable, Take} fa'aaoga nei DoubleEndedIterator.
    • ascii :: EscapeDefault fa'aogaina Clone ma Fa'aaliga.
  • O se vaega fou o API ua tuʻuina atu i le vaega mautu, e aofia ai metotia ua faʻamautuina
    • ‹*const T›::cast, ‹*mut T›::cast,
    • Umi::as_secs_f{32|64},
    • Umi::div_duration_f{32|64},
    • Umi::div_f{32|64},
    • Umi::from_secs_f{32|64},
    • Umi::mul_f{32|64},
    • vaevaega fa'agaioiga ma totoe
      div_euclid ma rem_euclid mo fa'aupuga uma;

  • Fa'aopoopoina le lagolago mo le fa'amaotiina o le "--features" filifiliga i le tele o taimi e mafai ai ona fa'aogaina vaega eseese i le pule o pusa uta;
  • E tuʻuina atu e le tagata faʻapipiʻi lona tolu vasega lagolago mo fa'ailoga fa'atatau aarch64-uwp-windows-msvc, i686-uwp-windows-gnu, i686-uwp-windows-msvc, x86_64-uwp-windows-gnu, x86_64-uwp-windows-msvc targets, armlinux7 -gnueabi, armv7-le iloa-linux-musleabi, hexagon-le iloa-linux-musl ma riscv32i-le iloa-leai-elf. O le vaega lona tolu e aofia ai le lagolago faʻavae, ae aunoa ma le faʻataʻitaʻiina otometi ma faʻasalalauga o fale faʻapitoa.

puna: opennet.ru

Faaopoopo i ai se faamatalaga