Puo ea Rust programming 1.60 tokollo

Ho lokolloa ha puo ea lenaneo la Rust 1.60 ka kakaretso, e thehiloeng ke morero oa Mozilla, empa hona joale e ntlafalitsoeng ka tlas'a ts'ebetso ea mokhatlo o ikemetseng o sa etseng phaello oa Rust Foundation, e hatisitsoe. Puo e shebana le ts'ireletso ea mohopolo 'me e fana ka mekhoa ea ho finyella mosebetsi o phahameng oa ho ts'oara mosebetsi ha o ntse o qoba ho sebelisoa ha moqoqo oa lithōle le nako ea ho sebetsa (nako ea ho sebetsa e fokotsehile ho qala ho qala le ho boloka laebrari e tloaelehileng).

Mekhoa ea ho sebetsana le memori ea Rust e boloka moqapi ho tsoa liphosong ha a laola lintlha le ho sireletsa khahlanong le mathata a hlahang ka lebaka la ho tšoara memori ea boemo bo tlaase, joalo ka ho fumana sebaka sa memori ka mor'a hore e lokolloe, ho tlosa li-null pointer, buffer overruns, joalo-joalo. Ho aba lilaebrari, ho fana ka meaho le ho laola litšepe, projeke e nts'etsapele mookameli oa thepa ea Cargo. Sebaka sa polokelo ea crates.io se tšehetsoa bakeng sa lilaebrari tse amohelang batho.

Tšireletseho ea memori e fanoa ka Rust ka nako ea ho bokella ka ho hlahloba litšupiso, ho boloka tlaleho ea botho ba ntho, ho boloka tlaleho ea bophelo ba ntho (scopes), le ho lekola ho nepahala ha phihlello ea mohopolo nakong ea ts'ebetso ea khoutu. Rust e boetse e fana ka ts'ireletso khahlano le phallo e felletseng, e hloka ho qalisoa ha boleng bo fapaneng pele e sebelisoa, e sebetsana le liphoso hamolemo laebraring e tloaelehileng, e sebelisa mohopolo oa litšupiso tse ke keng tsa fetoha le mefuta e fapaneng ka mokhoa o ikhethileng, e fana ka ho thaepa ho tiileng ho fokotsa liphoso tse utloahalang.

Litlhahiso tse ka sehloohong:

  • Rustc compiler e na le mokhoa o tsitsitseng oa LLVM-based bakeng sa ho hlahisa lintlha tsa tšireletso tse sebelisetsoang ho hlahloba tšireletso ea khoutu nakong ea tlhahlobo. E le ho nolofalletsa boitsebiso ba ho fana ka boitsebiso nakong ea kopano, u tlameha ho sebelisa folakha ea "-Cinstrument-coverage", mohlala, ho qala kopano ka taelo ea "RUSTFLAGS = "-C instrument-coverage" cargo building". Ka mor'a ho tsamaisa faele e sebetsang e hlophisitsoeng ka tsela ena, faele ea "default.profraw" e tla bolokoa bukeng ea hona joale, bakeng sa ts'ebetso eo u ka e sebelisang llvm-profdata ho tloha karolong ea llvm-tools-preview. Sephetho se sebetsitsoeng ke llvm-profdata joale se ka fetisetsoa ho llvm-cov ho hlahisa tlaleho e akaretsang ea khoutu. Tlhahisoleseding e mabapi le sehokelo sa khoutu ea mohloli e nkiloe faeleng e phethiloeng e ntseng e hlahlojoa, e kenyelletsang lintlha tse hlokahalang mabapi le khokahano lipakeng tsa likhakanyo tsa likhakanyo le khoutu. 1| 1|fn e kholo() {2| 1| println!("Lumela, lefatše!"); 3| 1|}
  • Ho mookameli oa sephutheloana sa thepa, tšehetso bakeng sa folakha ea "-timings" e tsitsitse, e kenyeletsang ho hlahisa tlaleho e qaqileng mabapi le tsoelo-pele ea mohaho le nako ea ho phethahatsa mohato ka mong. Tlaleho e ka ba molemo bakeng sa ho ntlafatsa ts'ebetso ea ts'ebetso ea kopano.
  • Motsamaisi oa sephutheloana sa thepa o fana ka syntax e ncha bakeng sa mochini oa ho bokella maemo le khetho ea boikhethelo, e hlophisitsoeng faeleng ea Cargo.toml ka ho thathamisa lethathamo la thepa e boletsoeng karolong ea [likarolo] le ho kengoa tšebetsong ka ho nolofalletsa thepa nakong ea kaho ea sephutheloana. ho sebedisa “--likarolo” folaga. Phetolelo e ncha e eketsa tšehetso bakeng sa ho itšetleha ka libaka tse arohaneng tsa mabitso le ho itšetleha ka matla.

    Tabeng ea pele, hoa khoneha ho sebelisa likarolo tse nang le sehlongwapele "dep:" ka hare ho karolo ea "[litšoantšo]" ho hokahanya ka ho hlaka ho itšetlehile ka boikhethelo ntle le ho emela ho itšetleha hona e le tšobotsi. Tabeng ya bobedi, tshehetso ya ho tshwaya letshwao la “?” e kentswe. ("package-name?/feature-name") litšepeho tsa boikhethelo tse lokelang ho kenyeletsoa feela haeba thepa e 'ngoe e kenyelletsa ho itšetleha ka boikhethelo. Mohlala, mohlaleng o ka tlase, ho nolofaletsa thepa ea serde ho tla etsa hore ho itšetlehe ka "serde", hammoho le thepa ea "serde" bakeng sa ho its'etleha "rgb", empa ha feela "rgb" ho itšetleha ho ka khoneha sebakeng se seng: [dependencies] serde = {mofuta = "1.0.133", boikhethelo = 'nete} rgb = {phetolelo = "0.8.25", boikhethelo = 'nete } [likarolo] serde = ["dep:serde", "rgb?/serde"]

  • Tšehetso bakeng sa ho bokellana ka ho eketseha, e neng e holofalitsoe tokollong ea ho qetela, e khutlisitsoe. Phoso ea mokopanyi e entseng hore sesebelisoa se emisoe se rarollotsoe.
  • E rarollotse mathata a mang ka ho fana ka li-timers tsa Instant ka tiisetso ea nako ea monotonic, e nahanang ka nako e sebelisoang ke tsamaiso ka mokhoa oa ho robala. Nakong e fetileng, OS API e ne e sebelisoa neng kapa neng ha ho khoneha ho sebelisa nako, e neng e sa nahane ka maemo a thata a senyang nako ea nako, joalo ka mathata a hardware, tšebeliso ea virtualization, kapa liphoso tsamaisong ea ts'ebetso.
  • Karolo e ncha ea API e fetiselitsoe sehlopheng sa ba tsitsitseng, ho kenyelletsa le mekhoa le ts'ebetsong ea mekhoa e tsitsitseng:
    • Arc::new_cyclic
    • Rc::new_cyclic
    • selae::EscapeAscii
    • <[u8]>::escape_ascii
    • u8::escape_ascii
    • Vec::spare_capacity_mut
    • MohlomongUninit::assume_init_drop
    • MohlomongUninit:: nka_init_bala
    • i8::abs_fapa
    • i16::abs_fapa
    • i32::abs_fapa
    • i64::abs_fapa
    • i128::abs_fapa
    • boholo::abs_diff
    • u8::abs_diff
    • u16::abs_diff
    • u32::abs_diff
    • u64::abs_diff
    • u128::abs_diff
    • sebelisa::abs_diff
    • Hlahisa bakeng sa io::ErrorKind
    • Ho tsoa bakeng sa ExitCode
    • Eseng bakeng sa! (mofuta "ha ho mohla")
    • _Op_Abela<$t>
    • arch::is_aarch64_feature_detected!
  • Boemo ba boraro ba ts'ehetso bo kentsoe ts'ebetsong bakeng sa sethala sa mips64-openwrt-linux-musl * le armv7-unknown-linux-uclibceabi (softfloat). Boemo ba boraro bo kenyelletsa ts'ehetso ea mantlha, empa ntle le tlhahlobo ea boiketsetso, meaho ea semmuso ea phatlalatso, kapa ho hlahloba hore na khoutu e ka hahuoa.
  • Moqapi o fetotsoe ho sebelisa LLVM 14.

Ho phaella moo, o ka hlokomela:

  • Tšehetso e ekelitsoeng bakeng sa bootstrapping ea rustc compiler e sebelisa rustc_codegen_gcc backend, e leng se u lumellang hore u sebelise laebrari ea libgccjit ho tloha morerong oa GCC e le jenereithara ea khoutu ho rustc, e lumellang rustc ho fana ka tšehetso bakeng sa meralo le lisebelisoa tse fumanehang GCC. Phatlalatso ea compiler e bolela bokhoni ba ho sebelisa jenereithara ea khoutu e thehiloeng ho GCC ho rustc ho haha ​​​​rustc compiler ka boeona. Ka lehlakoreng le sebetsang, tšobotsi ena e u lumella ho theha mananeo a mafome a meralo a neng a sa tšehetsoe pele ho rustc.
  • Ho lokolloa ha uutils coreutils 0.0.13 toolkit e fumaneha, moo ho ntseng ho ntlafatsoa analogue ea sephutheloana sa GNU Coreutils, se ngotsoeng bocha ka puo ea Rust. Coreutils e tla le lisebelisoa tse fetang lekholo, ho kenyelletsa mofuta, katse, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, le ls. Sepheo sa morero ke ho theha ts'ebetsong e 'ngoe e fapaneng ea Coreutils, e khonang ho sebetsa sethaleng sa Windows, Redox le Fuchsia, hammoho le ho ajoa tlas'a tumello ea MIT ea tumello, ho e-na le laesense ea GPL copyleft.

    Phetolelo e ncha e ntlafalitse ts'ebetsong ea lits'ebeletso tse ngata, ho kenyeletsoa ntlafatso e kholo ea ts'ebelisano ea cp, dd, df, split and tr utilities le balekane ba bona ba morero oa GNU. Litokomane tsa inthaneteng li fanoe. Clap parser e sebelisoa ho hlalosa mabaka a mola oa taelo, e ntlafalitseng tlhahiso bakeng sa folakha ea "--help" le tšehetso e eketsehileng bakeng sa khutsufatso ea litaelo tse telele (mohlala, o ka hlalosa "ls -col" ho e-na le "ls -color. ”).

Source: opennet.ru

Eketsa ka tlhaloso