Vydanie programovacieho jazyka Rust 1.69

Bol vydaný univerzálny programovací jazyk Rust 1.69, založený projektom Mozilla, ale teraz vyvinutý pod záštitou nezávislej neziskovej organizácie Rust Foundation. Jazyk sa zameriava na bezpečnosť pamäte a poskytuje prostriedky na dosiahnutie vysokej paralelnosti úloh, pričom sa vyhýba používaniu zberača odpadu a runtime (beh je zredukovaný na základnú inicializáciu a údržbu štandardnej knižnice).

Metódy spracovania pamäte Rustu chránia vývojára pred chybami pri manipulácii s ukazovateľmi a chránia pred problémami, ktoré vznikajú v dôsledku nízkoúrovňového spracovania pamäte, ako je prístup k oblasti pamäte po jej uvoľnení, dereferencovanie nulových ukazovateľov, pretečenie vyrovnávacej pamäte atď. Na distribúciu knižníc, poskytovanie zostáv a správu závislostí projekt vyvíja správcu balíkov Cargo. Úložisko crates.io je podporované pre hosťovanie knižníc.

Bezpečnosť pamäte je v Rust zabezpečená v čase kompilácie prostredníctvom kontroly referencií, sledovania vlastníctva objektu, sledovania životnosti objektov (rozsahov) a hodnotenia správnosti prístupu do pamäte počas vykonávania kódu. Rust tiež poskytuje ochranu proti pretečeniu celých čísel, vyžaduje povinnú inicializáciu hodnôt premenných pred použitím, lepšie zvláda chyby v štandardnej knižnici, štandardne aplikuje koncept nemenných referencií a premenných, ponúka silné statické typovanie na minimalizáciu logických chýb.

Hlavné inovácie:

  • Správca balíkov Cargo implementuje detekciu varovaní, ktoré možno automaticky vyriešiť, a príslušné odporúčania na spustenie „oprava nákladu“ alebo „oprava nákladu“. varovanie: nepoužitý import: 'std::hash::Hash' --> src/main.rs:1:5 | 1 | použite std::hash::hash; | ^^^^^^^^^^^^^^^^ | = note: '#[warn(unused_imports)]' zapnuté ako predvolené varovanie: 'foo' (bin "foo") vygenerovalo 1 upozornenie (spustením 'cargo fix --bin "foo"' použite 1 návrh)
  • Added Cargo, ak chcete zobraziť odporúčanie použiť príkaz „cargo add“ pri pokuse o inštaláciu knižnice pomocou príkazu „cargo install“.
  • Aby sa skrátil čas kompilácie, informácie o ladení v skriptoch zostavy boli predvolene zakázané. Ak sa zostavovacie skripty spustia úspešne, zmena neprinesie žiadny viditeľný rozdiel, ale ak zlyhá, výpis spätného sledovania bude obsahovať menej informácií. Ak chcete vrátiť staré správanie do Cargo.toml, pridajte: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Nová časť API bola presunutá do kategórie stabilných, vrátane metód a implementácií vlastností boli stabilizované:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • Atribút „const“, ktorý určuje možnosť jeho použitia v akomkoľvek kontexte namiesto konštánt, sa používa vo funkciách:
    • SocketAddr::new
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::new
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::new
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Pridaná možnosť používať true a false flags v argumentoch kompilátora.

Zdroj: opennet.ru

Pridať komentár