Rust 1.60 Fa'apolokalame Gagana Fa'asa'oloto

O le faʻasaʻolotoina o le gagana faʻapolokalame faʻamoemoe lautele Rust 1.60, faʻavaeina e le poloketi Mozilla, ae o lea ua atiaʻe i lalo o le faʻauluuluga a le faʻalapotopotoga tutoatasi e leai ni tupe mama Rust Foundation, ua lomia. O le gagana o loʻo taulaʻi i le saogalemu o manatuaga ma maua ai le auala e ausia ai le maualuga maualuga i le faʻatinoina o galuega, aʻo aloese mai le faʻaogaina o le lapisi lapisi ma le taʻavale (ua faʻaitiitia le taimi i le amataga ma le tausiga o le faletusi masani).

O auala e pulea ai manatuaga a Rust e fa'asa'oloto ai le tagata atia'e mai mea sese o le fa'aogaina o fa'ailoga ma puipuia mai fa'afitauli e tula'i mai i le fa'aogaina o mafaufauga maualalo, e pei o avanoa e leai se totogi, fa'aletonu le fa'asinomaga, fa'amama fa'alavelave, ma mea faapena. Ina ia tufatufaina faletusi, faʻamautinoa le faʻapipiʻiina ma pulea faʻalagolago, o le poloketi o loʻo atiaʻe le pule o pusa uta. O le crates.io repository e lagolagoina mo le talimalo faletusi.

O le saogalemu o manatuaga e fa'amalosia i le Rust i le taimi fa'aopoopo e ala i le siakiina o fa'asinomaga, su'esu'eina o mea e umia, iloiloga o mea i le olaga atoa (scoping), ma le iloiloga o le avanoa e manatua ai i le taimi. E maua ai foi e le ele le puipuiga mai le tele o numera, e manaʻomia ai le faʻavaeina o tau fesuiaʻi aʻo leʻi faʻaaogaina, e sili atu le taulimaina o mea sese i totonu o le faletusi masani, faʻaaogaina le manatu o faʻamatalaga e le mafai ona suia ma fesuiaiga e ala i le le mafai, ma ofoina atu le malosi o le taina e faʻaitiitia ai mea sese.

Autu fa'afouga:

  • O le rustc compiler o loʻo i ai se faiga faʻavae LLVM faʻamautu mo le gaosia o faʻamaumauga faʻaoga e faʻaaogaina e iloilo ai tulafono faʻasalalau i le taimi o suʻega. Ina ia faʻatagaina faʻamatalaga faʻamatalaga i le taimi o le faʻapotopotoga, e tatau ona e faʻaogaina le fuʻa "-Cinstrument-coverage", mo se faʻataʻitaʻiga, amata le faʻapotopotoga i le "RUSTFLAGS="-C instrument-coverage" uta faufale" poloaiga. A maeʻa le faʻaogaina o le faila faʻapipiʻi faʻapipiʻiina i lenei auala, o le default.profraw faila o le a faʻasaoina i le lisi o loʻo i ai nei, mo le gaioiga e mafai ona e faʻaogaina le aoga llvm-profdata mai le vaega llvm-tools-preview. E mafai ona tu'uina atu i le llvm-cov le fa'atinoga o lo'o fa'agaoioia e llvm-profdata e fa'atupu ai se lipoti fa'amatalaga fa'asinomaga. O fa'amatalaga e uiga i le feso'ota'iga i le source code e maua mai i le faila fa'atino o lo'o su'esu'eina, lea e aofia ai fa'amatalaga talafeagai e uiga i le feso'ota'iga i le va o fa'amaumauga fa'asalalau ma le code. 1| 1|fn autu() { 2| 1| println!("Talofa, lalolagi!"); 3| 1|}
  • I totonu o le pule o pusa uta, o le lagolago mo le fuʻa "-timings" ua faʻamautuina, lea e aofia ai le faʻatupuina o se lipoti auiliili i le alualu i luma o le fausiaina ma le taimi o le faʻatinoina o laasaga taʻitasi. Atonu e aoga le lipoti mo le fa'asilisiliina o le fa'atinoga o le fa'agasologa o fa'apotopotoga.
  • O loʻo tuʻuina atu e le pule o pusa uta se faʻasologa fou mo le faiga o tuʻufaʻatasiga tuʻufaʻatasia ma le filifilia o faʻalagolago i le filifiliga, faʻapipiʻiina i le faila o le Cargo.toml e ala i le lisiina o se lisi o igoa o meatotino i le vaega [features] ma faʻagaoioia e ala i le faʻatagaina o meatotino i le taimi o le fausiaina o afifi. fa'aaoga le fu'a “--features”. O le lomiga fou e faʻaopoopoina le lagolago mo faʻalagolago i igoa eseese ma faʻalagolago vaivai.

    I le tulaga muamua, e mafai ona faʻaogaina elemene ma le prefix "dep:" i totonu o le "[features]" vaega e faʻafesoʻotaʻi manino i se faʻalagolago i le filifiliga e aunoa ma le faʻaalia manino o lenei faʻalagolago o se vaega. I le tulaga lona lua, ua faaopoopo le lagolago mo le makaina i le faailoga “?”. ("igoa-igoa?/igoa-igoa") fa'alagolago fa'apitoa e na'o le fa'aaofia ai pe afai o nisi mea totino e aofia ai le fa'alagolago i le faitalia. Mo se faʻataʻitaʻiga, i le faʻataʻitaʻiga o loʻo i lalo, o le faʻatagaina o le meatotino serde o le a mafai ai ona faʻalagolago le "serde", faʻapea foʻi ma le meatotino "serde" mo le faʻalagolago i le "rgb", ae seʻi vagana ua mafai le faʻalagolago i le "rgb" i se isi mea: [dependencies] serde = { version = " 1.0.133 ", optional = true } rgb = { version = "0.8.25", optional = true } [features] serde = ["dep:serde", "rgb?/serde"]

  • Lagolago mo fa'aopoopo fa'aopoopo, lea na fa'aletonu i le fa'asalalauga talu ai, ua toe fa'afo'i mai. Ua uma ona foia le pusa o le compiler na mafua ai ona le atoatoa le vaega.
  • Foia nisi faʻafitauli i le tuʻuina atu o taimi vave ma se faʻamaoniga o le taimi faʻapitoa, lea e amanaʻia ai le taimi e faʻaalu e le faiga i le moe. I le taimi muamua, o le OS API na faʻaaogaina i soʻo se taimi e mafai ai ona faʻaogaina le taimi, lea e leʻi amanaʻia ai faʻafitauli faʻafitauli e motusia ai le monotony o le taimi, e pei o faʻafitauli faʻapitoa, faʻaogaina o le virtualization, poʻo mea sese i le faiga faʻaogaina.
  • O se vaega fou o le API ua siitia i le vaega o fale mautu, e aofia ai metotia ma faʻatinoga o uiga ua faʻamautuina:
    • Arc::new_cyclic
    • Rc::new_cyclic
    • fasi :: EscapeAscii
    • <[u8]>::escape_ascii
    • u8::escape_ascii
    • Vec::spare_capacity_mut
    • MasaloUninit :: assume_init_drop
    • MasaloUninit :: assume_init_read
    • i8::abs_diff
    • i16::abs_diff
    • i32::abs_diff
    • i64::abs_diff
    • i128::abs_diff
    • tele::abs_diff
    • u8::abs_diff
    • u16::abs_diff
    • u32::abs_diff
    • u64::abs_diff
    • u128::abs_diff
    • fa'aoga::abs_diff
    • Fa'aali mo io :: ErrorKind
    • Mai mo ExitCode
    • E le mo! (type "leai lava")
    • _Op_Assign<$t>
    • arch:: is_aarch64_feature_detected!
  • O le tulaga lona tolu o le lagolago ua faʻatinoina mo le mips64-openwrt-linux-musl* ma le armv7-unknown-linux-uclibceabi (softfloat) platforms. O le vaega lona tolu e aofia ai le lagolago faʻavae, ae aunoa ma se faʻataʻitaʻiga otometi, faʻasalalauga faʻapitoa faufale, poʻo le siakiina pe mafai ona fausia le code.
  • Ua suia le faʻapipiʻi e faʻaaoga le LLVM 14.

E le gata i lea, e mafai ona e matauina:

  • Faʻaopoopo le lagolago mo le faʻapipiʻiina o le rustc compiler e faʻaaoga ai le rustc_codegen_gcc backend, lea e mafai ai ona e faʻaogaina le faletusi libgccjit mai le poloketi GCC e avea o se generator code i rustc, lea e mafai ai e le rustc ona tuʻuina atu le lagolago mo fausaga ma faʻataʻitaʻiga o loʻo maua i le GCC. O le fa'alauiloaina o le tu'ufa'atasi o lona uiga o le mafai lea ona fa'aogaina se fa'atupu tulafono fa'avae GCC ile rustc e fausia ai le rustc compiler lava ia. I le itu fa'atino, o lenei fa'ailoga e mafai ai ona e fausia ni polokalame 'ele mo fa'ata'ita'iga e le'i lagolagoina muamua i le rustc.
  • O le tuʻuina atu o le uutils coreutils 0.0.13 toolkit o loʻo avanoa, i totonu o loʻo atiaʻe ai se faʻataʻitaʻiga o le pusa GNU Coreutils, toe tusia i le gagana Rust. Coreutils e sau ma sili atu ma le selau mea aoga, e aofia ai le sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ma ls. O le sini o le poloketi o le fatuina lea o se faʻaogaina o le faʻaogaina o Coreutils, e mafai ona faʻaogaina i luga o Windows, Redox ma Fuchsia platforms, faʻapea foʻi ma le tufatufaina atu i lalo ole laisene MIT faʻatagaina, nai lo le GPL copyleft laisene.

    O le lomiga fou ua faʻaleleia le faʻatinoga o le tele o mea aoga, e aofia ai le faʻaleleia atili o fesoʻotaʻiga o le cp, dd, df, split and tr utilities ma a latou paaga mai le GNU project. Tuuina atu pepa i luga ole laiga. O le patipati parser e faʻaaogaina e faʻasalalau ai finauga laina laina, lea ua faʻaleleia ai le gaioiga mo le fuʻa "--fesoasoani" ma faʻaopoopo le lagolago mo faʻapuupuuga o poloaiga uumi (mo se faʻataʻitaʻiga, e mafai ona e faʻamaonia "ls -col" nai lo le "ls -color ”).

puna: opennet.ru

Faaopoopo i ai se faamatalaga