Ua tatalaina le Rust 1.78. Gagana Borgo e tu'ufa'atasia le malosi o le Go ma le Rust

O le faʻasaʻolotoina o le gagana faʻapolokalame faʻamoemoe lautele Rust 1.78, 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 se igoa fou ole igoa "#[diagnostic]" ua tu'uina mai, e maua ai se auala e fa'aosofia ai fe'au sese na faia e le tagata fa'apipi'i. O le mea muamua i le avanoa fou o le "#[diagnostic::on_unimplemented]" uiga, lea e mafai ona faʻaogaina e faʻavasegaina ai feʻau sese na lafoina i se tulaga e te manaʻomia ai le faʻaogaina o se uiga e le o faʻatinoina mo le ituaiga. #[diagnostic::on_unimplemented( message = "My Message for `ImportantTrait<{A}>` e leʻo faʻatinoina mo `{Self}`", label = "My Label", note = "Note 1", note = "Note 2")] uiga ImportantTrait {} fn use_my_trait(_: impl ImportantTrait ) {} fn main() { use_my_trait(String::new()); } sese [E32]: O La'u Savali mo `ImportantTrait ` e le o fa'atinoina mo le `String` —> src/main.rs:0277:32 | 12 | use_my_trait(String::new()); | ———— ^^^^^^^^^^^^^^^ Laʻu Faailoga | | | mana'omia e se noatia na fa'aofi mai e lenei vala'au | = fesoasoani: le uiga `ImportantTrait 'e le'o fa'atinoina mo le 'String' = fa'amatalaga: Fa'amatalaga 18 = fa'amatalaga: Fa'amatalaga 12
  • O siaki muamua e fa'atatau i galuega e le saogalemu e mafai nei ona tolopoina se'ia o'o i le fa'atupuina o tulafono, e fa'ataga ai nei siaki e faia e aunoa ma le mana'omia o le fausiaina o le faletusi masani i le "#[cfg(debug_assertions)]" mode. Ina ia fa'aoso siaki, ua lava lea e fa'aagaaga ai fa'amatalaga debug mo fa'ata'ita'iga po'o le debug fausia o lau code.
  • O le amio o galuega i totonu o le faletusi masani e afaina ai le faʻaogaina o faʻailoga ma fasi pepa ua mafai nei ona vaʻaia i le taimi o le taʻavale ma e faʻalagolago i faʻamatalaga faʻapipiʻi. O le fa'asinoga o galuega::align_offset, lea e fa'atatau le fa'aoga e fa'aoga ai le fa'asinomaga, ua toe fo'i mai le fa'aoga :: MAX pe a le manuia le ta'aloga. O galuega fa'atino::align_to ma slice::align_to_mut lua, lea e liua fasi fasi i se fa'atusa fa'atasi ma le fa'aoga ogatotonu ma le ulua'i fasi pepa amata ma le fa'ai'uga, o lea e fa'afo'i i taimi uma le pito pito tele i totonu.
  • O mea nei na tu'uina atu i le vaega mautu:
    • impl Faitau mo &Stdin
    • Fa'ataga le fa'aogaina o se olaga e le tumau (non-static) mo nisi std::error::Serror-related implementations.
    • Fa'atinoina ?Size tau fa'atagaina.
    • impl Mai mo io :: Sese
  • O le Barrier::new() galuega ua faʻamautuina ina ia faʻaaogaina ma le uiga "const" i soʻo se faʻamatalaga nai lo mea tumau.
  • Mo tulaga fa'atatau x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm ma i686-pc-windows-gnu e mana'omia nei a itiiti mai Windows 10 version.
  • O le vaega lona tolu o le lagolago ua faʻatinoina mo wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf ma loongarch64-unknown-linux-musl platforms. O le vaega lona tolu e aofia ai le lagolago fa'avae, ae aunoa ma se fa'ata'ita'iga fa'apitoa, fa'asalalauga o fale fa'aletulafono, ma le fa'amaoniaina o le fa'aogaina o tulafono.
  • O le tulaga lona lua o le lagolago mo le faʻatulagaina tulaga Faʻaopoopo wasm32-wasip1 ua faʻatinoina. O le tulaga lona lua o le lagolago e aofia ai se fa'amaoniga fa'apotopotoga.
  • O le tulaga wasm32-wasi-preview1-threads ua toe faaigoa i wasm32-wasip1-threads.
  • Ua suia le tuʻufaʻatasia e faʻaaoga le LLVM 18. A faʻaaoga le LLVM 18 mo x86-32 ma x86-64 fausaga, o le ABI e fesoʻotaʻi ma ituaiga u128 ma i128 ua suia.
  • I totonu o le Cargo pact manager, o le version 4 o loka faila (lockfile v4) ua faʻamautuina.
  • O uta o loʻo i ai le faʻamautu o le lalolagi atoa ma faʻamatalaga e uiga i le faʻaogaina o faʻamatalaga lata mai. O lo'o talimalo le cache ile $CARGO_HOME/.global-cache e fa'aaoga ai le SQLite ma fa'afou fa'afou e fa'aalia ai suiga lata mai i le fa'ailoga, faila faila, fa'ailoga fa'ailoga, git clone, ma le git checkout.

E le gata i lea, o le gagana polokalame Borgo e taumafai e sili atu ona faʻaalia nai lo le gagana Go, ae itiiti le lavelave nai lo le gagana Rust. Ua tu'ufa'atasia e Borgo foliga sili o le Go ma le Rust, e fa'alelei ai fa'aletonu o gagana ta'itasi. Mo se faʻataʻitaʻiga, Go e faigofie ma tuusaʻo, ae e le maua ai ni faʻamatalaga saogalemu. O le gagana Rust e maua ai meafaigaluega mo polokalame saogalemu, ae e sili atu le lavelave. O le poloketi o loʻo atiaʻe e Marco Sampellegrini, le tusitala o le Simple Haskell Handbook ma le faʻavaeina o le Quad CI faʻaauau le tuʻufaʻatasia faiga.

Ua tatalaina le Rust 1.78. Gagana Borgo e tu'ufa'atasia le malosi o le Go ma le Rust

E fa'aoga e Borgo le ta'i fa'atutu, Go-pei ituaiga, ma Rust-like syntax. Semicolons e filifili ile pito o laina ile Borgo code. O le Borgo code o lo'o tu'ufa'atasia i se fa'atusa o le Go e fetaui lelei ma afifi Go o iai. O le code compiler e tusia i le Rust ma tufatufaina i lalo ole laisene ISC. fa'aoga fmt enum NetworkState { Loading, Failed(int), Success(T), } struct Tali { title: manoa, umi: int, } fn main() { let res = Tali { title: “Talofa le lalolagi”, umi: 0, } tu'u le setete = NetworkState.Success(res) let msg = match state { NetworkState.Loading => “o loo uta pea”, NetworkState. Failed(code) => fmt.Sprintf(“Got error code: %d”, code), NetworkState.Success (res) => res.title, } fmt.Println(msg) }

puna: opennet.ru

Faaopoopo i ai se faamatalaga