Vydanie programovacieho jazyka Rust 1.62

Bol vydaný univerzálny programovací jazyk Rust 1.62, 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“ ponúka príkaz „add“, ktorý vám umožňuje pridávať nové závislosti do manifestu Cargo.toml alebo meniť existujúce závislosti z príkazového riadku. Príkaz vám tiež umožňuje špecifikovať jednotlivé vlastnosti a verzie, napríklad: cargo add serde —vlastnosti odvodzujú cargo add nom@5
  • Pridaná možnosť používať „#[derive(Default)]“ s enumami, v ktorých je predvolená možnosť definovaná pomocou atribútu „#[default]“. #[derive(Default)] enum Možno { #[predvolené] Nič, niečo(T), }
  • Na platforme Linux sa používa kompaktnejšia a rýchlejšia implementácia synchronizačného mechanizmu Mutex, založená na použití futexov poskytovaných jadrom Linuxu. Na rozdiel od predtým používanej implementácie založenej na knižnici pthreads používa nová verzia na uloženie stavu Mutex iba 5 bajtov namiesto 40. Podobne sa do futexu preniesli uzamykacie mechanizmy Condvar a RwLock.
  • Bola implementovaná druhá úroveň podpory pre cieľovú platformu x86_64-unknown-none, navrhnutá na generovanie spustiteľných súborov, ktoré môžu fungovať bez operačného systému. Zadanú cieľovú platformu možno napríklad použiť pri písaní komponentov jadra. Druhá úroveň podpory zahŕňa záruku montáže.
  • Tretia úroveň podpory bola implementovaná pre platformy aarch64-pc-windows-gnullvm a x86_64-pc-windows-gnullvm. Tretia úroveň zahŕňa základnú podporu, ale bez automatického testovania, zverejňovania oficiálnych verzií alebo kontroly, či je možné kód zostaviť.
  • Nová časť API bola presunutá do kategórie stabilných, vrátane metód a implementácií vlastností boli stabilizované:
    • bool::tak_nejake
    • f32::total_cmp
    • f64::total_cmp
    • Stdin::lines
    • windows::CommandExt::raw_arg
    • impl predvolená hodnota pre AssertUnwindSafe
    • Od > pre Rc
    • Od > pre oblúk<[u8]>
    • FusedIterator pre EncodeWide

    Zdroj: opennet.ru

Pridať komentár