Rust 1.69 Programlingvo-Eldono

La eldono de la ĝeneraluzebla programlingvo Rust 1.69, fondita de la projekto Mozilla, sed nun disvolvita sub la aŭspicioj de la sendependa neprofitcela organizaĵo Rust Foundation, estis publikigita. La lingvo temigas memorsekurecon kaj disponigas la rimedojn por atingi altan laborparalelecon evitante la uzon de rubkolektilo kaj rultempo (rultempo estas reduktita al baza inicialigo kaj prizorgado de la norma biblioteko).

La memormanipulaj metodoj de Rust savas la ellaboranton de eraroj dum manipulado de montriloj kaj protektas kontraŭ problemoj kiuj ekestas pro malaltnivela memortraktado, kiel ekzemple alirado de memorareo post kiam ĝi estis liberigita, dereferencing nulmontriloj, bufrotranspaso, ktp. Por distribui bibliotekojn, provizi konstruaĵojn kaj administri dependecojn, la projekto disvolvas la Cargo-pakaĵmanaĝeron. La deponejo crates.io estas subtenata por gastigado de bibliotekoj.

Memorsekureco estas disponigita en Rust ĉe kompiltempo tra referenckontrolado, konservante trakon de objektoposedo, konservante trakon de objektovivdaŭroj (kampoj), kaj taksante la ĝustecon de memoraliro dum kodekzekuto. Rusto ankaŭ provizas protekton kontraŭ entjeraj superfluoj, postulas devigan inicialigon de variaj valoroj antaŭ uzo, pli bone pritraktas erarojn en la norma biblioteko, aplikas la koncepton de neŝanĝeblaj referencoj kaj variabloj defaŭlte, ofertas fortan senmovan tajpadon por minimumigi logikajn erarojn.

Ĉefaj novigoj:

  • La Cargo-pakaĵmanaĝero efektivigas la detekton de avertoj kiuj povas esti aŭtomate solvitaj, kaj la eligo de taŭgaj rekomendoj por ruli "kargo-riparon" aŭ "kargo clippy -fix". averto: neuzata importo: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | uzu std::hash::Hash; | ^^^^^^^^^^^^^^^^| = noto: '#[warn(unused_imports)]' defaŭlte ŝaltita averto: 'foo' (bin "foo") generis 1 averton (run 'cargo fix —bin "foo"' por apliki 1 sugeston)
  • Cargo aldonis rekomendan eligon por uzi la komandon "kargo aldoni" kiam oni provas instali bibliotekon per la komando "kargo instali".
  • Por redukti la kompiltempon, la inkludo de sencimigaj informoj en konstruaj skriptoj estis ĉesigita defaŭlte. Se la konstruaj skriptoj funkcias sukcese, la ŝanĝo ne rezultos en ajnajn videblajn diferencojn, sed se okazas fiaskoj, la spura rubejo enhavos malpli da informoj. Por redoni la malnovan konduton al Cargo.toml vi devus aldoni: [profile.dev.build-override] debug = vera [profile.release.build-override] debug = vera
  • Nova parto de la API estis movita al la kategorio de stalo, inkluzive de la metodoj kaj efektivigoj de trajtoj estis stabiligitaj:
    • CStr::de_bajtoj_ĝis_nul
    • core::ffi::FromBytesUntilNulError
  • La atributo "const", kiu determinas la eblecon uzi ĝin en iu ajn kunteksto anstataŭ konstantoj, estas uzata en la funkcioj:
    • SocketAddr::nova
    • SocketAddr::ip
    • SocketAddr::porto
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::nova
    • SocketAddrV4::ip
    • SocketAddrV4::porto
    • SocketAddrV6::nova
    • SocketAddrV6::ip
    • SocketAddrV6::porto
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Aldonita la kapablo uzi verajn kaj malverajn flagojn en kompililargumentoj.

fonto: opennet.ru

Aldoni komenton