Rust 1.54 Programming Language Version

Yo te pibliye liberasyon langaj pwogramasyon sistèm Rust 1.54, ki te fonde pa pwojè Mozilla, men kounye a devlope anba ejid òganizasyon endepandan ki pa gen pwofi Rust Foundation. Lang la konsantre sou sekirite memwa, bay jesyon memwa otomatik, epi li bay mwayen pou reyalize paralèl travay segondè san yo pa itilize yon pèseptè fatra oswa ègzekutabl (se exécution redwi a inisyalizasyon debaz ak antretyen nan bibliyotèk la estanda).

Jesyon otomatik memwa Rust a elimine erè lè w ap manipile endikasyon ak pwoteje kont pwoblèm ki rive nan manipilasyon memwa ki ba, tankou aksè nan yon rejyon memwa apre li fin libere, dereferans pointeur nil, depase tanpon, elatriye. Pou distribye bibliyotèk, asire asanble ak jere depandans, pwojè a ap devlope manadjè pake kago. Repozitwa crates.io sipòte pou hosting bibliyotèk.

Prensipal inovasyon:

  • Te ajoute kapasite pou itilize makro ki sanble ak fonksyon andedan atribi yo (makro pwosedi ak makro ki te kreye lè l sèvi avèk "macro_rules!" Macro). Makro sa yo distenge ak fonksyon pa senbòl "!" apre non an (makro!(...)) ak ranplase tèks sous makro a olye pou yo jenere yon apèl fonksyon. Rele makro nan atribi yo ka itil pou enkli kontni ki soti nan lòt dosye nan dokimante kòmantè. Pa egzanp, pou mete sa ki nan fichye README a ak rezilta ekzekisyon script la, ou ka presize: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR) "), "/generated.rs" )] mod généré;
  • Yo te estabilize fonksyon konpilatè yo (Intrinsics) pou platfòm wasm32, sa ki pèmèt itilizasyon enstriksyon SIMD nan WebAssembly. Pifò fonksyon, tankou v128_bitselect, yo disponib nan mòd "safe", men kèk fonksyon ki travay ak endikasyon (pa egzanp, v128_load) rete "ensekirite".
  • Itilizasyon default nan konpilasyon incrémentielle te retounen, sa ki pèmèt ou rebati sèlman pati ki chanje nan kòd la, ki ka siyifikativman redwi tan li pran pou bati yon pwojè lè rekonpile apre yo fin fè ti chanjman. Konpilasyon enkreman te enfim nan lage 1.52.1 akòz pinèz kache ki parèt apre yo fin ajoute yon chèk adisyonèl pou chaje done ki soti nan kachèt disk la.
  • Yon nouvo pòsyon API yo te transfere nan kategori ki estab, ki gen ladan estabilize sa yo:
      BTreeMap::nan_keys
    • BTreeMap::nan_valè
    • HashMap::nan_keys
    • HashMap::into_values
    • vout::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • Opsyon yo te ajoute nan cargo-tree: "—prune " pou retire yon pake nan graf depandans la, "—depth" pou montre sèlman eleman nan yon nivo nidifikasyon bay nan pyebwa depandans la, "-edges no-proc- macro” pou kache depandans macros pwosedi yo.

Sous: opennet.ru

Add nouvo kòmantè