Rust 1.35 Programming Language Release

nahitabo pagpagawas sa pinulongan sa sistema sa programming Taya 1.35, gimugna sa proyekto sa Mozilla. Ang lengguwahe nagtutok sa kaluwasan sa panumduman, naghatag ug awtomatik nga pagdumala sa panumduman, ug naghatag ug paagi aron makab-ot ang taas nga paralelismo sa buluhaton nga walay paggamit ug tigkolekta sa basura o runtime.

Ang awtomatik nga pagdumala sa memorya ni Rust nagpalingkawas sa developer gikan sa pagmaniobra sa pointer ug nanalipod batok sa mga problema nga naggikan sa ubos nga lebel sa pagmaniobra sa memorya, sama sa human-free nga memory access, null pointer dereferences, buffer overruns, ug uban pa. Usa ka manedyer sa pakete ang gipalambo aron sa pag-apod-apod sa mga librarya, pagsiguro sa asembliya ug pagdumala sa mga dependency sa proyekto. Cargo, nga nagtugot kanimo nga makuha ang mga librarya nga gikinahanglan alang sa programa sa usa ka pag-klik. Gisuportahan ang usa ka repository sa pag-host sa mga librarya crates.io.

nag-unang mga inobasyon:

  • Mga kinaiya FnOnce, FnMut и Fn gipatuman alang sa heap-allocated mga tipo sa kahon Box‹dyn FnOnce›, Box‹dyn FnMut› ug Box‹dyn Fn›;
  • Gidugang oportunidad pagsira sa dili luwas nga function pointer (dili luwas fn);
  • Gipatuman ang abilidad sa pagtawag sa macro nga "dbg!" walay mga argumento alang sa pagpakita sa ngalan sa file ug numero sa linya sa stderr nga walay pagsusi sa variable, nga sayon ​​​​alang sa pag-debug sa operasyon sa conditional expressions;
  • Gidugang nga pamaagi " sa floating point type f32 ug f64copysign» sa pagkopya sa karakter gikan sa usa ka numero ngadto sa lain;
  • Gidugang nga pamaagi "naglangkob", nga nagtugot kanimo sa pagsusi kung ang gitakda nga kantidad naa sa sulud;
  • Gidugang nga pamaagi Ref:Cell:map_split, nga nagtugot kanimo sa pagpamalandong ug pagbulag sa gihulam nga RefCell nga kantidad alang sa lainlaing mga sangkap sa hinulaman nga datos;
  • Gidugang nga pamaagi RefCell::ilisan_sa aron ilisan ang kasamtangan nga kantidad sa RefCell ug ibalik ang daan nga kantidad ingon nga resulta;
  • Gidugang nga pamaagi ptr::hash sa pag-hash sa usa ka pointer o reperensiya pinaagi sa usa ka adres kay sa gitumong nga bili;
  • Gidugang nga pamaagi Opsyon::gikopya sa pagkopya sa mga sulod sa Option‹&T› o Option‹&mut T› mga opsyon;
  • Usa ka bag-ong bahin sa mga API ang gibalhin sa stable nga kategorya, lakip ang mga pamaagi nga na-stabilize
    f32::copysign,
    f64::copysign,
    RefCell::ilisan_sa,
    RefCell::map_split,
    ptr::hash,
    Range::naglangkob,
    RangeFrom::contains,
    RangeTo::naglangkob,
    RangeInclusive::naglangkob,
    RangeToInclusive::naglangkob ug
    Opsyon::gikopya;

  • Gidugang nga drop_bounds check sa clippy (linter), nga ma-trigger kung magdugang usa ka "T: Drop" nga nagbugkos sa function;
  • Nagdugang ang compiler og suporta alang sa bag-ong target nga plataporma
    wasm32-unknown-wasi (interface WASI sa paggamit sa WebAssembly sa gawas sa browser);

  • Ang Rust toolkit gipahaom alang sa mga distribusyon base sa standard C library Musl.

Source: opennet.ru

Idugang sa usa ka comment