Rust és un llenguatge de programació compilat, de propòsit general i multiparadigma
Fa pocs dies es va donar a conèixer el llançament de la nova versió del popular llenguatge de programació «Rust 1.71″, versió en la qual s'han estabilitzat una gran quantitat d'APIs, així com també diferents apartats, s'han introduït millores i moltes coses més.
Per als qui desconeixen aquest llenguatge de programació han de saber que s'enfoca a la seguretat de la memòria i proporciona els mitjans per aconseguir un alt paral·lelisme treballs mentre evita l'ús d'un recol·lector d'escombraries i temps d'execució (el temps d'execució es redueix a la inicialització bàsica i al manteniment de la biblioteca estàndard).
Els mètodes de maneig de memòria de Rust salven el desenvolupador d'errors en manipular punters i protegeixen contra els problemes que sorgeixen a causa del maneig de memòria de baix nivell, com accedir a una àrea de memòria després d'haver-la alliberat, desreferenciar punters nuls, desbordaments de memòria intermèdia, etc. Per distribuir biblioteques, proporcionar compilacions i administrar dependències, el projecte desenvolupa l'administrador de paquets Càrrec.
Principals novetats de Rust 1.71
En aquesta nova versió que es presenta de Rust 1.71 es destaca que es va estabilitzar l'ABI extern C-unwind, que difereix de l'ABI sense el sufix "-unwind" ("extern "C"') en mantenir un comportament segur (safe) si el procés d'"unwinding" iniciat per un bloqueig del programa o el llançament d'una excepció d'estil C++ creua un límit d'ABI. Cal esmentar que en una versió futura de Rust es busqués modificarà aquestes ABI perquè coincideixin amb el comportament especificat com a part final de l'estabilització d'aquesta característica.
Un altre dels canvis que es destaca és el suport estabilitzat per als atributs '#[debug_visualizer(natvis_file = «…»)]] i '#[debug_visualizer(gdb_script_file = «…»)]]', Que permiten incrustar metadades de Microsoft Natviz i scripts GDB a biblioteques de Rust per millorar la sortida de depuració en inspeccionar estructures de dades creades per biblioteques. Aquests scripts ja estan inclosos per a la biblioteca estàndard i ara és possible incloure'ls per a biblioteques de tercers.
A més, també es destaca que Càrrec optimitza el seu ús sota rus i és que quan Cargo detecta que s'executarà rustc apuntant a un proxy Rustup, intentarà ometre el proxy i utilitzarà el binari subjacent directament. Hi ha suposicions sobre la interacció amb rustup i RUSTUP_TOOLCHAIN. Tot i això, no s'espera que afecti els usuaris normals.
D'altra banda, a Windows, és possible utilitzar funcions de biblioteques dinàmiques que no estan disponibles en el moment de la compilació (per exemple, per evitar la instal·lació de biblioteques innecessàries a l'entorn de compilació i simplificar la compilació creuada).
També es destaca que s'implemento el suport de tercer nivell per a la plataforma x86_64 h-apple-darwin. El tercer nivell implica suport bàsic, però sense proves automatitzades, publicació de compilacions oficials i verificació de la capacitat de compilar el codi
Dels altres canvis que es destaquen d'aquesta nova versió:
- Les plataformes de destinació que utilitzen la biblioteca Musl C s'han migrat a la versió Musl 1.2.3 (anteriorment es feia servir la versió 1.1.24), que permet utilitzar el tipus time64 en sistemes de 32 bits.
- La biblioteca estàndard proporciona una variant de la macro thread_local que s'inicialitza amb l'atribut «const», que es pot utilitzar en context en lloc de constants, cosa que us permet generar un codi més òptim.
- Una nova part de l'API s'ha mogut a la categoria estable, inclosos els mètodes i les implementacions de trets que s'han estabilitzat:
- L'atribut «const», que determina la possibilitat de fer servir en qualsevol context en lloc de constants, s'usa en funcions:
- L'administrador de paquets Càrrec permet especificar opcions amb nom debuginfo al fitxer Cargo.toml.
- S'habilita flatten-format-args per defecte.
- Rust també admet la vinculació a símbols proporcionats per DLL per ordinal en lloc de símbol amb nom, utilitzant el nou atribut #[link_ordinal].
- S'ha afegit l'opció workspace_default_members a les metadades. En executar les ordres "càrrec new" i "càrrec init", els camps de l'espai de treball s'hereten automàticament.
- Es va implementar suport de segon nivell per a la plataforma de destinació loongarch64-unknown-linux-gnu.
si estàs interessat a poder conèixer més sobre això, pots consultar els detalls a el següent enllaç.
Finalment, per als que estiguin interessats a actualitzar des d'una versió anterior de Rust instal·lada a través de rustup, es pot obtenir la nova versió de Rust 1.71.0 amb:
rustup update stable