Rust 1.72 tashmë është lëshuar dhe këto janë të rejat e tij

logoja e ndryshkut

Rust është një gjuhë programimi e përpiluar me shumë paradigmë, me qëllime të përgjithshme.

Pak ditë më parë u bë e ditur lëshimi i versionit të ri të gjuhës së programimit popullor «Rust 1.72», version në të cilin janë shtuar veçori të reja, si dhe përmirësime, rregullime të gabimeve dhe ndryshime të ndryshme që fokusohen në bërjen e procesit të krijimit të kodit më të lehtë dhe më të rrjedhshëm.

Për ata që nuk janë në dijeni të kësaj gjuhe programimi, duhet ta dinë këtë fokusohet në sigurinë e kujtesës dhe siguron mjetet për të arritur paralelizëm të lartë të punëve duke shmangur përdorimin e një grumbulluesi të mbeturinave dhe kohën e funksionimit (koha e funksionimit reduktohet në inicializimin bazë dhe mirëmbajtjen standarde të bibliotekës).

Metodat e menaxhimit të kujtesës Rust ata e ruajnë zhvilluesin nga gabimet gjatë manipulimit të treguesve dhe mbrojnë nga problemet që lindin për shkak të menaxhimit të memories së nivelit të ulët, të tilla si qasja në një zonë memorie pasi të jetë liruar, mosreferencimi i treguesve null, tejmbushjet e buferit, etj. Për të shpërndarë bibliotekat, për të ofruar ndërtime dhe për të menaxhuar varësitë, projekti zhvillon menaxherin e paketave Cargo.

Karakteristikat kryesore të reja të Rust 1.72

Në këtë version të ri që vjen nga versioni Rust 1.72 një nga karakteristikat më inovative është përmirësimi në dobia e artikujve të çaktivizuar nga atributet cfg përpilimi i kushtëzuar, i cili ju lejon të aktivizoni ekzekutimin e kodit Rust në varësi të nëse disa veçori të kutisë mbështeten ose ekzekutohen në platforma specifike.

Më parë, artikujt e çaktivizuar nëpërmjet cfg nuk ishin të dukshëm për përpiluesin, por tani kjo ndryshon, pasi përpiluesi tani ruan informacion jetik duke përfshirë emrat e elementeve dhe kushtet cfg. Kjo i mundëson përpiluesit të ofrojë reagime interesante, të tilla si nxjerrja në pah e padisponueshmërisë së një veçorie për shkak të nevojës për të aktivizuar një veçori specifike të kutisë. Kjo u jep zhvilluesve udhëzime më të qarta dhe lehtëson një përvojë më efikase të kodimit. Për shembull, ju lejon të kuptoni se disa funksione nuk janë të disponueshme për shkak të çaktivizimit të veçorive të caktuara në kuti.

Një tjetër nga ndryshimet që bie në sy në këtë version të ri të Rust 1.72 është ai u hoqën kufizimet në kohën e vlerësimit të shprehjeve konstante, Më parë, për të shmangur ciklin e përpilimit të kohës, Rust kufizoi numrin maksimal të shprehjeve që mund të ekzekutoheshin gjatë vlerësimit të vazhdueshëm.
Ky funksion shkaktoi gabime gjatë përpilimit të kodit që nuk përputhej ndaj kufizimeve, pra në versionin e ri u vendos që të zëvendësohen kufizimet e rrepta me një ekran paralajmërues që informon për llogaritjet e vazhdueshme me kohëzgjatje të gjatë. Kontrolli i lintit const_eval_long_running zbatohet gjithashtu si parazgjedhje për të zbuluar sythe.

Krahas kësaj, theksohet edhe se Listat Clippy u përmirësuan, pasi një numër kontrollesh Clippy janë zhvendosur në përpiluesin Rustc:

  • undropped_manually_drops: ndryshuar në me nivelin e mohimit. Kur kemi të bëjmë me ManuallyDrop, vlera e brendshme nuk bie automatikisht. Thirrja std::mem::drop nuk ka efekt. Në vend të kësaj, ky lint tani propozon të përdorë ManuallyDrop::into_inner si opsionin kryesor.
  • invalid_utf8_in_unchecked: riemëruar në nivel të mohimit dhe nivelit të paralajmërimit; invalid_from_utf8_unkontrolluar invalid_from_utf8. Identifikon rastet kur std::str::from_utf8_unchecked dhe std::str::from_utf8_unchecked_mut përdoren me literale të pavlefshme UTF-8. Ky përdorim shkel parakushtet e tij të sigurisë dhe çon në sjellje të papërcaktuara. Ky push tani është kategorikisht i ndaluar.
  • invalid_nan_comparisons: identifikon krahasimet që përfshijnë f32::NAN ose f64::NAN si operandë. Meqenëse NaN-së i mungojnë krahasimet domethënëse
  • invalid_reference_casting: thekson rastet kur &T bëhet &mut T pa përfituar nga ndryshueshmëria e brendshme. Veprime të tilla rezultojnë në sjellje të menjëhershme dhe të papërcaktuara, pavarësisht nëse referenca përdoret apo jo.

ndryshime të tjera që bien në sy i versionit të ri:

  • Një pjesë e re e API-së është zhvendosur në kategorinë e qëndrueshme, duke përfshirë metodat dhe implementimet e tipareve që janë stabilizuar.
  • Atributi "const", i cili përcakton mundësinë e përdorimit në çdo kontekst në vend të konstanteve, përdoret në funksionet:
  • Mbështetja e nivelit të tretë për platformat loongarch64-unknown-none* është zbatuar. Niveli i tretë përfshin mbështetjen bazë, por pa testime të automatizuara, publikimin e ndërtimeve zyrtare dhe verifikimin e përpilueshmërisë së kodit.
  • Në një version të ardhshëm të Rust 1.76, është planifikuar të hiqet mbështetja për platformat Windows 7, 8 dhe 8.1 dhe të bëhet Windows 10 versioni minimal për qëllimet e përpiluesit dhe të ndërtimit.

Dremitje të interesuar të dinë më shumë për të, ju mund të kontrolloni detajet në lidhja e mëposhtme.

Së fundi, për ata që janë I interesuar për përmirësimin nga një version i mëparshëm i Rust i instaluar përmes rustup, mund të merrni versionin e ri të Rust 1.72.0 me:

rustup update stable


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.