Umhlwa 1.37 Ukukhutshwa koLwimi lweNkqubo

ipapashiwe inkqubo yolwimi ukukhululwa Umhlwa 1.37, yasekwa 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:

  • Kwi-rustc compiler ikhuselekile inkxaso yokuphucula ngokusekwe kwiziphumo zeprofayili yekhowudi (i-PGO, uPhuculo oluKhokelwe kwiProfayili),
    ikuvumela ukuba uvelise ikhowudi ephezulu ngokusekwe kuhlalutyo lweenkcukacha-manani eziqokelelwe ngexesha lokwenziwa kwenkqubo. Ukuvelisa iprofayile, iflegi "-C profile-generate" inikezelwe, kunye nokusebenzisa iprofayili ngexesha lendibano - "-C profile-use-use" (ekuqaleni, inkqubo idityaniswa neflegi yokuqala, ijikeleza, kwaye emva kokudala iphrofayili, iphinda idityaniswe kunye neflegi yesibini);

  • Xa uphumeza umyalelo othi "cargo run", okulungele ukusetyenziselwa ukuvavanya ngokukhawuleza izicelo zekhonsoli, ukukwazi ukukhetha ngokuzenzekelayo ifayile ephunyeziweyo ukuba iqhutywe yongezwe ukuba kukho iifayile ezininzi eziphunyezwayo kwiphakheji. Ifayile engagqibekanga ekufuneka iphunyezwe imiselwa ngomyalelo wokwenziwa komsebenzi ongagqibekanga kwi [pakethe] icandelo elineeparamitha zepakethe, ekuvumela ukuba uphephe ukukhankanya ngokucacileyo igama lefayile nge “-bin” iflegi qho xa uqhuba “impahla baleka”;
  • Umyalelo "womthengisi wempahla", owawunikelwe ngaphambili njenge iphakheji eyahlukileyo. Umyalelo ikuvumela ukuba uququzelele umsebenzi kunye nekopi yendawo yokuxhomekeka - emva kokwenza "umthengisi wempahla", zonke iikhowudi zomthombo wokuxhomekeka kweprojekthi zikhutshelwa kwi-crates.io kuluhlu lwendawo, olunokuthi lusetyenziselwe umsebenzi ngaphandle kokufikelela kwiikhreyithi. io (emva kokuphumeza umyalelo, ingcebiso yokutshintsha uqwalaselo iboniswa ukusebenzisa ulawulo lolwakhiwo). Olu phawu sele lusetyenziselwa ukuququzelela ukuhanjiswa kwe-rustc compiler kunye nokupakishwa kwazo zonke izinto ezixhomekeke kwi-archive enye kunye nokukhululwa;
  • Ngoku kuyenzeka ukwenza amakhonkco kwiinketho ze-enum usebenzisa iziteketiso zodidi (umzekelo, kumzimba womsebenzi "fn increment_or_zero(x: ByteOption) ungakhankanya "ByteOption::Akukho nanye => 0"), chwetheza ubalo lwabakha (‹ MyType‹.. ››::option => N) okanye Ufikelelo ngokwakho (kwiibhloko c & ngokwakho ungachaza “Self::Quarter => 25”);
  • Yongezwe amandla okwenza ii-constants ezingachazwanga ngamagama kwiimacros. Endaweni yokuchaza igama lesixhobo ku-"const", ungasebenzisa ngoku "_" uphawu ukukhetha ngokuguquguqukayo isichongi esingaphindi, ukuthintela ukungqubana kwegama xa ubiza i-macro kwakhona;
  • Kongezwe ukukwazi ukusebenzisa "#[repr(align(N))" uphawu loyelelwano ngee-enums kusetyenziswa isivakalisi esifana nokuchaza ulungelelwaniso lwe-AlignN‹T› isakhiwo ngolungelelwaniso kwaye emva koko usebenzisa u-AlignN‹MyEnum›;
  • Inxalenye entsha ye-API iye yasiwa kudidi oluzinzileyo, kuquka iBufReader::buffer, BufWriter::buffer, kunye
    Iseli::isuka_emut,
    Iseli::njengeqhekeza_leeseli,
    DoubleEndedIterator::nth_back,
    Khetha::xor
    {i,u}{8,16,64,128,ubungakanani}::umva_amasuntswana, Ukusonga::umva_amasuntswana kunye
    isilayi::ikopi_ngaphakathi.

Ukongezelela, kunokuqatshelwa ukuqala kovavanyo iprojekthi Async-std, enikezela ngokwahluka kwe-asynchronous kwilayibrari esemgangathweni ye-Rust (izibuko lelayibrari ye-std, apho zonke iindawo zojongano zinikezelwa ngenguqulelo ye-async kwaye zilungele ukusetyenziswa kunye ne-async/ait syntax).

umthombo: opennet.ru

Yongeza izimvo