Rust 1.43 Programlingvo-Eldono

eldonita eldono de la sistemo de programlingvo Rusto 1.43, fondita de la projekto Mozilla. La lingvo temigas memorsekurecon, disponigas aŭtomatan memoradministradon, kaj disponigas ilojn por atingi altan taskan paralelecon sen uzado de rubkolektilo kaj rultempo.

La aŭtomata memoradministrado de Rust liberigas la ellaboranton de montrilo-manipulado kaj protektas kontraŭ problemoj ekestiĝantaj de malaltnivela memormanipulado, kiel ekzemple post-liberaj memoraliroj, nulaj montriloj dereferences, bufrotranspaso, kaj similaĵo. Pakaĵmanaĝero estas evoluigita por distribui bibliotekojn, certigi kunigon kaj administri dependecojn per la projekto. kargo, permesante al vi akiri la bibliotekojn necesajn por la programo per unu klako. Deponejo estas subtenata por gastigi bibliotekojn kestoj.io.

Ĉefa novigoj:

  • Makrooj disponigas la kapablon uzi fragmentojn de elementoj por igi ilin kodon por trajtoj (trajto), efektivigoj (impl) aŭ eksteraj blokoj. Ekzemple:

    makro_reguloj! mak_trajto {
    ($i:itemo) => {
    trajto T { $i }
    }
    }
    mac_trajto! {
    fn foo() {}
    }

    kondukos al generacio:

    trajto T {
    fn foo() {}
    }

  • Plibonigita tipdetekto de primitivuloj, referencoj kaj binaraj operacioj.
    Ekzemple, la sekva kodo, kiu antaŭe kaŭzis eraron, nun povos kompili (Rusto nun ĝuste determinas, ke 0.0 kaj &0.0 devas esti de tipo f32):

    estu n: f32 = 0.0 + &0.0;

  • Nova mediovariablo CARGO_BIN_EXE_{nomo} estis aldonita al Kargo, kiu estas agordita dum konstruado de integrigaj testoj kaj permesas vin determini la plenan vojon al la rulebla dosiero difinita en la sekcio "[[bin]]" de la pakaĵo.
  • Se deklaroj rajtas uzi atributojn kiel "#[cfg()]".
  • La biblioteko disponigas la kapablon uzi rilatajn konstantojn rekte por entjeraj kaj frakciaj tipoj, sen importado de modulo. Ekzemple, vi povas tuj skribi u32::MAX aŭ f32::NAN sen unue specifi "use std::u32" kaj "use std::f32".
  • Nova modulo aldonita komenca, kiu reeksportas Rust-primitivajn tipojn, ekzemple kiam vi bezonas skribi makroon kaj certigi, ke la tipoj ne estas kaŝitaj.
  • Nova parto de APIoj estis translokigita al la stabila kategorio, inkluzive de stabiligita

    Unufoje::estas_kompletigita,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 kaj
    iter::unufoje_kun.

fonto: opennet.ru

Aldoni komenton