Publikimi i gjuhës programuese Rust 1.43

botuar lëshimi i gjuhës programuese të sistemit Ndryshku 1.43, e themeluar nga projekti Mozilla. Gjuha fokusohet në sigurinë e kujtesës, siguron menaxhimin automatik të kujtesës dhe ofron mjete për arritjen e paralelizmit të lartë të detyrave pa përdorur një grumbullues mbeturinash dhe Runtime.

Menaxhimi automatik i kujtesës i Rust e çliron zhvilluesin nga manipulimi i treguesit dhe mbron nga problemet që lindin nga manipulimi i nivelit të ulët të kujtesës, të tilla si akseset e memories pa pagesë, çreferencat e treguesit null, tejkalimet e buferit dhe të ngjashme. Një menaxher paketash po zhvillohet për të shpërndarë bibliotekat, për të siguruar montimin dhe për të menaxhuar varësitë nga projekti. ngarkesë, duke ju lejuar të merrni bibliotekat e nevojshme për programin me një klik. Një depo mbështetet për të pritur bibliotekat arka.io.

Kryesore risitë:

  • Makrot ofrojnë aftësinë për të përdorur fragmente të elementeve për t'i kthyer ato në kod për tipare (trait), zbatime (impl) ose blloqe të jashtme. Për shembull:

    makro_rregullat! mac_trait {
    ($i:item) => {
    tipari T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Do të çojë në gjeneratë:

    tipari T {
    fn foo() {}
    }

  • Zbulimi i përmirësuar i tipit të primitivëve, referencave dhe operacioneve binare.
    Për shembull, kodi i mëposhtëm, i cili më parë shkaktoi një gabim, tani do të jetë në gjendje të përpilohet (Rust tani përcakton saktë se 0.0 dhe &0.0 duhet të jenë të tipit f32):

    le n: f32 = 0.0 + &0.0;

  • Një variabël i ri mjedisor CARGO_BIN_EXE_{name} është shtuar në Cargo, i cili vendoset gjatë ndërtimit të testeve të integrimit dhe ju lejon të përcaktoni shtegun e plotë drejt skedarit të ekzekutueshëm të përcaktuar në seksionin "[[bin]]" të paketës.
  • Nëse deklaratat lejohen të përdorin atribute të tilla si "#[cfg()]".
  • Biblioteka ofron mundësinë për të përdorur konstante të lidhura drejtpërdrejt për llojet e plota dhe fraksionale, pa importuar një modul. Për shembull, mund të shkruani menjëherë u32::MAX ose f32::NAN pa specifikuar më parë "use std::u32" dhe "use std::f32".
  • Moduli i ri u shtua primitiv, i cili rieksporton lloje primitive Rust, për shembull kur duhet të shkruani një makro dhe të siguroheni që llojet të mos fshihen.
  • Një pjesë e re e API-ve është transferuar në kategorinë e qëndrueshme, duke përfshirë të stabilizuar

    Pasi::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 dhe
    iter::njëherë_me.

Burimi: opennet.ru

Shto një koment