Rust 1.54 Programming Language Release

Ang pagpagawas sa sistema sa programming language nga Rust 1.54, 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, naghatag ug awtomatik nga pagdumala sa panumduman, ug naghatag ug mga paagi aron makab-ot ang taas nga paralelismo sa buluhaton nga walay paggamit ug tigkolekta sa basura o runtime (ang runtime gikunhoran ngadto sa batakang pagsugod ug pagmentinar sa standard library).

Ang awtomatik nga pagdumala sa panumduman sa Rust nagluwas sa developer gikan sa mga sayup kung nagmaniobra sa mga pointer ug nanalipod batok sa mga problema nga motumaw tungod sa ubos nga lebel sa pagmaniobra sa panumduman, sama sa pag-access sa usa ka lugar sa panumduman pagkahuman na-freeze, 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.

Panguna nga mga inobasyon:

  • Gidugang ang abilidad sa paggamit sa mga macro nga sama sa function sa sulod sa mga attribute (procedural macros ug macros nga gihimo gamit ang "macro_rules!" macro). Ang ingon nga mga macro gipalahi gikan sa mga gimbuhaton pinaagi sa simbolo nga "!" human sa ngalan (macro!(...)) ug ilisan ang macro source text imbes nga maghimo ug function call. Ang pagtawag sa mga macro sulod sa mga hiyas mahimong mapuslanon alang sa paglakip sa sulod gikan sa ubang mga file sa pagdokumento sa mga komentaryo. Pananglitan, aron isulod ang sulod sa README file ug ang resulta sa script execution, mahimo nimong itakda ang: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR "), "/generated.rs" )] gimugna sa mod;
  • Ang built-in nga mga function sa compiler (Intrinsics) para sa wasm32 nga plataporma napalig-on, nga nagtugot sa paggamit sa mga instruksyon sa SIMD sa WebAssembly. Kadaghanan sa mga function, sama sa v128_bitselect, anaa sa "safe" mode, apan pipila ka mga function nga nagtrabaho uban sa mga pointer (pananglitan, v128_load) nagpabilin nga "dili luwas".
  • Ang default nga paggamit sa incremental compilation mibalik, nga nagtugot kanimo sa pagtukod pag-usab sa giusab nga mga bahin lamang sa code, nga makapakunhod pag-ayo sa oras nga gikinahanglan sa pagtukod og proyekto sa dihang mag-recompile human sa paghimo og ginagmay nga mga kausaban. Ang incremental nga kompilasyon gi-disable sa pagpagawas sa 1.52.1 tungod sa mga tinago nga mga bug nga mitumaw human sa pagdugang og dugang nga tseke alang sa loading data gikan sa disk cache.
  • Usa ka bag-ong bahin sa mga API ang gibalhin sa stable nga kategorya, lakip ang mga musunod nga gipalig-on:
      BtreeMap::into_keys
    • BtreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • arko::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque:: binary_search_by_key
    • VecDeque::partition_point
  • Gidugang nga mga kapilian sa cargo-tree: β€œβ€”prune " sa pagtangtang sa usa ka pakete gikan sa dependency graph, "-depth" aron ipakita lamang ang mga elemento sa gihatag nga nesting level sa dependency tree, "-edges no-proc-macro" aron itago ang procedural macro dependencies.

Source: opennet.ru

Idugang sa usa ka comment