Umhlwa 1.34 Ukukhutshwa koLwimi lweNkqubo

yathatha indawo inkqubo yolwimi ukukhululwa Umhlwa 1.34, ephuhliswe yiprojekthi yeMozilla. Ulwimi lujolise ekukhuselweni kwememori, lubonelela ngolawulo lwememori oluzenzekelayo, kwaye lubonelela ngeendlela zokufezekisa ukuhambelana okuphezulu komsebenzi ngaphandle kokusebenzisa umqokeleli wenkunkuma okanye ixesha lokuqhuba.

Ulawulo lwenkumbulo oluzenzekelayo lwe-Rust lukhulula umphuhlisi ekusetyenzisweni kwesalathisi kwaye ikhusela kwiingxaki ezivela kulawulo lwenkumbulo olukwinqanaba elisezantsi, elifana nofikelelo lwememori yasemva kwe-free, izalathisi ezingenanto, ukugqithiswa kwe-buffer, nokunye okunjalo. Umphathi wephakheji uyaphuhliswa ukuze asasaze amathala eencwadi, aqinisekise ukudibanisa kunye nokulawula ukuxhomekeka kwiprojekthi. Cargo, ikuvumela ukuba ufumane amathala eencwadi afunekayo kudweliso lwenkqubo ngonqakrazo olunye. Uvimba uyaxhaswa ukubamba amathala eencwadi iikhreyithi.io.

Siseko ezintsha:

  • Umphathi wePakethe yeCargo wongeze izixhobo zokusebenza nezinye iirejista zeepakethe ezinokubakho kunye ne-crates.io yobhaliso loluntu. Umzekelo, abaphuhlisi bezicelo zobunini ngoku banokusebenzisa ubhaliso lwabucala, olunokusetyenziswa xa kudweliswa ukuxhomekeka kwiCargo.toml, kwaye basebenzise imodeli yoguqulelo efana ne-crates.io kwiimveliso zabo, kunye nokuxhomekeka kokuxhomekeka kuwo omabini amakhreyithi. io nakwirejista yakho.

    Ukongeza iirejista zangaphandle kwi-.cargo/config (ibekwe kwi $HOME okanye kulawulo lwempahla)
    kubonelelwe icandelo "[ababhalisi]", kunye nokusebenzisa ubhaliso lwangaphandle, ukhetho "lobhaliso" luvele kwinkcazo yokuxhomekeka ngakunye kwiCargo.toml. Ukuqhagamshela kubhaliso olongezelelweyo, beka ngokulula uphawu lwesiqinisekiso kwi ~/.cargo/iinkcukacha zefayile kwaye usebenzise umyalelo.
    "impahla yokungena --registry=my-registry" kunye nokupapasha ipakethe -
    "ushicilelo lwempahla -registry=my-registry";

  • Kongezwe inkxaso epheleleyo yokusebenzisa "?" umsebenzisi. kwiimvavanyo iigqirha, ikuvumela ukuba usebenzise ikhowudi yomzekelo kuxwebhu njengovavanyo. Umqhubi wangaphambili
    "?" ingasetyenziselwa ukusingatha iimpazamo ngexesha lokwenziwa kovavanyo kuphela kubukho be "fn main()" umsebenzi okanye kwi "#[test]" imisebenzi;

  • Kwiimpawu zesiko ezichazwe kusetyenziswa iinkqubo zemacros ikhuselekile ukukwazi ukusebenzisa iiseti ezingafanelekanga (“#[attr($tokens)]”, “#[attr[$tokens]] kunye ne#[attr{$tokens}]”). Ngaphambili, iziqalelo bezinokuchazwa kuphela kumthi/kwimo ephinda-phindayo kusetyenziswa umtya woqobo, umzekelo “#[foo(bar, baz(quux, foo = “bar”))]”, kodwa ngoku kuyenzeka ukusebenzisa ubalo (' #[uluhlu(0. .10)]') kunye nolwakhiwo olunje “#[bopheleleke(T: MyTrait)]”;
  • Iintlobo ezizinzisiweyo (uphawu) ZamaUkusuka и ZamaInto, ivumela uhlobo loguqulelo kunye nokuphathwa kwemposiso. Umzekelo, iindlela ezifana ne_be_bytes ezineentlobo ezipheleleyo zisebenzisa uluhlu njengegalelo, kodwa idatha ihlala iza ngohlobo lweSilayidi, kwaye ukuguqula phakathi koluhlu kunye nezilayi kuyingxaki ukwenza ngesandla. Ngoncedo lweempawu ezintsha, umsebenzi ochaziweyo unokwenziwa kwi-fly ngokufowunela .try_into(), umzekelo, “let num = u32::from_be_bytes(slice.try_into()?)”. Kuguqulo oluhlala luphumelela (umzekelo, ukusuka kuhlobo u8 ukuya ku-u32), uhlobo lwempazamo longeziwe Ayinasiphako, ukuvumela ukusetyenziswa ekuhleni
    I-TryFrom kulo lonke usetyenziso olukhoyo lwe-"From";

  • Umsebenzi urhoxisiwe CommandExt::phambi_exec, evumele isiphatho sibulawe phambi kokuba kuqhutywe u-exec, owenziwe kumxholo wenkqubo yomntwana efowulwe emva kwefolokhwe() ifowuni. Phantsi kweemeko ezinjalo, ezinye izibonelelo zenkqubo yomzali, njengezichazi zefayile kunye neendawo zememori ezimephu, zinokuphinda-phindwa, ezinokuthi zikhokelele ekuziphatheni okungachazwanga kunye nokusebenza ngendlela engalunganga kwamathala eencwadi.
    Kuyacetyiswa ukuba usebenzise umsebenzi ongakhuselekanga endaweni ye-pre_exec CommandExt::pre_exec.

  • Iintlobo ezizinzisiweyo ezisayiniweyo nezingatyikitywanga zeatom epheleleyo ukusuka kubukhulu obusuka kwisi-8 ukuya kumasuntswana angama-64 (umzekelo, AtomicU8), kunye neentlobo ezisayiniweyo NonZeroI[8|16|32|64|128].
  • Inxalenye entsha ye-API iye yasiwa kudidi oluzinzileyo, kuquka Nayiphi na::type_id, Imposiso::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant::checked_[engeza|sub ] kunye neendlela ze-SystemTime zinzinzisiwe ::checked_[yongeza|sub]. I-iter::from_fn kunye ne-iter::imisebenzi yokulandela izinzile;
  • Kuzo zonke iindidi ezipheleleyo, i-checked_pow, saturating_pow, wrapping_pow kunye ne-overflowing_pow iindlela ziyaphunyezwa;
  • Yongezwe amandla okwenza ulungelelwaniso kwinqanaba lokudibanisa ngokucacisa "-C linker-plugin-lto" ukhetho lokwakha.

umthombo: opennet.ru

Yongeza izimvo