Rust 1.69 Programming Language Release

Ang pagpagawas sa Rust 1.69 nga kinatibuk-ang katuyoan nga programming language, nga gitukod sa proyekto sa Mozilla, apan karon naugmad ubos sa pagdumala sa independenteng non-profit nga organisasyon nga Rust Foundation, gimantala. Ang lengguwahe nagtutok sa kaluwasan sa panumduman ug naghatag sa mga paagi aron makab-ot ang taas nga paralelismo sa trabaho samtang naglikay sa paggamit sa usa ka tigkolekta sa basura ug runtime (ang runtime gikunhoran ngadto sa batakang pagsugod ug pagmentinar sa standard library).

Ang mga pamaagi sa pagdumala sa panumduman sa Rust nagluwas sa developer gikan sa mga sayup sa pagmaniobra sa mga pointer ug pagpanalipod batok sa mga problema nga motumaw tungod sa ubos nga lebel sa pagdumala sa panumduman, sama sa pag-access sa usa ka lugar sa panumduman human kini mapagawas, pagtangtang sa mga null pointer, pag-overrun sa buffer, ug uban pa. Sa pag-apod-apod sa mga librarya, paghatag og mga pagtukod ug pagdumala sa mga dependency, ang proyekto nagpalambo sa Cargo package manager. Gisuportahan ang crates.io repository alang sa pag-host sa mga librarya.

Ang kaluwasan sa panumduman gihatag sa Rust sa oras sa pag-compile pinaagi sa pagsusi sa reference, pagsubay sa pagpanag-iya sa butang, pagsubay sa mga kinabuhi sa butang (scopes), ug pagtimbang-timbang sa pagkahusto sa pag-access sa memorya sa panahon sa pagpatuman sa code. Naghatag usab ang Rust og proteksyon batok sa pag-awas sa integer, nanginahanglan mandatory nga pagsugod sa mga variable nga kantidad sa wala pa gamiton, pagdumala sa mga sayup nga mas maayo sa standard nga librarya, gipadapat ang konsepto sa dili mausab nga mga pakisayran ug mga variable nga default, nagtanyag kusog nga static nga pag-type aron maminusan ang mga lohikal nga sayup.

Panguna nga mga inobasyon:

  • Ang tagdumala sa pakete sa Cargo nagpatuman sa pag-ila sa mga pasidaan nga mahimong awtomatik nga masulbad ug ang angay nga mga rekomendasyon sa pagpadagan sa "cargo fix" o "cargo clippy --fix". pasidaan: wala magamit nga import: 'std::hash::Hash' -> src/main.rs:1:5 | 1 | gamita ang std::hash::hash; | ^^^^^^^^^^^^^^^^^ | = note: '#[warn(unused_imports)]' on by default warning: 'foo' (bin "foo") nakamugna ug 1 warning (run 'cargo fix --bin "foo"' para magamit 1 suggestion)
  • Gidugang nga Cargo aron ipakita ang usa ka rekomendasyon nga gamiton ang "cargo add" nga komand sa pagsulay sa pag-install sa usa ka librarya nga adunay "cargo install" nga mando.
  • Aron makunhuran ang oras sa pag-compile, ang impormasyon sa pag-debug sa mga script sa paghimo gi-disable pinaagi sa default. Kung ang mga script sa pagtukod malampuson nga modagan, ang pagbag-o dili makahimo sa bisan unsang makita nga kalainan, apan kung kini mapakyas, ang backtrace dump adunay gamay nga kasayuran. Aron ibalik ang daan nga pamatasan sa Cargo.toml idugang: [profile.dev.build-override] debug = tinuod [profile.release.build-override] debug = tinuod
  • Usa ka bag-ong bahin sa API ang gibalhin sa kategorya nga stable, lakip ang mga pamaagi ug pagpatuman sa mga kinaiya nga na-stabilize:
    • CStr::gikan sa_bytes_until_nul
    • kinauyokan::ffi::FromBytesUntilNulError
  • Ang "const" nga hiyas, nga nagtino sa posibilidad sa paggamit niini sa bisan unsa nga konteksto imbes nga mga constant, gigamit sa mga gimbuhaton:
    • SocketAddr::bag-o
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::bag-o
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::bag-o
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Gidugang ang abilidad sa paggamit sa tinuod ug bakak nga mga bandila sa mga argumento sa compiler.

Source: opennet.ru

Idugang sa usa ka comment