Software-update: Rust 1.71.0 – Computer – Downloads

Rust is een programmeertaal bedacht door Graydon Hoare en oorspronkelijk ontwikkeld door Mozilla. Het is deels geïnspireerd op de programmeertaal C, maar kent syntactische en semantische verschillen. Het focust op veiligheid en beoogt moderne computersystemen om te verzamelen. Het wordt ingezet door onder andere Cloudflare, OVH, Mozilla, Deliveroo, Coursera, AppSignal en Threema. Versie 1.71.0 is begin deze maand gepubliceerd met de volgende aankondiging:

C-ontwikkel ABI

1.71.0 stabiliseert C-unwind (en andere -unwind suffix ABI-varianten). Het gedrag voor ongedwongen afwikkelen (het typische geval) wordt gespecificeerd in deze tabel van de RFC die deze functie heeft voorgesteld. Samenvatten:


Elke ABI is grotendeels gelijk aan dezelfde ABI zonder -unwindbehalve dat met -unwind het gedrag is gedefinieerd als veilig wanneer een afwikkeloperatie (panic of uitzondering in C++-stijl) de ABI-grens overschrijdt. Voor panic=unwind, dit is een geldige manier om uitzonderingen van de ene taal de stapel in een andere taal te laten afwikkelen zonder het proces te beëindigen (zolang de uitzondering wordt opgevangen in dezelfde taal waaruit deze afkomstig is); voor panic=abortzal dit het proces meestal onmiddellijk afbreken.


Voor deze initiële stabilisatie, geen verandering wordt gemaakt op de bestaande ABI’s (bijv "C"), en eroverheen ontspannen blijft ongedefinieerd gedrag. Een toekomstige release van Rust zal deze ABI’s aanpassen zodat ze overeenkomen met het gedrag dat is gespecificeerd in de RFC als het laatste onderdeel van het stabiliseren van deze functie (meestal afbreken bij de grens). Gebruikers worden aangemoedigd om de nieuwe ABI-varianten voor afwikkelen in hun code te gaan gebruiken om toekomstbestendig te blijven als ze over de ABI-grens moeten afwikkelen.


Debugger-visualisatieattributen

1.71.0 stabiliseert ondersteuning voor een nieuw attribuut, #[debug_visualizer(natvis_file = "...")] En #[debug_visualizer(gdb_script_file = "...")], waarmee Natvis-beschrijvingen en GDB-scripts in Rust-bibliotheken kunnen worden ingesloten om de debuggeruitvoer te verbeteren bij het inspecteren van gegevensstructuren die door die bibliotheken zijn gemaakt. Rust heeft zelf al enige tijd vergelijkbare scripts ingepakt voor de standaardbibliotheek, maar deze functie maakt het voor bibliotheekauteurs mogelijk om eindgebruikers een vergelijkbare ervaring te bieden. Zie de referentie voor meer informatie over het gebruik.


raw-dylib-koppeling

Op Windows-platforms ondersteunt Rust nu het gebruik van functies uit dynamische bibliotheken zonder dat die bibliotheken tijdens het bouwen beschikbaar hoeven te zijn, met behulp van het nieuwe kind="raw-dylib” optie voor #https://tweakers.net/downloads/65196/rust-1710.html. Dit voorkomt dat gebruikers die bibliotheken moeten installeren (vooral moeilijk voor cross-compilatie), en vermijdt dat stub-versies van bibliotheken in kratten moeten worden verzonden om mee te linken. Dit vereenvoudigt kratten die bindingen bieden aan Windows-bibliotheken. Rust ondersteunt ook binding aan symbolen die door DLL’s worden geleverd door een ordinaal in plaats van een benoemd symbool, met behulp van de nieuwe #[link_ordinal] attribuut.


Upgrade naar musl 1.2

Als eerder aangekondigd, werkt Rust 1.71 de musl-versie bij naar 1.2.3. De meeste gebruikers zullen niet worden beïnvloed door deze wijziging.


Const-geïnitialiseerd thread locals

Roest 1.59.0 gestabiliseerd const geïnitialiseerde thread-lokale ondersteuning in de standaardbibliotheek, wat een meer optimale codegeneratie mogelijk maakt. Tot nu toe werd deze functie echter gemist in release-opmerkingen en documentatie. Merk op dat deze stabilisatie niet maakt const { ... } een geldige uitdrukking of syntaxis in andere contexten; dat is een apart en momenteel onstabiel functie.



use std::cell::Cell;

thread_local! {
    pub static FOO: Cell<u32> = const { Cell::new(1) };
}


Gestabiliseerde API’s


Deze API’s zijn nu stabiel in const-contexten:




Andere veranderingen

Bekijk alles wat er is veranderd Roest, LadingEn Clippy.

credit :Source link

We will be happy to hear your thoughts

Leave a reply

12game.shop
Logo