Rust 1.55 programmēšanas valodas izlaidums

Iznācis Mozilla projekta dibinātās, bet tagad neatkarīgās bezpeļņas organizācijas Rust Foundation paspārnē izstrādātās sistēmas programmēšanas valodas Rust 1.55 izlaidums. Valoda koncentrējas uz atmiņas drošību, nodrošina automātisku atmiņas pārvaldību un nodrošina līdzekļus augsta uzdevumu paralēlisma sasniegšanai, neizmantojot atkritumu savācēju vai izpildlaiku (izpildlaiks tiek samazināts līdz standarta bibliotēkas pamata inicializēšanai un uzturēšanai).

Rust automātiskā atmiņas pārvaldība novērš kļūdas, manipulējot ar rādītājiem, un aizsargā pret problēmām, kas rodas no zema līmeņa atmiņas manipulācijām, piemēram, piekļuves atmiņas apgabalam pēc tā atbrīvošanas, nulles rādītāju novirzēm, bufera pārtēriņiem utt. Bibliotēku izplatīšanai, komplektēšanas nodrošināšanai un atkarību pārvaldībai projektā tiek izstrādāts Cargo pakotņu pārvaldnieks. Crates.io repozitorijs tiek atbalstīts bibliotēku mitināšanai.

Galvenie jauninājumi:

  • Cargo pakotņu pārvaldniekam ir iespēja sapludināt dublētās kļūdas un brīdinājumus, kas rodas būvēšanas laikā. Izpildot komandas, piemēram, "kravas pārbaude" un "kravas pārbaude -- visi mērķi", kuru rezultātā tiek izveidotas vairākas pakotnes ar dažādiem parametriem, lietotājam tagad tiek rādīts atkārtotas problēmas rašanās kopsavilkums, nevis tiek rādīts. vairāki identiski brīdinājumi, veidojot vienu un to pašu lietu atkārtoti. $ kravas +1.55.0 pārbaude —all-targets Pārbauda foo v0.1.0 brīdinājumu: funkcija nekad netiek izmantota: ‘foo’ —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = piezīme: '#[warn(dead_code)]' ieslēgts pēc noklusējuma brīdinājums: 'foo' (lib) ģenerēja 1 brīdinājuma brīdinājumu: 'foo' (lib tests) ģenerēja 1 brīdinājumu (1 dublikāts) Pabeigts izstrādes mērķis [neoptimizēts + atkļūdošanas info] (s) 0.84 s
  • Peldošā komata parsēšanas kods standarta bibliotēkā ir pārvietots, lai izmantotu ātrāku un precīzāku Eisel-Lemire algoritmu, kas ir atrisinājis dažas iepriekš novērotās problēmas ar skaitļu noapaļošanu un parsēšanu ar ļoti lielu ciparu skaitu.
  • Stabilizēta ir iespēja veidnēs norādīt neaizslēgtus diapazonus (“X..” tiek interpretēts kā diapazons, kas sākas ar vērtību X un beidzas ar vesela skaitļa veida maksimālo vērtību): atbilst x kā u32 { 0 => println! (“nulle!”), 1.. => println!("pozitīvs skaitlis!"), }
  • Izvērstie kļūdu varianti, uz kuriem attiecas std::io::ErrorKind (klasificē kļūdas kategorijās, piemēram, NotFound un ShouldBlock). Iepriekš kļūdas, kas neietilpa esošajās kategorijās, ietilpa kategorijā ErrorKind::Other, kas tika izmantota arī kļūdām trešās puses kodā. Tagad ir atsevišķa iekšējā kategorija ErrorKind::Uncategorized kļūdām, kas neietilpst esošajās kategorijās, un ErrorKind::Other kategorija ir ierobežota ar kļūdām, kas nerodas standarta bibliotēkā (standarta bibliotēkas funkcijas, kas atgriež io::Error vairs neizmanto ErrorKind:: kategoriju Cits).
  • Jauna API daļa ir pārvietota uz stabilo kategoriju, tostarp ir stabilizētas pazīmju metodes un ieviešanas:
    • Saistīts::klonēts
    • Drain::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUninit::assume_init_mut
    • MaybeUninit::assume_init_ref
    • MaybeUninit::write
    • masīvs::karte
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Atribūts “const”, kas nosaka iespēju to izmantot jebkurā kontekstā konstantu vietā, tiek izmantots metodē str::from_utf8_unchecked.
  • Trešais atbalsta līmenis ir ieviests platformai powerpc64le-unknown-freebsd. Trešais līmenis ietver pamata atbalstu, taču bez automatizētas testēšanas, oficiālu būvējumu publicēšanas vai pārbaudes, vai kodu var izveidot.

Avots: opennet.ru

Pievieno komentāru