Rust 1.94 on välja antud. Katsetused Rustiga FreeBSD tuumas. Andmebaas Turso ja CAD-süsteem vcad Rustis.

Avaldatud Rust 1.94 programmeerimiskeel, mille arendust alustas Mozilla, kuid mida praegu arendab sõltumatu mittetulundusühing Rust Foundation. Keel keskendub mälu ohutule käsitlemisele ja pakub vahendeid kõrge paralleelsuse saavutamiseks ülesannete täitmisel, ilma et oleks vaja prügikogujat ja runtime'i (runtime sisaldab vaid algset initsialiseerimist ja standardraamatukogu hooldamist).

Rust'i mälu töötlemise meetodid on suunatud pointerite manipuleerimise vigade vältimisele ja probleemide kaitsmisele, mis tulenevad madala taseme mälu töötlemisest, nagu juurdepääs vabastatud mälupiirkondadele, nullpointerite de-referentseerimine, mälupuhvri ületamine jne. Raamatukogude levitamiseks, ehituste tagamiseks ja sõltuvuste haldamiseks arendatakse pakihaldurit Cargo. Raamatukogude majutamiseks toetatakse repotites crates.io.

Mäluhügieen Rust'is tagatakse kompileerimise ajal viidete kontrollimise, objektide omandi jälgimise, objektide eluaja (vaateala) arvestamise ja mälule juurdepääsu korrektuse hindamise kaudu koodi täitmise ajal. Rust pakub ka vahendeid täisarvude ülevoolude vältimiseks, nõuab muutujate väärtuste kohustuslikku initsialiseerimist enne kasutamist, käsitleb vigu paremini standardraamatukogus, rakendab muutumatuse (immutable) mõistet viidete ja muutujate jaoks vaikimisi ning pakub tugevat staatilist tüüpimist loogiliste vigade vähendamiseks.

Peamised uuendused:

  • Tüübile slice on lisatud meetod array_windows, mis loob iteraatori, et liikuda läbi lõikude "akendena" fikseeritud suurusega, millest igaüht liigutatakse ühe elemendi kaupa. Erinevalt varasemalt saadaval olnud meetodist windows, opereerib meetod array_windows konstantse akna suurusega ja tagastab igas iteratsioonis viite fikseeritud suurusega massiivile (&[T; N]) asemel määramata suurusega lõigule (&[T]). Kuna massiivi suurus on kompilaatori poolt algselt teada, saab jõudluse tõstmiseks piiride kontrollist loobuda igal iteratsiooni etapil. 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());
  • Pakihalduri Cargo konfiguratsioonifailides (.cargo/config.toml) on sisse viidud direktiiv "include", mis võimaldab kohapeal teiste failide sisu sisestada. include = [ "frodo.toml", "samwise.toml", ] include = [ { path = "required.toml" }, { path = "optional.toml", optional = true }, ]
  • Manifesti ja konfiguratsioonifailidesse on lisatud uus TOML 1.1 märgistuskeele versioon, kus on lisatud tugi mitmerealine embedded tabelite, escape-järjestuste "\xHH" kasutamiseks baitide kuuekümnendas vormis ja "\e" jahimehe asendamiseks "\u001B" ning võimalus jätta koma viimase elemendi lõppu ja jätta välja sekundite määramine ajaväärtustes. serde = { version = "1.0", features = ["derive"] } nüüd saab asendada serde = { version = "1.0", features = ["derive"], };
  • Uus hulk API-d on viidud stabiilsuse tasemele, sealhulgas on stabiliseeritud meetodid ja tüübispetsiifikatsioonide rakendused:
    • ::array_windows
    • ::element_offset
    • LazyCell::get
    • LazyCell::get_mut
    • LazyCell::force_mut
    • LazyLock::get
    • LazyLock::get_mut
    • LazyLock::force_mut
    • impl TryFrom for usize
    • std::iter::Peekable::next_if_map
    • std::iter::Peekable::next_if_map_mut
    • Kaasas olevad funktsioonid x86-juhtkäskude avx512fp16 jaoks
    • Kaasas olevad funktsioonid AArch64-juhtkäskude NEON fp16 jaoks
    • f32::consts::EULER_GAMMA
    • f64::consts::EULER_GAMMA
    • f32::consts::GOLDEN_RATIO
    • f64::consts::GOLDEN_RATIO
  • Märgis „const“ on rakendatud funktsioonides:
    • f32::mul_add
    • f64::mul_add
  • Riscv64im-unknown-none-elf platvorm on tõlgitud kolmandasse toetustaseme. Kolmas tase katab põhitugi, kuid ilma automatiseeritud testimise, ametlike kogude avaldamise ja koodi kompileerimise kontrollimiseta.

Lisaks võib mainida hiljuti kuulutatud projekte ja sündmusi, mis on seotud Rustiga:

  • Ayrton Muñoz, kes kunagi realiseeris Sony PlayStation 1 platvormi toe Rust kompilaatoris ja portis FreeBSD Apple Siliconi kiipidega arvutitele, on rakendanud FreeBSD-s võimalust luua kerneli komponente ja seadme draivereid Rust keeles. Testimiseks on pakutud KPI-ümbriseid (Kernel Programming Interface), mis võimaldavad kasutada Rust koodi FreeBSD tuumas, samuti loodud nende kasutamisega helidraiver virtio (virtio_snd), HID-draiver DockChannel M2 MacBooki klaviatuuri jaoks ning mitmed madala taseme draiverid Mac arvutite alamsüsteemidele Apple Siliconi kiipidel.

    Tööd Rust-ümbriste kallal on olnud käimas alates 2024. aasta lõpust. Ümbristes on praegu rakendatud vaid osa C-KPI-st ja need on positsioneeritud kui ebastabiilsed, kuid ajaga kavatsetakse stabiilsus viia sarnasele tasemele C keele liidesega. Näidisena pakutud virtio_snd draiver sobib muusika taasesitamiseks QEMU-s. Eeldatakse, et 2026. aastaks stabiliseeruvad Rust-ümbrised piisavalt, et huvitatud arendajad saaksid alustada nende kasutamist koodi kirjutamiseks.

  • Benny Siegert, kes osaleb NetBSD arendamisel, püüdis selgitada, miks Rust keele tugi ei ilmu NetBSD tuuma: NetBSD toetab arhitektuure, mille jaoks Rust ei ole saadaval; olemasoleva pkgsrc Rust tööriistaku säilitamine nõuab suuri pingutusi ning on sellega seotud vaid väheste arendajatega; Rust toe lisamine tuuma nõuab Rust kompilaatori lisamist põhissüsteemi; Rusti bootstrapping NetBSD-s kasutab vanemat binaarpakett, mis on aktsepteerimatu isesaadaval allika koodi jaotustes; Rusti väljaannete tsüklid ei ühildu NetBSD arendustsükli ja varasemate harude toetusega (näiteks jätkub NetBSD 9 haru, mis ilmus 2020. aastal, toetamine, nii et selles olukorras oleks vajalik kuue aasta vanuse Rust kompilaatori pakkumine ja toetamine).
  • Avaldati rakendustesse integreeritav andmebaas Turso 0.5, mis on kirjutatud Rust'i keeles ja ühilduv SQLi dialektide, andmebaasi failivormingute ja C API-ga. Uute võimaluste seas on CDC (Change data capture) mehhanism, et reaalajas jälgida andmebaasi muutusi, io_uring'i kasutamine asünkroonse sisendi/sisendi jaoks Linuxis, vektorlseekuse tugi, ALTER lause olemasolu andmebaasi skeemi muutmiseks, andmete krüpteerimise võimalus, inkrementaalsete arvutuste režiim, konstruktsioon "BEGIN CONCURRENT".
  • Projekt, mis võimaldab kasutada Rust'i standardkogu GPU-poolsetes programmides.
  • Emuko — RISC-V emulaator, mis on kirjutatud Rust'is, suudab laadida Linuxi, toetab JIT-kompileerimist ning suudab salvestada ja taastada olekusnapshot'e.
  • RustConn (flatpak) — graafiline liides väliste võrguühenduste haldamiseks teiste hostide juurde, toetades SSH, RDP, VNC, SPICE, Telnet, Serial, Kubernetes, Zero Trust ja SFTP. Kood on kirjutatud Rust'is kasutades GTK4 ja Wayland'i.
  • Esitatud on uus versioon zlib-rs 0.6 projektist, mis on tähistatud kui esimene stabiilne versioon, täielikult ühilduv zlib C API ja sobib zlib'i läbipaistvaks asendamiseks. Projekt on suunatud erineva kaitsega andmesuru tööriista loomiseks, mille arendamisel arvestatakse zlib-ng projekti, mis arendab kõrge jõudlusega zlib varianti.
  • Esitatud projekt vcad, mis arendab parameetrilist automatiseeritud projekteerimissüsteemi (CAD), mis on kirjutatud Rust'is ja integreeritav AI-agendiga MCP protokolli kaudu. Toetatakse 3D-modelleerimist, simulatsiooni, 2D-skeemide töötlemist, komponentide koostamist, STEP vormingus importimist ja STL/GLB/STEP/DXF vormingutes eksportimist.
  • Avaldatud on kõnetuvastussüsteem, mis on kirjutatud Rust'is ja kasutab AI mudelit Mistral Voxtral Mini 4B Realtime ja masinõppe raamistikku Burn. Projekt on suunatud kõne reaalajas tuvastamisele voogedastuse transkribeerimise loomiseks.
  • Ilmus tööriistakomplekt c2rust 0.22, mis on mõeldud C-koodi (C99) üleviimiseks Rust'i unsafe-esitlusse, mis on struktuurilt lähedane algsele C-koodile. Saadud töövormi saab hiljem kasutada järkjärguliseks viimiseks idiomaatilisse Rust'i ja unsafe-blokkide eemaldamiseks.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster