Zoeken op website

Rust 1.86 introduceert belangrijke taalfeatures


Rust 1.86 is nu uit, met ondersteuning voor trait-upcasting, veiligere mutabele indexing voor slices en maps, en stabiele target feature support voor veilige functies.

Het Rust Release Team heeft officieel versie 1.86 van de populaire programmeertaal Rust geïntroduceerd, met verschillende geavanceerde functies en verbeteringen die gericht zijn op het helpen van ontwikkelaars bij het bouwen van veilige en efficiënte software.

Een van de meest verwachte toevoegingen is de mogelijkheid om trait-objecten op te waarderen. In praktische termen, als een trait afhankelijk is van een supertrait, kunnen verwijzingen naar de "kind" trait nu worden geconverteerd naar verwijzingen naar de "ouder" trait. In eerdere versies moesten ontwikkelaars leunen op een handmatig geïmplementeerde methode om vergelijkbaar gedrag te bereiken.

Een andere opmerkelijke verbetering is de nieuwe get_disjoint_mut methode, die beschikbaar is gemaakt voor slices en HashMap. Deze methode haalt op een veilige manier meerdere wijzigbare referenties tegelijk op - iets dat in het verleden niet betrouwbaar kon worden gedaan door herhaalde aanroepen van get_mut.

Met get_disjoint_mut is het nu mogelijk om verschillende elementen gelijktijdig te muteren, terwijl aan de strikte regels van Rust's borrow checker wordt voldaan. Deze toevoeging biedt een meer directe en expressieve manier om scenario's af te handelen die betrekking hebben op gedeeltelijke updates van een collectie.

Rust 1.86 stabiliseert ook het gebruik van #[target_feature] voor veilige functies (voorheen alleen beperkt tot unsafe functies). Deze eigenschap is nuttig voor het optimaliseren van codepaden voor specifieke CPU-functies, zoals AVX2-instructies.

Bovendien zal Rust in de debugmodus nu een runtime-assertie uitvoeren om te bevestigen dat pointers niet null zijn voordat er een niet-nul-gestoorde lees- of schrijfoperatie plaatsvindt. Deze controles zijn van toepassing, zelfs wanneer referenties opnieuw worden geleend. Het is belangrijk op te merken dat deze extra controles deel uitmaken van debug-asserties, zodat ze de bestaande compileertijdgaranties niet vervangen of verminderen.

De nieuwe versie upgrade ook de missing_abi lint naar een “waarschuw standaard” status. Met andere woorden, ontwikkelaars die vergeten om "C" of een andere ABI expliciet in extern blokken op te geven, zullen nu een waarschuwing ontvangen.

Ondertussen zal de i586-pc-windows-msvc doelspecificatie worden verwijderd in Rust 1.87. Aangezien SSE2-instructies verplicht zijn op Windows 10 (het minimaal ondersteunde besturingssysteem voor de reguliere Windows-doelen), worden gebruikers aangemoedigd om voor de officiële inwerkingtreding van de afschaffing over te stappen naar i686-pc-windows-msvc.

Ten slotte stabiliseert Rust 1.86 aan de bibliotheekzijde een verscheidenheid aan APIs, waaronder Float::next_down, Float::next_up en de nieuw geïntroduceerde slice::get_disjoint_mut varianten. Daarnaast zijn verschillende functies—zoals hint::black_box en verschillende methoden voor het splitsen van strings—nu beschikbaar binnen const contexten, wat hun bruikbaarheid in compileertijdscenario's vergroot.

Bekijk de aankondiging voor meer informatie en een diepgaande blik op alle vernieuwingen die Rust 1.86 met zich meebrengt.

Gerelateerde artikelen: