Rust 1.69 programmēšanas valodas izlaidums

Publicēts vispārējas nozīmes programmēšanas valodas Rust 1.69 izlaidums, kas dibināts ar Mozilla projektu, bet tagad izstrādāts neatkarīgās bezpeļņas organizācijas Rust Foundation paspārnē. Valoda koncentrējas uz atmiņas drošību un nodrošina līdzekļus, lai sasniegtu augstu darba paralēlismu, vienlaikus izvairoties no atkritumu savācēja un izpildlaika izmantošanas (izpildlaiks tiek samazināts līdz standarta bibliotēkas pamata inicializēšanai un uzturēšanai).

Rust atmiņas apstrādes metodes pasargā izstrādātāju no kļūdām, manipulējot ar rādītājiem, un aizsargā pret problēmām, kas rodas zema līmeņa atmiņas apstrādes dēļ, piemēram, piekļūšana atmiņas apgabalam pēc tā atbrīvošanas, nulles rādītāju atsauču atcelšana, bufera pārtēriņi utt. Lai izplatītu bibliotēkas, nodrošinātu būvējumus un pārvaldītu atkarības, projekts izstrādā Cargo pakotņu pārvaldnieku. Crates.io repozitorijs tiek atbalstīts bibliotēku mitināšanai.

Atmiņas drošība tiek nodrošināta Rust kompilēšanas laikā, pārbaudot atsauces, sekojot līdzi objekta īpašumtiesībām, sekojot līdzi objektu kalpošanas laikam (tvērumam) un novērtējot atmiņas piekļuves pareizību koda izpildes laikā. Rūsa arī nodrošina aizsardzību pret veselu skaitļu pārpildīšanu, pieprasa obligātu mainīgo vērtību inicializāciju pirms lietošanas, labāk apstrādā kļūdas standarta bibliotēkā, pēc noklusējuma piemēro nemainīgu atsauču un mainīgo jēdzienu, piedāvā spēcīgu statisko rakstīšanu, lai samazinātu loģiskās kļūdas.

Galvenie jauninājumi:

  • Cargo pakotņu pārvaldnieks ievieš brīdinājumu noteikšanu, kurus var automātiski atrisināt, un atbilstošu ieteikumu izvadīšanu, lai palaistu "cargo fix" vai "cargo clippy -fix". brīdinājums: neizmantots imports: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | izmantot std::hash::Hash; | ^^^^^^^^^^^^^^^^ | = piezīme: '#[warn(unused_imports)]' ieslēgts pēc noklusējuma brīdinājums: 'foo' (bin "foo") ģenerēja 1 brīdinājumu (palaidiet 'cargo fix —bin "foo"', lai lietotu 1 ieteikumu)
  • Cargo ir pievienojis ieteikumu izvadi, lai izmantotu komandu "kravas pievienošana", mēģinot instalēt bibliotēku ar komandu "cargo install".
  • Lai samazinātu kompilācijas laiku, pēc noklusējuma ir apturēta atkļūdošanas informācijas iekļaušana veidošanas skriptos. Ja būvēšanas skripti darbojas veiksmīgi, izmaiņas neradīs redzamas atšķirības, bet, ja rodas kļūmes, izsekošanas izdrukā būs mazāk informācijas. Lai Cargo.toml atgrieztu veco darbību, jāpievieno: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Jauna API daļa ir pārvietota uz stabilo kategoriju, tostarp ir stabilizētas pazīmju metodes un ieviešanas:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • Atribūts "const", kas nosaka iespēju to izmantot jebkurā kontekstā konstantu vietā, tiek izmantots funkcijās:
    • SocketAddr::jauns
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::jauns
    • SocketAddrV4::ip
    • SocketAddrV4::ports
    • SocketAddrV6::jauns
    • SocketAddrV6::ip
    • SocketAddrV6::ports
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Pievienota iespēja kompilatora argumentos izmantot patiesus un nepatiesus karogus.

Avots: opennet.ru

Pievieno komentāru