Versione Rust 1.94. Sperimentazione cù Rust in u Kernel FreeBSD. Base di dati Turso è VCAD in Rust

U linguaghju di prugrammazione Rust 1.94, fundatu da u prugettu Mozilla ma avà sviluppatu sottu l'auspici di a Fundazione Rust, un'urganizazione senza scopu di lucro, hè statu publicatu. U linguaghju si cuncentra nantu à a sicurità di a memoria è furnisce strumenti per ottene un altu parallelisimu di l'esecuzione di i compiti, pur evitendu l'usu di un garbage collector è di un runtime (u runtime hè riduttu à l'inizializazione basica è a manutenzione di a biblioteca standard).

I metudi di gestione di a memoria di Rust sò cuncipiti per eliminà l'errori in a manipulazione di i puntatori è prutegge contr'à i prublemi derivanti da a gestione di a memoria di bassu livellu, cum'è l'accessu à a memoria dopu ch'ella hè stata liberata, u dereferenziamentu di i puntatori nulli, i sovraccarichi di u buffer, ecc. U prugettu sviluppa u gestore di pacchetti Cargo per distribuisce e biblioteche, facilità e compilazioni è gestisce e dipendenze. U repositoriu crates.io hè mantinutu per l'ospitu di e biblioteche.

A sicurezza di a memoria hè furnita in Rust à u tempu di compilazione attraversu a verificazione di riferimentu, u seguimentu di a pruprietà di l'ughjettu, a traccia di a vita di l'ughjettu (scopi), è a valutazione di a correttezza di l'accessu di memoria durante l'esekzione di codice. Rust furnisce ancu prutezzione contra i overflows integer, esige l'inizializazione obligatoria di i valori variabili prima di l'usu, gestisce l'errori megliu in a biblioteca standard, applica u cuncettu di referenze immutabili è variabili per difettu, offre una forte tipografia statica per minimizzà l'errori lògichi.

Innuvazioni principali:

  • U tipu slice hà avà un metudu array_windows. Stu metudu crea un iteratore per attraversà e slice in finestre di dimensione fissa chì avanzanu un elementu à a volta. À u cuntrariu di u metudu windows dispunibule prima, array_windows opera nantu à una dimensione di finestra costante è restituisce un riferimentu à un array di dimensione fissa (&[T; N]) invece di una slice di dimensione indefinita (&[T]) per ogni iterazione. Siccomu a dimensione di l'array hè inizialmente cunnisciuta da u compilatore, e prestazioni ponu esse migliurate evitendu u cuntrollu di i limiti in ogni fase di l'iterazione. 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());
  • I fugliali di cunfigurazione di u gestore di pacchetti Cargo (.cargo/config.toml) implementanu a direttiva "include", chì vi permette d'inserisce in situ u cuntenutu d'altri fugliali. include = [ "frodo.toml", "samwise.toml", ] include = [ { path = "required.toml" }, { path = "optional.toml", optional = true }, ]
  • U supportu per a nova versione di u linguaghju di marcatura TOML 1.1 hè statu aghjuntu à i fugliali di manifestu è di cunfigurazione. Sta nova versione aghjusta u supportu per e tabelle integrate multilinea, a sequenza di escape "\xHH" per inserisce rapprisentazioni di byte esadecimali, è a sequenza di escape "\e" per "\u001B", inseme cù a capacità di lascià una virgula finale à a fine di l'ultimu elementu è omette i secondi in i valori di tempu. serde = { version = "1.0", features = ["derive"] } pò avà esse rimpiazzatu cù serde = { version = "1.0", features = ["derive"], }
  • Una nova parte di l'API hè stata trasferita à a categuria di stabile, cumprese i metudi è l'implementazione di i tratti sò stati stabilizzati:
    • <[T]>::array_windows
    • <[T]>::element_offset
    • LazyCell::uttene
    • LazyCell::get_mut
    • LazyCell::force_mut
    • LazyLock::ottene
    • LazyLock::get_mut
    • LazyLock::force_mut
    • impl Pruvate da per l'usu
    • std::iter::Peekable::next_if_map
    • std::iter::Peekable::next_if_map_mut
    • Intrinseca per l'istruzzioni x86 avx512fp16
    • Intrinseca per l'istruzzioni AArch64 NEON fp16
    • f32::consts::EULER_GAMMA
    • f64::consts::EULER_GAMMA
    • f32::consts::GOLDEN_RATIO
    • f64::consts::GOLDEN_RATIO
  • U signu "const" hè usatu in funzioni:
    • f32::mul_add
    • f64::mul_add
  • A piattaforma riscv64im-unknown-none-elf hè stata spostata à u livellu di supportu 3. U livellu di supportu 3 include u supportu basicu, ma ùn include micca i testi automatizati, e versioni ufficiali di compilazione o a verificazione di compilazione.

Inoltre, vulemu mette in risaltu i prughjetti è l'eventi annunziati di recente in relazione à Rust:

  • Ayrton Muñoz, chì hà implementatu u supportu per a piattaforma Sony PlayStation 1 in u compilatore Rust è hà purtatu FreeBSD à l'urdinatori cù chip Apple Silicon, hà implementatu a capacità di scrive cumpunenti di u kernel è driver di dispositivi in ​​Rust per FreeBSD. Un inseme di ligami KPI (Kernel Programming Interface) chì permettenu l'usu di u codice Rust in u kernel FreeBSD hè statu furnitu per a prova, inseme cù u driver audio virtio (virtio_snd), u driver DockChannel HID per a tastiera M2 MacBook, è parechji driver di bassu livellu per i sottosistemi di l'urdinatori Mac nantu à i chip Apple Silicon, tutti creati cù questi ligami.

    U travagliu nantu à i binding Rust hè in corsu dapoi a fine di u 2024. Attualmente, i binding implementanu solu una parte di i C-KPI è sò cunsiderati instabili, ma cù u tempu, anu intenzione di migliurà a so stabilità per currisponde à quella di una interfaccia simile per u linguaghju C. U driver virtio_snd, prupostu cum'è esempiu, hè adattatu per sunà musica in QEMU. Si prevede chì da u 2026, i binding Rust saranu abbastanza stabili per chì i sviluppatori interessati cumincinu à aduprà li per scrive codice.

  • U sviluppatore NetBSD Benny Siegert hà offertu una spiegazione di perchè u supportu Rust ùn apparirà micca in u kernel NetBSD: NetBSD supporta architetture per e quali Rust ùn hè micca dispunibule; mantene a catena di strumenti Rust esistente in pkgsrc hè un sforzu significativu è hè supportata solu da pochi sviluppatori; u supportu di u kernel per Rust richiede chì u compilatore Rust sia inclusu in u sistema di basa; l'avvio di Rust nantu à NetBSD usa un pacchettu binariu legacy, chì hè inaccettabile per e distribuzioni autonome distribuite cum'è fonte; i cicli di liberazione di Rust sò incompatibili cù i cicli di sviluppu è di supportu di NetBSD per e branche legacy (per esempiu, NetBSD 9, publicatu in u 2020, cuntinueghja à esse supportatu, ciò chì richiederebbe a spedizione è u supportu di un compilatore Rust di sei anni).
  • Опубликован выпуск встраиваемой в приложения СУБД Turso 0.5, написанной на языке Rust и совместимой с SQLite на уровне диалекта SQL, формата файлов БД и C API. Из расширенных возможностей отмечается механизм CDC (Change data capture) для отслеживания изменения БД в реальном времени, использование io_uring для асинхронного ввода/вывода в Linux, поддержка векторного поиска, наличие выражения ALTER для изменения схемы БД, возможность шифрования данных в БД, режим инкрементальных вычислений, конструкция «BEGIN CONCURRENT».
  • Un prugettu per permette l'usu di a biblioteca standard Rust in i prugrammi di u latu GPU.
  • Emuko — эмулятор RISC-V, написанный на Rust, способный загружать Linux, поддерживающий JIT-компиляцию, способный сохранять и восстанавливать снапшоты состояния.
  • RustConn (flatpak) hè un'interfaccia grafica per gestisce cunnessione di rete esterne à altri host, chì supporta SSH, RDP, VNC, SPICE, Telnet, Serial, Kubernetes, Zero Trust è SFTP. U codice hè scrittu in Rust utilizendu GTK4 è Wayland.
  • Una nova branca di u prugettu zlib-rs 0.6 hè stata liberata, marcendu cum'è a prima versione stabile cumpletamente cumpatibile cù l'API C di zlib è adatta per una sustituzione trasparente di zlib. U prugettu hà per scopu di creà una alternativa sicura à a biblioteca di cumpressione di dati zlib. U sviluppu hè realizatu cù un ochju nantu à u prugettu zlib-ng, chì sviluppa una variante ad alte prestazioni di zlib.
  • U prugettu VCAD hè un sviluppu di un sistema di cuncepimentu assistitu da urdinatore (CAD) parametricu scrittu in Rust è integratu cù agenti IA chì utilizanu u protocolu MCP. Supporta a modellazione 3D, a simulazione, u schizzu 2D, l'assemblea di cumpunenti, l'impurtazione STEP è l'esportazione STL/GLB/STEP/DXF.
  • Un sistema di ricunniscenza vocale scrittu in Rust è chì usa u mudellu Mistral Voxtral Mini 4B Realtime AI è u framework di apprendimentu automaticu Burn hè statu publicatu. U prugettu si cuncentra nantu à a ricunniscenza vocale in tempu reale per a trascrizione in diretta.
  • U kit di strumenti c2rust 0.22 hè statu publicatu. Hè cuncipitu per traduce u codice C (C99) in una rapprisentazione Rust micca sicura, simile in struttura à u codice C originale. U quadru di travagliu risultante pò esse adupratu per una migrazione graduale versu Rust idiomaticu è a rimuzione di blocchi micca sicuri.

Source: opennet.ru

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster