Rust 1.37 Programazio Lengoaia kaleratzea

argitaratua sistemaren programazio lengoaia kaleratzea Herdoila 1.37, Mozilla proiektuak sortua. Lengoaiak memoriaren segurtasunean oinarritzen da, memoria automatikoki kudeatzen du eta zereginen paralelismo handia lortzeko bitartekoa eskaintzen du zabor-biltzaile edo exekuzio-denbora erabili gabe.

Rust-en memoria-kudeaketa automatikoak garatzailea erakusleen manipulaziotik askatzen du eta maila baxuko memoriaren manipulaziotik sortzen diren arazoetatik babesten du, hala nola, memoria librearen ondorengo sarbideetatik, erakusle nuluen deserreferentziak, buffer gainezkatzeetatik eta antzekoetatik. Liburutegiak banatzeko, muntaia ziurtatzeko eta proiektuaren mendekotasunak kudeatzeko pakete-kudeatzaile bat garatzen ari da. Zama, programarako beharrezkoak diren liburutegiak klik bakarrean eskuratu ahal izateko. Biltegi bat onartzen da liburutegiak ostatatzeko kaxak.io.

Nagusia berrikuntzak:

  • Rustc konpilatzailean emandako Kode profilaren emaitzetan oinarritutako optimizaziorako laguntza (PGO, Profile-Guided Optimization),
    programaren exekuzioan pilatutako estatistiken analisian oinarrituta kode optimoagoa sortzeko aukera ematen du. Profil bat sortzeko, "-C profile-generate" bandera ematen da, eta profila muntatzean erabiltzeko - "-C profile-use" (hasieran, programa lehen banderarekin muntatzen da, inguruan exekutatzen da eta sortu ondoren). profila, bigarren banderarekin berriro muntatzen da);

  • "Cargo run" komandoa exekutatzen denean, kontsola aplikazioak azkar probatzeko erabiltzeko erosoa dena, exekutatzeko fitxategi exekutagarri bat automatikoki hautatzeko gaitasuna gehitu da paketean hainbat fitxategi exekutagarri badaude. Exekutatu beharreko fitxategi lehenetsia [paketea] ataleko exekuzio lehenetsiaren zuzentarauaren bidez zehazten da pakete-parametroekin, eta horri esker, fitxategiaren izena "-bin" banderaren bidez esplizituki zehaztea saihesteko aukera ematen du "karga-exekutatu" exekutatzen duzun bakoitzean;
  • "Zama-saltzailea" komandoa, aurretik gisa hornitua aparteko paketea. Komandoak menpekotasunen tokiko kopia batekin lana antolatzeko aukera ematen du - "karga saltzailea" exekutatu ondoren, proiektuaren mendekotasunen iturburu-kode guztiak crates.io-tik tokiko direktorio batera deskargatzen dira, eta gero kaxetara sartu gabe lan egiteko erabil daiteke. io (komandoa exekutatu ondoren, konfigurazioa aldatzeko gomendio bat erakusten da direktorioa eraikitzeko erabiltzeko). Ezaugarri hau jada erabiltzen da rustc konpilatzailearen entrega menpekotasun guztien paketearekin oharrarekin artxibo batean antolatzeko;
  • Orain posible da enumerazio-aukeretarako estekak sortzea motako aliasak erabiliz (adibidez, "fn increment_or_zero(x: ByteOption)" funtzioaren gorputzean "ByteOption::None => 0" zehaztu dezakezu, idatzi kalkulu-eraikuntzak (β€Ή MyTypeβ€Ή.. β€Ίβ€Ί::option => N) edo Norberaren sarbideak (c &self blokeetan β€œSelf::Quarter => 25” zehaztu dezakezu);
  • Makroetan izenik gabeko konstanteak sortzeko gaitasuna gehitu da. Elementuaren izena "const"-n definitu beharrean, "_" karakterea erabil dezakezu errepikatzen ez den identifikatzaile bat dinamikoki hautatzeko, makroari berriro deitzean izen-gatazkak saihestuz;
  • "#[repr(align(N))" atributua erabiltzeko gaitasuna gehitu da enumerazioekin AlignNβ€ΉTβ€Ί egitura bat lerrokatzearekin definitzearen antzeko sintaxia erabiliz eta gero AlignNβ€ΉMyEnumβ€Ί erabiliz;
  • APIaren zati berri bat kategoria egonkorrera eraman da, BufReader::buffer, BufWriter::buffer eta barne.
    Cell::from_mut,
    Cell::zelula_zati gisa,
    DoubleEndedIterator::nth_back,
    Aukera::xor
    {i,u}{8,16,64,128,tamaina}::alderantzizko_bitak, Biltzea::alderantzizko_bitak eta
    xerra::kopia_barruan.

Gainera, nabarmendu daiteke probaren hasiera proiektua Async-std, Rust liburutegi estandarraren aldaera asinkrono bat eskaintzen duena (std liburutegiaren ataka, zeinean interfaze guztiak bertsio asinkrono batean eskaintzen diren eta async/wait sintaxiarekin erabiltzeko prest dauden).

Iturria: opennet.ru

Gehitu iruzkin berria