Vydanie Rust 1.94. Experimentovanie s Rustom v jadre FreeBSD. Databáza Turso a VCAD v Ruste

Programovací jazyk Rust 1.94, založený projektom Mozilla, ale teraz vyvíjaný pod záštitou nezávislej neziskovej organizácie Rust Foundation, bol vydaný. Jazyk sa zameriava na bezpečnosť pamäte a poskytuje nástroje na dosiahnutie vysokého paralelizmu vykonávania úloh, pričom sa zaobíde bez použitia garbage collectoru a runtime prostredia (runtime prostredie je redukované na základnú inicializáciu a údržbu štandardnej knižnice).

Metódy správy pamäte v Ruste sú navrhnuté tak, aby eliminovali chyby pri manipulácii s ukazovateľmi a chránili pred problémami vyplývajúcimi z nízkoúrovňovej správy pamäte, ako je prístup k pamäti po jej uvoľnení, dereferencovanie nulových ukazovateľov, preplnenie vyrovnávacej pamäte atď. Projekt vyvíja správcu balíčkov Cargo na distribúciu knižníc, uľahčenie zostavovania a správu závislostí. Na hosťovanie knižníc sa udržiava repozitár crates.io.

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:

  • Typ slice má teraz metódu array_windows. Táto metóda vytvára iterátor na prechádzanie cez slice v oknách s pevnou veľkosťou, ktoré sa posúvajú o jeden prvok naraz. Na rozdiel od predtým dostupnej metódy windows, array_windows pracuje s konštantnou veľkosťou okna a vracia odkaz na pole s pevnou veľkosťou (&[T; N]) namiesto slice s nedefinovanou veľkosťou (&[T]) pre každú iteráciu. Keďže veľkosť poľa je kompilátoru spočiatku známa, výkon je možné zlepšiť vyhnutím sa kontrole hraníc v každej iteračnej fáze. let slice = [0, 1, 2, 3]; let mut iter = slice.array_windows(); assert_eq!(iter.next().unwrap(), &[0, 1]); assert_eq!(iter.next().unwrap(), &[1, 2]); assert_eq!(iter.next().unwrap(), &[2, 3]); assert!(iter.next().is_none());
  • Konfiguračné súbory správcu balíkov Cargo (.cargo/config.toml) implementujú direktívu „include“, ktorá umožňuje vkladať obsah iných súborov na miesto. include = [ "frodo.toml", "samwise.toml", ] include = [ { path = "required.toml" }, { path = "optional.toml", optional = true }, ]
  • Do manifestu a konfiguračných súborov bola pridaná podpora pre novú verziu značkovacieho jazyka TOML 1.1. Táto nová verzia pridáva podporu pre viacriadkové vložené tabuľky, escape sekvenciu „\xHH“ na vkladanie hexadecimálnych bajtových reprezentácií a escape sekvenciu „\e“ pre „\u001B“ spolu s možnosťou ponechať koncovú čiarku na konci posledného prvku a vynechať sekundy v časových hodnotách. serde = { version = "1.0", features = ["derive"] } je teraz možné nahradiť za serde = { version = "1.0", features = ["derive"], }
  • Nová časť API bola presunutá do kategórie stabilných, vrátane metód a implementácií vlastností boli stabilizované:
    • <[T]>::array_windows
    • <[T]>::posun_elementu
    • LazyCell::get
    • LazyCell::get_mut
    • LazyCell::force_mut
    • LazyLock::get
    • LazyLock::get_mut
    • LazyLock::force_mut
    • imp TryFrom na použitie
    • std::iter::Peekable::next_if_map
    • std::iter::Peekable::next_if_map_mut
    • Vnútorné prvky pre inštrukcie x86 avx512fp16
    • Vnútorné prvky pre inštrukcie AArch64 NEON fp16
    • f32::consts::EULER_GAMMA
    • f64::consts::EULER_GAMMA
    • f32::consts::ZLATÝ_POMER
    • f64::consts::ZLATÝ_POMER
  • Znak „const“ sa používa vo funkciách:
    • f32::mul_add
    • f64::mul_add
  • Platforma riscv64im-unknown-none-elf bola presunutá na úroveň podpory 3. Úroveň podpory 3 zahŕňa základnú podporu, ale nezahŕňa automatizované testovanie, oficiálne vydania zostavení ani overovanie zostavení.

Okrem toho by sme chceli zdôrazniť nedávno ohlásené projekty a udalosti súvisiace s Rustom:

  • Ayrton Muñoz, ktorý implementoval podporu pre platformu Sony PlayStation 1 v kompilátore Rust a portoval FreeBSD na počítače s čipmi Apple Silicon, implementoval možnosť písať komponenty jadra a ovládače zariadení v Ruste pre FreeBSD. Na testovanie bola poskytnutá sada väzieb KPI (Kernel Programming Interface) umožňujúcich používanie kódu Rust v jadre FreeBSD, spolu so zvukovým ovládačom Virtio (virtio_snd), ovládačom DockChannel HID pre klávesnicu M2 MacBook a niekoľkými nízkoúrovňovými ovládačmi pre podsystémy počítačov Mac na čipoch Apple Silicon, pričom všetky boli vytvorené pomocou týchto väzieb.

    Práce na väzbách Rust prebiehajú od konca roka 2024. V súčasnosti väzby implementujú iba časť C-KPI a považujú sa za nestabilné, ale časom sa plánuje zlepšiť ich stabilitu tak, aby sa vyrovnala stabilite podobného rozhrania pre jazyk C. Ovládač virtio_snd, navrhnutý ako príklad, je vhodný na prehrávanie hudby v QEMU. Očakáva sa, že do roku 2026 budú väzby Rust dostatočne stabilné na to, aby ich zainteresovaní vývojári mohli začať používať na písanie kódu.

  • Vývojár NetBSD Benny Siegert ponúkol zdôvodnenie, prečo sa podpora Rustu neobjaví v jadre NetBSD: NetBSD podporuje architektúry, pre ktoré Rust nie je k dispozícii; udržiavanie existujúceho balíka nástrojov Rust v pkgsrc je značné úsilie a podporuje ho len niekoľko vývojárov; podpora jadra pre Rust vyžaduje, aby bol kompilátor Rust zahrnutý v základnom systéme; bootstrapping Rustu na NetBSD používa starší binárny balík, čo je neprijateľné pre samostatné distribúcie distribuované ako zdrojový kód; cykly vydávania Rustu sú nekompatibilné s cyklami vývoja a podpory NetBSD pre staršie vetvy (napríklad NetBSD 9, vydaný v roku 2020, je naďalej podporovaný, čo by si vyžadovalo dodávanie a podporu šesťročného kompilátora Rust).
  • Bola vydaná verzia Turso 0.5, vstavaná databázová platforma napísaná v jazyku Rust a kompatibilná so systémom SQLite na úrovni dialektu SQL, formátu databázového súboru a rozhrania C API. Medzi vylepšené funkcie patrí mechanizmus CDC (Change Data Capture) na sledovanie zmien v databáze v reálnom čase a použitie io_uring pre asynchrónne I/O operácie. Linux, podpora vektorového vyhľadávania, prítomnosť príkazu ALTER na zmenu schémy databázy, možnosť šifrovania údajov v databáze, režim inkrementálneho výpočtu, konštrukt „BEGIN CONCURRENT“.
  • Projekt, ktorý umožní použitie štandardnej knižnice Rust v programoch na strane GPU.
  • Emuko je emulátor RISC-V napísaný v Ruste, schopný načítavať Linux, s podporou JIT kompilácie a schopnosťou ukladať a obnovovať snímky stavu.
  • RustConn (flatpak) je grafické rozhranie na správu externých sieťových pripojení k iným hostiteľom, ktoré podporuje SSH, RDP, VNC, SPICE, Telnet, Serial, Kubernetes, Zero Trust a SFTP. Kód je napísaný v Ruste s použitím GTK4 a Waylandu.
  • Bola vydaná nová vetva projektu zlib-rs 0.6, ktorá je označená ako prvá stabilná verzia plne kompatibilná s rozhraním zlib C API a vhodná ako transparentná náhrada za zlib. Cieľom projektu je vytvoriť bezpečnú alternatívu ku knižnici na kompresiu dát zlib. Vývoj sa zameriava na projekt zlib-ng, ktorý vyvíja vysoko výkonný variant zlib.
  • Projekt VCAD je vývoj parametrického systému počítačom podporovaného návrhu (CAD) napísaného v jazyku Rust a integrovaného s agentmi umelej inteligencie pomocou protokolu MCP. Podporuje 3D modelovanie, simuláciu, 2D skicovanie, montáž komponentov, import STEP a export STL/GLB/STEP/DXF.
  • Bol publikovaný systém rozpoznávania reči napísaný v jazyku Rust, ktorý využíva model umelej inteligencie Mistral Voxtral Mini 4B Realtime AI a framework strojového učenia Burn. Projekt sa zameriava na rozpoznávanie reči za chodu pre transkripciu živého vysielania.
  • Bola vydaná sada nástrojov c2rust 0.22. Je určená na preklad kódu C (C99) do nebezpečnej reprezentácie jazyka Rust, ktorá má podobnú štruktúru ako pôvodný kód C. Výsledný pracovný rámec možno použiť na postupnú migráciu na idiomatický jazyk Rust a odstránenie nebezpečných blokov.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster