Rust 1.65 Fa'apolokalame Gagana Fa'asa'oloto

O le faʻasaʻolotoina o le gagana faʻapolokalame faʻamoemoe lautele Rust 1.65, 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:

  • Fa'aopoopoina le lagolago mo ituaiga e feso'ota'i lautele (GAT, Generic Associated Types), lea e mafai ai ona fai ni igoa fa'aigoa e feso'ota'i ma se isi ituaiga ma fa'ataga ai oe e fa'afeso'ota'i tagata fau ituaiga ma uiga. uiga Foo { type Bar<'x>; }
  • O le faʻaaliga "tuu ... isi" ua faʻatinoina, faʻatagaina oe e siaki le tulaga faʻatusa saʻo i totonu o le faʻaaliga "tuu" ma faʻatino tulafono faʻamaonia pe a le fetaui le mamanu. tu'u Ok(faitau) = u64::from_str(count_str) isi { panic!("E le mafai ona fa'avasega numera: '{count_str}'"); };
  • Fa'ataga le fa'aogaina o se fa'amatalaga o le malologa e alu ese ai mai poloka fa'aigoaina vave, fa'aaoga le igoa poloka (igoa) e iloa ai le poloka e fa'amuta. let result = 'poloka: { fai_thing(); pe afai o le tulaga_le_faia() { motusia 'poloka 1; } fai_next_thing(); pe afai o le tulaga_le_faia() { motusia 'poloka 2; } fai_last_thing(); 3};
  • Mo Linux, ua faʻaopoopoina le mafai ona faʻasaoina faʻamatalaga faʻamatalaga (split-debuginfo), na maua muamua mo le macOS platform. Pe a faʻamaoti le "-Csplit-debuginfo = unpacked" filifiliga, debuginfo data i le DWARF format o le a faʻasaoina i le tele o faila mea faitino ma se faʻaopoopoga ".dwo". O le faʻamalamalamaina o le "-Csplit-debuginfo=packed" o le a fatuina ai se afifi e tasi i le ".dwp" format e aofia uma ai faʻamatalaga debuginfo mo le poloketi. Ina ia faʻapipiʻi saʻo le debuginfo i le vaega .debug_* o mea ELF, e mafai ona e faʻaogaina le "-Csplit-debuginfo = off" filifiliga.
  • 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:
    • std::backtrace::backtrace
    • Nonoa::as_ref
    • std::io::read_to_string
    • <*const T>::cast_mut
    • <*mut T>::cast_const
  • O le uiga "const", lea e fuafua ai le avanoa e faʻaaogaina ai i soʻo se faʻamatalaga nai lo le tumau, e faʻaaogaina i galuega <*const T&>::offset_from ma <*mut T>::offset_from
  • I le avea ai o se vaega o le vaega mulimuli o le fesiitaiga o le faatinoga o le LSP (Language Server Protocol) protocol i rust-analyzer, o le faatinoga tuai o le Rust Language Server (RLS) na suia i se stub server e tuuina atu se lapataiga ma se fautuaga e sui i le fa'aaogaina le su'esu'e ele.
  • I le taimi o le tuʻufaʻatasia, o le lagolago mo le faʻapipiʻiina o le MIR intermediate code e mafai, lea e faʻavaveina ai le tuʻufaʻatasia o pusa masani masani e 3-10%.
  • Ina ia fa'avavevave le fa'atulagaina, e tu'uina atu e le pule o pusa uta uta le fa'avasegaina o galuega o lo'o fa'atali le fa'atinoina i le laina.

E le gata i lea, e mafai ona e matauina le faʻatalanoaga e uiga i le faʻaogaina o le gagana Rust i Volvo e atiaʻe ai vaega o faʻamatalaga faʻamatalaga taʻavale. E leai ni fuafuaga e toe tusi ai le code o lo'o i ai ma fa'ata'ita'i ile Rust, ae mo le code fou, Rust o se tasi lea o filifiliga sili mo le fa'aleleia atili o le lelei ile tau maualalo. O vaega faigaluega e feso'ota'i ma le fa'aogaina o le gagana Rust ua fa'atūina fo'i i totonu o asosi ta'avale AUTOSAR (AUTomotive Open System ARchitecture) ma le SAE (Society of Automotive Engineers).

E le gata i lea, o David Kleidermacher, le sui peresitene o le inisinia a Google, na saunoa e uiga i le faaliliuga o le code o loʻo faʻaaogaina i luga o le Android platform e pulea ai faʻamatalaga faʻailoga i Rust, faʻapea foʻi ma le faʻaogaina o le Rust i le faʻatinoina o le DNS i luga o le HTTPS protocol i le faaputuga. mo UWB- chips (Ultra-Wideband) ma i totonu o le faʻatulagaga faʻapitoa (Android Virtualization Framework) e fesoʻotaʻi ma le Tensor G2 chip. O faaputuga fou mo le Bluetooth ma le Wi-Fi, toe tusia i le Rust, o loʻo fausia foi mo le Android. O le ta'iala lautele o le fa'asolosolo fa'amalosi le puipuiga, muamua e ala i le fa'aliliuina o vaega sili ona vaivai ma taua i le Rust, ona fa'alautele atu lea i isi subsystems feso'ota'i. I le tausaga talu ai, na aofia ai le gagana Rust i le lisi o gagana faʻatagaina mo le atinaʻeina o le Android platform.

puna: opennet.ru

Faaopoopo i ai se faamatalaga