Rust 1.68 arriveert met ondersteuningsverbeteringen en meer

roest

Rust is een gecompileerde programmeertaal die pure functionele, procedurele, imperatieve en objectgeoriënteerde programmering ondersteunt.

De release van de nieuwe versie van de programmeertaal Rust, versie 1.68, is onlangs aangekondigd. Voor degenen die niet bekend zijn met Rust: deze programmeertaal is ontwikkeld door het Mozilla-project, maar wordt nu beheerd door de onafhankelijke, non-profit Rust Foundation.

De taal legt de nadruk op geheugenveiligheid en biedt de mogelijkheid om een ​​hoge mate van parallellisatie te bereiken, zonder gebruik te maken van een garbage collector en runtime (de runtime is beperkt tot basisinitialisatie en onderhoud van de standaardbibliotheek).

De geheugenbeheermethoden van Rust behoeden de ontwikkelaar voor fouten bij het manipuleren van aanwijzers en beschermen tegen problemen die optreden als gevolg van geheugenmanipulatie op laag niveau, zoals toegang tot een geheugengebied nadat het is vrijgegeven, het verwijderen van verwijzingen naar null-aanwijzers, geheugenoverloop, enz. buffer enz Om bibliotheken te distribueren, builds aan te bieden en afhankelijkheden te beheren, ontwikkelt het project de Cargo-pakketbeheerder.

Rust biedt ook bescherming tegen integer-overflows, vereist verplichte initialisatie van variabelewaarden vóór gebruik, behandelt fouten beter dan de standaardbibliotheek, past standaard het concept van referenties en onveranderlijke variabelen toe en biedt sterke statische typering om logische fouten te minimaliseren.

Belangrijkste nieuwe functies van Rust 1.68

In deze nieuwe versie van Rust 1.68 zien we dat de ondersteuning voor het Sparse-protocol is gestabiliseerd in de Cargo-pakketbeheerder en de crates.io-repository. Dit definieert een nieuwe manier van werken met een index die de beschikbare versies van alle bestaande pakketten in de repository weergeeft.

Het nieuwe protocol maakt het mogelijk om de snelheid van het werken met kratten.io aanzienlijk te verhogen en schaalproblemen op te lossen met een verdere toename van het aantal pakketten in de repository.

Om de vertragingen te verminderen die ontstaan ​​bij het downloaden van een volledige index, downloadt Sparse , in plaats van de index via Git te benaderen, alleen de benodigde indexgegevens rechtstreeks via HTTPS , die de afhankelijkheden van een specifiek project omvatten. Een nieuwe service, index.crates.io, is betrokken bij het retourneren van de indexgegevens.

Standaard is het nieuwe protocol bedoeld voor gebruik in Rust 1.70 . Om het vóór die tijd in te schakelen, kunt u de omgevingsvariabele " CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse " instellen of de parameter ' protocol=sparse' toevoegen aan het bestand .cargo/config.toml.

Een andere opvallende verandering is de toevoeging van de macro "pin!" , waarmee een Pin<&mut T>-structuur kan worden aangemaakt vanuit de expressie "T" met lokale fixatie van de status (in tegenstelling tot Box::pin, allocateert deze geen geheugen op de heap, maar voegt zich toe aan de stack).

Daarnaast zullen we ook ontdekken dat er een standaard foutafhandeling voor geheugenallocatie wordt voorgesteld , die wordt gebruikt bij het gebruik van het standaard allocatiepakket.

Applicaties die alleen `alloc` (en niet `std`) toestaan, zullen nu de `panic!` handler aanroepen in geval van geheugentoewijzingsfouten. Deze handler kan optioneel worden onderschept met `#[panic_handler]`. Programma's die de `std` bibliotheek gebruiken, zullen nog steeds foutinformatie naar `stderr` afdrukken en crashen.

Andere opvallende wijzigingen zijn onder meer:

  • Een nieuw deel van de API is verplaatst naar stabiel, inclusief methoden en kenmerkimplementaties die zijn gestabiliseerd
  • Het "const" attribuut, dat de mogelijkheid bepaalt om het in elke context te gebruiken in plaats van constanten, wordt gebruikt in de VecDeque::new.
  • Het Android-platform vereist nu minimaal NDK r25 (API 19), d.w.z. de minimaal ondersteunde Android-versie is verhoogd naar 4.4 (KitKat).
  • Het derde ondersteuningsniveau voor het Sony PlayStation Vita-platform (armv7-sony-vita-newlibeabihf) is geïmplementeerd.
  • Het derde niveau omvat basisondersteuning, maar zonder geautomatiseerd testen, het publiceren van officiële builds en het verifiëren van de compileerbaarheid van de code.

Als u meer wilt weten, kunt u de details vinden via de volgende link.

Tot slot, voor degenen die geïnteresseerd zijn in een upgrade van een eerdere versie van Rust die via rustup is geïnstalleerd, kan de nieuwe versie van Rust 1.68.0 worden verkregen met:

rustup update stable


Voeg dit toe als voorkeursbron in Google.