Rust 1.94 izlaidums. Eksperimentēšana ar Rust FreeBSD kodolā. Turso datubāze un VCAD Rust vidē.

Ir izlaista programmēšanas valoda Rust 1.94, ko izveidoja Mozilla projekts, bet tagad izstrādā neatkarīgā bezpeļņas organizācija Rust Foundation. Valoda koncentrējas uz atmiņas drošību un nodrošina rīkus uzdevumu izpildes augsta paralēlisma sasniegšanai, vienlaikus neizmantojot atkritumu savācēju un izpildlaiku (izpildlaiks ir samazināts līdz standarta bibliotēkas pamata inicializācijai un uzturēšanai).

Rust atmiņas pārvaldības metodes ir izstrādātas, lai novērstu kļūdas rādītāju manipulācijās un aizsargātu pret problēmām, kas rodas zema līmeņa atmiņas pārvaldības dēļ, piemēram, piekļuve atmiņai pēc tās atbrīvošanas, nulles rādītāju atsauču noņemšana, bufera pārpildīšana utt. Projekta ietvaros tiek izstrādāts Cargo pakotņu pārvaldnieks, lai izplatītu bibliotēkas, atvieglotu būvēšanu un pārvaldītu atkarības. Bibliotēku mitināšanai tiek uzturēts crates.io repozitorijs.

Atmiņas drošība tiek nodrošināta Rust kompilēšanas laikā, pārbaudot atsauces, sekojot līdzi objekta īpašumtiesībām, sekojot līdzi objektu kalpošanas laikam (tvērumam) un novērtējot atmiņas piekļuves pareizību koda izpildes laikā. Rūsa arī nodrošina aizsardzību pret veselu skaitļu pārpildīšanu, pieprasa obligātu mainīgo vērtību inicializāciju pirms lietošanas, labāk apstrādā kļūdas standarta bibliotēkā, pēc noklusējuma piemēro nemainīgu atsauču un mainīgo jēdzienu, piedāvā spēcīgu statisko rakstīšanu, lai samazinātu loģiskās kļūdas.

Galvenie jauninājumi:

  • Šķēļu tipam tagad ir metode array_windows. Šī metode izveido iteratoru šķeļu šķērsošanai fiksēta izmēra logos, kas vienlaikus virzās uz priekšu pa vienam elementam. Atšķirībā no iepriekš pieejamās Windows metodes, array_windows darbojas ar nemainīgu loga izmēru un katrai iterācijai atgriež atsauci uz fiksēta izmēra masīvu (&[T; N]), nevis uz nenoteikta izmēra šķēli (&[T]). Tā kā masīva izmērs sākotnēji ir zināms kompilatoram, veiktspēju var uzlabot, izvairoties no robežu pārbaudes katrā iterācijas posmā. 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());
  • Cargo pakotņu pārvaldnieka konfigurācijas faili (.cargo/config.toml) ievieš direktīvu "include", kas ļauj ievietot citu failu saturu. include = [ "frodo.toml", "samwise.toml", ] include = [ { path = "required.toml" }, { path = "optional.toml", optional = true }, ]
  • Manifesta un konfigurācijas failiem ir pievienots atbalsts jaunajai TOML 1.1 iezīmēšanas valodas versijai. Šī jaunā versija pievieno atbalstu daudzrindu iegultām tabulām, "\xHH" atsoļa secībai heksadecimālo baitu attēlojumu ievietošanai un "\e" atsoļa secībai "\u001B". Ir atbalstīta arī iespēja atstāt komatu pēdējā elementa beigās un izlaist sekundes laika vērtībās. serde = { version = "1.0", features = ["derive"] } tagad var aizstāt ar serde = { version = "1.0", features = ["derive"], }
  • Jauna API daļa ir pārvietota uz stabilo kategoriju, tostarp ir stabilizētas pazīmju metodes un ieviešanas:
    • <[T]>::array_windows
    • <[T]>::elementa_nobīde
    • LazyCell::get
    • LazyCell::get_mut
    • LazyCell::force_mut
    • LazyLock::get
    • LazyLock::get_mut
    • LazyLock::force_mut
    • impl Izmēģiniet no lietošanai
    • std::iter::Peekable::next_if_map
    • std::iter::Peekable::next_if_map_mut
    • x86 avx512fp16 instrukciju būtība
    • AArch64 NEON fp16 instrukciju būtība
    • f32::consts::EULER_GAMMA
    • f64::consts::EULER_GAMMA
    • f32::consts::ZELTA_ATTIECĪBA
    • f64::consts::ZELTA_ATTIECĪBA
  • Zīme “const” tiek izmantota funkcijās:
    • f32::mul_add
    • f64::mul_add
  • Platforma riscv64im-unknown-none-elf ir pārvietota uz 3. atbalsta līmeni. 3. atbalsta līmenis ietver pamata atbalstu, bet neietver automatizētu testēšanu, oficiālas versiju izlaidumus vai versiju verifikāciju.

Turklāt mēs vēlētos izcelt nesen paziņotos projektus un notikumus, kas saistīti ar Rust:

  • Airtons Munjozs, kurš ieviesa atbalstu Sony PlayStation 1 platformai Rust kompilatorā un pārnesa FreeBSD uz datoriem ar Apple Silicon mikroshēmām, ir ieviesis iespēju rakstīt kodola komponentus un ierīču draiverus Rust valodā FreeBSD vajadzībām. Testēšanai ir nodrošināts KPI (kodola programmēšanas saskarnes) saistījumu komplekts, kas ļauj izmantot Rust kodu FreeBSD kodolā, kā arī virtio skaņas draiveris (virtio_snd), DockChannel HID draiveris M2 MacBook tastatūrai un vairāki zema līmeņa draiveri Mac datoru apakšsistēmām Apple Silicon mikroshēmās, kas visi ir izveidoti, izmantojot šīs saistīšanas.

    Darbs pie Rust saistījumiem turpinās kopš 2024. gada beigām. Pašlaik saistījumi ievieš tikai daļu no C-KPI un tiek uzskatīti par nestabiliem, taču laika gaitā ir plānots uzlabot to stabilitāti, lai tā atbilstu līdzīgas C valodas saskarnes stabilitātei. Kā piemērs piedāvātais virtio_snd draiveris ir piemērots mūzikas atskaņošanai QEMU. Paredzams, ka līdz 2026. gadam Rust saistījumi būs pietiekami stabili, lai ieinteresētie izstrādātāji varētu sākt tos izmantot koda rakstīšanai.

  • NetBSD izstrādātājs Benijs Zīgerts piedāvāja pamatojumu, kāpēc Rust atbalsts neparādīsies NetBSD kodolā: NetBSD atbalsta arhitektūras, kurām Rust nav pieejams; esošās Rust rīku ķēdes uzturēšana pkgsrc ir ievērojams darbs, un to atbalsta tikai daži izstrādātāji; kodola atbalsts Rust prasa, lai Rust kompilators būtu iekļauts bāzes sistēmā; Rust palaišana NetBSD izmanto mantotu bināro pakotni, kas nav pieņemama autonomiem izplatījumiem, kas tiek izplatīti kā pirmkods; Rust izlaišanas cikli nav saderīgi ar NetBSD izstrādes un atbalsta cikliem mantotajām atzarām (piemēram, NetBSD 9, kas izlaista 2020. gadā, joprojām tiek atbalstīta, kas prasītu sešus gadus veca Rust kompilatora piegādi un atbalstu).
  • Опубликован выпуск встраиваемой в приложения СУБД Turso 0.5, написанной на языке Rust и совместимой с SQLite на уровне диалекта SQL, формата файлов БД и C API. Из расширенных возможностей отмечается механизм CDC (Change data capture) для отслеживания изменения БД в реальном времени, использование io_uring для асинхронного ввода/вывода в Linux, поддержка векторного поиска, наличие выражения ALTER для изменения схемы БД, возможность шифрования данных в БД, режим инкрементальных вычислений, конструкция «BEGIN CONCURRENT».
  • Projekts, kas nodrošina Rust standarta bibliotēkas izmantošanu GPU puses programmās.
  • Emuko — эмулятор RISC-V, написанный на Rust, способный загружать Linux, поддерживающий JIT-компиляцию, способный сохранять и восстанавливать снапшоты состояния.
  • RustConn (flatpak) ir grafiska saskarne ārējo tīkla savienojumu ar citiem resursdatoriem pārvaldībai, kas atbalsta SSH, RDP, VNC, SPICE, Telnet, seriālos protokolus, Kubernetes, Zero Trust un SFTP. Kods ir rakstīts Rust valodā, izmantojot GTK4 un Wayland.
  • Ir izlaista jauna zlib-rs 0.6 projekta atzara versija, kas iezīmē to kā pirmo stabilo versiju, kas ir pilnībā saderīga ar zlib C API un piemērota caurspīdīgai zlib aizstāšanai. Projekta mērķis ir izveidot drošu alternatīvu zlib datu saspiešanas bibliotēkai. Izstrāde tiek veikta, paturot prātā zlib-ng projektu, kas izstrādā augstas veiktspējas zlib variantu.
  • VCAD projekts ir parametriskas datorizētas projektēšanas (CAD) sistēmas izstrāde, kas rakstīta Rust valodā un integrēta ar mākslīgā intelekta aģentiem, izmantojot MCP protokolu. Tā atbalsta 3D modelēšanu, simulāciju, 2D skicēšanu, komponentu montāžu, STEP importēšanu un STL/GLB/STEP/DXF eksportēšanu.
  • Ir publicēta runas atpazīšanas sistēma, kas rakstīta Rust valodā un izmanto Mistral Voxtral Mini 4B Realtime AI modeli un Burn mašīnmācīšanās ietvaru. Projekts koncentrējas uz runas atpazīšanu tiešraides transkripcijas laikā.
  • Ir izlaists c2rust 0.22 rīkkopa. Tā ir paredzēta C koda (C99) tulkošanai nedrošā Rust attēlojumā, kas pēc struktūras ir līdzīgs sākotnējam C kodam. Iegūto darba ietvaru var izmantot pakāpeniskai migrācijai uz idiomatisku Rust un nedrošu bloku noņemšanai.

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster