Rust 1.65 Programméiersprooch Fräisetzung

D'Verëffentlechung vun der Rust 1.65 allgemeng Zweck Programméierungssprooch, gegrënnt vum Mozilla-Projet, awer elo entwéckelt ënner der Regie vun der onofhängeger Asbl Rust Foundation, gouf publizéiert. D'Sprooch konzentréiert sech op d'Erënnerungssécherheet a stellt d'Moyene fir en héije Jobparallelismus z'erreechen, während d'Benotzung vun engem Gerempels a Runtime vermeit (Runtime gëtt op Basisinitialiséierung an Ënnerhalt vun der Standardbibliothéik reduzéiert).

Rust d'Erënnerungsveraarbechtungsmethoden retten den Entwéckler vu Feeler beim Manipulatioun vu Pointer a schützt géint Probleemer déi entstinn wéinst nidderegen Niveau Memory Handhabung, sou wéi Zougang zu engem Erënnerungsberäich nodeems se befreit gouf, Nullpointer ofgeleent, Pufferiwwerschlag, etc. Fir Bibliothéiken ze verdeelen, Builds ze bidden an Ofhängegkeeten ze managen, entwéckelt de Projet de Cargo Package Manager. De crates.io Repository gëtt ënnerstëtzt fir Bibliothéiken ze hosten.

Gedächtnissécherheet gëtt a Rust zur Zesummesetzungszäit zur Verfügung gestallt duerch Referenzprüfung, Verfollegung vum Objektbesëtzer, Verfollegung vun Objektliewenszäiten (Scope), an d'Korrektheet vum Gedächtniszougang wärend der Code Ausféierung bewäerten. Rust bitt och Schutz géint ganz Zuelen Iwwerschwemmungen, erfuerdert obligatoresch Initialiséierung vu variabelen Wäerter virum Gebrauch, handhabt Feeler besser an der Standardbibliothéik, applizéiert d'Konzept vun onverännerleche Referenzen a Variablen als Standard, bitt staark statesch Tippen fir logesch Feeler ze minimiséieren.

Haaptinnovatiounen:

  • Zousätzlech Ënnerstëtzung fir generesch assoziéiert Typen (GAT, Generic Associated Types), déi et méiglech maachen Typ Aliasen ze kreéieren, déi mat enger anerer Zort verbonne sinn an Iech erlaben Typkonstruktoren mat Charakteren ze associéieren. trait Foo { type Bar; }
  • Den "lass ... else" Ausdrock gouf implementéiert, wat Iech erlaabt d'Musterpassend Conditioun direkt am "lass" Ausdrock ze kontrolléieren an arbiträr Code auszeféieren wann d'Muster net passt. lass Ok(count) = u64::from_str(count_str) soss { panik!("Kann net eng ganz Zuel parseieren: '{count_str}'"); };
  • Erlaabt d'Benotzung vun enger Pauserklärung fir genannte Blocks virzäiteg ze verloossen, andeems Dir de Blocknumm (Label) benotzt fir de Block ze identifizéieren deen ofgeschloss gëtt. loosse Resultat = 'block: {do_thing(); wann condition_not_met () { break 'block 1; } do_next_thing(); wann condition_not_met () { break 'block 2; } do_last_thing(); 3};
  • Fir Linux ass d'Fäegkeet fir Debugging Informatioun separat ze späicheren (Split-Debuginfo), déi virdru nëmme fir d'macOS Plattform verfügbar ass. Wann Dir d'Optioun "-Csplit-debuginfo=unpacked" spezifizéiert, ginn d'Debuginfo-Daten am DWARF-Format a verschiddenen getrennten Objektdateien mat enger ".dwo" Extensioun gespäichert. Spezifizéieren "-Csplit-debuginfo = packed" wäert en eenzege Package am ".dwp" Format erstellen, deen all d'Debuginfo Daten fir de Projet enthält. Fir Debuginfo direkt an d'.debug_* Sektioun vun ELF Objeten z'integréieren, kënnt Dir d'Optioun "-Csplit-debuginfo=off" benotzen.
  • En neien Deel vun der API gouf an d'Kategorie vum Stall geplënnert, dorënner d'Methoden an d'Implementatioune vun de Charaktere goufen stabiliséiert:
    • std::backtrace::Backtrace
    • Gebonnen::as_ref
    • std::io::read_to_string
    • ::cast_mut
    • ::cast_const
  • Den Attribut "const", wat d'Méiglechkeet bestëmmt et an all Kontext ze benotzen anstatt Konstanten, gëtt an de Funktiounen ::offset_from an ::offset_from benotzt
  • Als Deel vun der leschter Stuf vun der Iwwerdroung vun der Implementatioun vum LSP (Language Server Protocol) Protokoll op Rust-Analyzer, gouf d'aliséiert Ëmsetzung vum Rust Language Server (RLS) duerch e Stubbserver ersat, deen eng Warnung mat engem Virschlag erausgëtt fir op ze wiesselen. benotzt Rust-Analyzer.
  • Wärend der Kompiléierung ass d'Ënnerstëtzung fir den Inline-Deployment vum MIR-Zwëschencode aktivéiert, wat d'Kompilatioun vun typesche Këschtpakete mat 3-10% beschleunegt.
  • Fir geplangte Builds ze beschleunegen, bitt de Cargo Package Manager d'Sortéierung vun den Aarbechtsplazen, déi op d'Ausféierung an der Schlaang waarden.

Zousätzlech kënnt Dir den Interview iwwer d'Benotzung vun der Rust Sprooch bei Volvo notéieren fir Komponenten vun Automotive Informatiounssystemer z'entwéckelen. Et gi keng Pläng fir existent a getest Code am Rust nei ze schreiwen, awer fir neie Code ass Rust eng vun de bevorzugten Optiounen fir d'Qualitéit zu méi niddrege Käschten ze verbesseren. Aarbechtsgruppen am Zesummenhang mat der Notzung vun der Rust Sprooch sinn och an den Automotive Associatiounen AUTOSAR (AUTomotive Open System ARchitecture) an SAE (Society of Automotive Engineers) geschaf ginn.

Zousätzlech huet den David Kleidermacher, Google's Vice President of Engineering, iwwer d'Iwwersetzung vum Code geschwat, deen an der Android Plattform benotzt gëtt fir Verschlësselungsschlësselen an Rust ze verwalten, wéi och d'Benotzung vu Rust an der Ëmsetzung vum DNS iwwer HTTPS Protokoll am Stack fir UWB- Chips (Ultra-Wideband) an am Virtualiséierungskader (Android Virtualization Framework) verbonne mam Tensor G2 Chip. Nei Stacks fir Bluetooth a Wi-Fi, op Rust nei geschriwwe ginn, ginn och fir Android entwéckelt. Déi allgemeng Strategie ass d'Sécherheet lues a lues ze stäerken, fir d'éischt andeems déi vulnérabel a vital Softwarekomponenten op Rust ëmgewandelt ginn, an dann op aner verbonne Subsystemer ausbauen. D'lescht Joer war d'Rust Sprooch an der Lëscht vun de Sproochen abegraff fir d'Android Plattform z'entwéckelen.

Source: opennet.ru

Setzt e Commentaire