Programmeertaal Rust 1.35 heeft handige uitbreidingen

Noud van Kruysbergen
0

Met de nieuwe release van Rust kun je onder meer zowel reguliere functies gebruiken als functies die in het dynamisch geheugen zitten.

H

Het Rust-Team heeft versie 1.35 van de oorspronkelijk door Mozilla in het leven geroepen programmeertaal uitgebracht. Daar wordt een vernieuwing bij geïntroduceerd die de omgang met functies die in het dynamisch geheugen in plaats van op de stack staan uitbreidt, Die zijn nu op plaatsen te gebruiken waar het systeem een reguliere functie verwacht.Bovendien werkt de debugger-macro zonder parameters.

Rust 1.35 implementeert voor functies die met Box< T > in het dynamische geheugen (heap) in plaats van op de standaard gebruikt stack opgeslagen worden de bijpassende Closure-Traits om die op plekken te kunnen gebruiken waar de taal reguliere functies verwacht. Concreet bestaan voor Box<dyn Fn>, Box<dyn FnOnce> en Box<dyn FnMut> de traits Fn, FnOnce respectievelijk FnMut.

Door de vernieuwing werkt onder meer de volgende code op de Rust-blog, die de meegegeven functie rechtstreeks aanroept:

fn foo(x: Box<dyn FnOnce()>) {
  x()
}

Een kleine, maar handige uitbreiding is dat de in Rust 1.32 ingevoerde Macro dbg! nu zonder parameters werkt. De macro dient er normaal voor om expressies te berekenen en die samen met hun positie in de sourcecode terug te leveren. Zonder parameters verschijnt alleen het bestand en het regelnummer in de volgende vorm:

[src/main.rs:5]

De uitvoer helpt developers om te achterhalen welke wegen het programma door de code doorloopt.

De nieuwe methode copysign kopieert het teken van een floatingpoint-getal naar een ander en is beschikbaar voor de primitieven f32 en f64. Een andere handige hulpfuncties is contains, dat test of een bepaalde waarde in Range, RangeFrom, RangeTo, RangeInclusive respectievelijk RangeToInclusive zit.

Andere vernieuwingen in Rust 1.35 zijn te lezen in het Rust-blog.Een  compleet overzicht van alle veranderingen en stabiliteitsmaatregelen staan in de Release Notes. Op de  Tools-pagina staat een installatietool. De Repository op GitHub bevat bovendien onder meer de sourcecode voor de compiler en de standaardbibliotheek, en wat documentatie.

 

c't magazine 8-9/2022

Deel dit artikel

Lees ook

Raspberry Pi 3B+ met snellere netwerkverbindingen

Elk jaar komt er weer een nieuwe Raspberry Pi. In 2016 was het de Raspberry Pi 3, in 2017 arriveerde de Zero W. En in 2018 verscheen op Pi Day (14-3) ...

Goedkoop Raspberry Pi alternatief: Orange Pi Zero

De Raspberry Pi is een erg gunstig geprijsde minicomputer, maar het kan nog goedkoper. De Orange Pi Zero is met 10 euro opvallend goedkoop en de softw...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er