Rust 1.78 is al uitgebracht en dit zijn de nieuwe functies

roest logo

Rust is een gecompileerde programmeertaal voor algemeen gebruik met meerdere paradigma's.

De nieuwe versie van Rust 1.78 is al uitgebracht en nieuwe functies zijn geïmplementeerd, evenals de stabilisatie van sommige API's, verbeteringen in Cargo en meer.

Voor degenen die deze programmeertaal niet kennen, moeten ze dat weten richt zich op geheugenveiligheid en biedt de middelen om een ​​hoog parallellisme te bereiken van taken terwijl het gebruik van een vuilnisman en runtime wordt vermeden (runtime wordt teruggebracht tot basisinitialisatie en standaard bibliotheekonderhoud).

Belangrijkste nieuwe functies van Rust 1.78

In deze nieuwe versie gepresenteerd door Rust 1.78 heeft de minimumvereiste voor Windows 10 verhoogd, Daarnaast de compiler is gewijzigd om LLVM 18 te gebruiken. Bij gebruik van LLVM 18 voor x86-32- en x86-64-architecturen is de ABI die is gekoppeld aan de typen u128 en i128 gewijzigd.

Wat de veranderingen betreft, is een van de kenmerken die opvalt Roest ondersteunt nu een attribuutnaamruimte  «#[diagnose]", wat biedt een middel om de geproduceerde foutmeldingen te beïnvloeden door de compiler. Deze worden behandeld als hints die de compiler niet hoeft te gebruiken, en het is ook geen fout om een ​​diagnose te geven die de compiler niet herkent. Dit zorgt ervoor dat de broncode diagnostische gegevens kan leveren, zelfs als deze niet door alle compilers worden ondersteund, of het nu gaat om verschillende versies of totaal verschillende implementaties.

Bovendien heeft een wereldwijde cache is gestabiliseerd in Cargo waarin informatie wordt opgeslagen over het meest recente datagebruik. Deze cache bevindt zich in $CARGO_HOME/.global-cache en gebruikt SQLite voor de implementatie ervan. Het wordt automatisch bijgewerkt om de laatste wijzigingen in de index, krat, codedirectory, git clone en git checkout weer te geven, waardoor de efficiëntie en snelheid van afhankelijkheidsbeheeroperaties in ontwikkelingsprojecten wordt verbeterd.

Een andere nieuwe functie van Rust 1.78 is dat de Rust-standaardbibliotheek beschikt Diverse stellingen voor randvoorwaarden van onveilige functies die nu kan worden uitgesteld tot het genereren van de code. Hierdoor kunnen deze controles worden uitgevoerd historisch gezien waren ze alleen mogelijk in builds «#[cfg(debug_assertions)]» om te voorkomen dat de prestaties in de releaseversie worden beïnvloed. Met deze wijziging kunnen gebruikers nu ongedefinieerd gedrag in hun code detecteren, hoewel details over hoeveel er wordt gecontroleerd over het algemeen niet stabiel zijn. Om controles mogelijk te maken, is het nu voldoende om debug-beweringen in te schakelen voor test- of debug-builds van de code.

Naast dat, nu gedrag van standaardbibliotheekfuncties die de uitlijning van wijzers en sectoren beïnvloeden het is nu voorspelbaar tijdens runtime en is afhankelijk van de invoergegevens. De functie pointer::align_offset, dat de offset berekent om de aanwijzer uit te lijnen, keert nu terug gebruik::MAX alleen als de operatie mislukt. De functies slice::align_to en slice::align_to_mut, die segmenten omzet in een representatie met een uitgelijnde middensegment en de originele begin- en eindsegmenten, retourneert nu altijd het grootste middelste deel.

Aan de andere kant wordt dat wel vermeld De volgende API's zijn verplaatst naar de categorie 'stabiel': impl Lezen voor &Stdin, impl Van voor io::Fout en de implementatie impl die het gebruik mogelijk maakt ?Op maat.

Van de Andere veranderingen die opvallen van deze nieuwe versie:

  • Het tweede ondersteuningsniveau voor het Add wasm32-wasip1-doelplatform is geïmplementeerd. Het tweede niveau van ondersteuning betreft een montagegarantie.
  • Het wasm32-wasi-preview1-threads-platform is hernoemd naar wasm32-wasip1-threads.
  • In de Cargo-pakketbeheerder is versie 4 van de lock-bestanden (lockfile v4) gestabiliseerd. Cargo gebruikt deze versie nu als standaard om consistentie en efficiënt beheer van afhankelijkheden tussen projecten te garanderen.

Wanneer je geïnteresseerd om er meer over te weten, u kunt de details inchecken de volgende link.

Eindelijk, voor degenen die dat wel zijn Geïnteresseerd in een upgrade van een eerdere versie van Rust geïnstalleerd via rustup, kunt u de nieuwe versie van Rust 1.78 krijgen met:

rustup update stable

Als Rust nog niet op uw systeem is geïnstalleerd, kunt u dit doen door de volgende opdracht in een terminal uit te voeren:

curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh