Rust 1.69 programmeerimiskeele väljalase

Avaldatud on Mozilla projektiga rajatud, kuid nüüdseks sõltumatu mittetulundusühingu Rust Foundation egiidi all välja töötatud üldotstarbelise programmeerimiskeele Rust 1.69 väljalase. Keel keskendub mälu ohutusele ja pakub vahendeid töö kõrge paralleelsuse saavutamiseks, vältides samal ajal prügikoguja ja käitusaja kasutamist (käitusaeg lüheneb standardse teegi põhikäivitamise ja hoolduseni).

Rusti mälukäsitlusmeetodid säästavad arendajat osutitega manipuleerimisel esinevate vigade eest ja kaitsevad madala tasemega mälukäsitluse tõttu tekkivate probleemide eest, nagu mälualale juurdepääs pärast selle vabastamist, nullviidate viitamise tühistamine, puhvri ülekoormus jne. Teekide levitamiseks, järkude pakkumiseks ja sõltuvuste haldamiseks arendab projekt Cargo paketihaldurit. Hoidlat crates.io toetatakse teekide majutamiseks.

Mälu turvalisus on Rustis kompileerimise ajal tagatud viidete kontrollimise, objekti omandiõiguse jälgimise, objektide eluea (ulatuse) jälgimise ja mälule juurdepääsu õigsuse hindamise kaudu koodi täitmise ajal. Rooste pakub ka kaitset täisarvude ületäitumise eest, nõuab muutujate väärtuste kohustuslikku lähtestamist enne kasutamist, käsitleb standardteegi vigu paremini, rakendab vaikimisi muutumatute viidete ja muutujate kontseptsiooni, pakub tugevat staatilist tippimist loogiliste vigade minimeerimiseks.

Peamised uuendused:

  • Cargo paketihaldur rakendab automaatselt lahendatavate hoiatuste tuvastamist ja sobivate soovituste väljastamist “cargo fix” või “cargo clippy -fix” käitamiseks. hoiatus: kasutamata import: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | kasuta std::hash::Hash; | ^^^^^^^^^^^^^^^^ | = märkus: '#[warn(unused_imports)]' on vaikimisi sisse lülitatud: 'foo' (bin "foo") genereeris 1 hoiatuse (käivitage 'cargo fix —bin "foo"', et rakendada 1 soovitus)
  • Cargo on lisanud soovitusväljundi käsu "cargo add" kasutamiseks, kui proovite installida teeki käsuga "cargo install".
  • Kompileerimisaja vähendamiseks on silumisandmete lisamine ehitusskriptidesse vaikimisi peatatud. Kui ehitamisskriptid töötavad edukalt, ei too muudatus kaasa nähtavaid erinevusi, kuid tõrgete ilmnemisel sisaldab jälituse tõmmis vähem teavet. Cargo.tomli vana käitumise tagastamiseks peaksite lisama: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • API uus osa on viidud stabiilsete kategooriasse, sealhulgas on stabiliseeritud meetodid ja tunnuste rakendused:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • Funktsioonides kasutatakse atribuuti “const”, mis määrab võimaluse kasutada seda konstantide asemel mis tahes kontekstis:
    • SocketAddr::uus
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::uus
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::uus
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Lisati võimalus kasutada kompilaatori argumentides tõeseid ja valesid lippe.

Allikas: opennet.ru

Lisa kommentaar