Rust este un limbaj de programare compilat, multi-paradigmă, de uz general.
Lansarea noii versiuni stabile a popularului limbaj de programare Rust 1.7.3 a fost anunțată recent . În această versiune, dezvoltatorii evidențiază modificări care permit afișarea acum a unui mesaj personalizat pentru mesajele de eroare „panică”, precum și stabilizarea unor API-uri, diverse îmbunătățiri și multe altele.
Pentru cei care nu sunt familiarizați cu acest limbaj de programare, acesta se concentrează pe siguranța memoriei și oferă mijloacele pentru a obține un paralelism ridicat al joburilor, evitând în același timp utilizarea unui colector de gunoi și a runtime-ului (runtime-ul este redus la inițializarea de bază și întreținerea bibliotecii standard).
Metodele de gestionare a memoriei din Rust scutesc dezvoltatorul de erori la manipularea pointerilor și îl protejează împotriva problemelor care apar din cauza gestionării memoriei la nivel scăzut, cum ar fi accesarea unei zone de memorie după ce aceasta a fost eliberată, dereferențierea pointerilor nuli, depășirea bufferului etc.
Principalele caracteristici noi ale Rust 1.7.3
În această nouă versiune de Rust 1.7.3, așa cum am menționat la început, una dintre cele mai notabile caracteristici noi ale acestei versiuni este reproiectarea formatului mesajelor emise de macro-ul „panic!”, care este gestionarea implicită a erorilor programului. Practic, atunci când apare o eroare, aceasta va afișa un mesaj pe ecran, va șterge memoria și va închide programul.
Odată cu îmbunătățirile introduse în această versiune, textul specificat (care anterior era implicit) în macrocomanda de panică este acum afișat pe o linie separată, fără ghilimele , ceea ce face mesajul mai ușor de citit și eliminând confuzia cauzată de ghilimele imbricate sau de întreruperile de rând. A fost adăugată și posibilitatea de a plasa un mesaj personalizat direct în linie, în loc de între ghilimele . În plus, mesajele de panică produse de assert_eq și assert_ne au fost modificate, mutând mesajul personalizat și eliminând unele semne de punctuație inutile.
O altă modificare notabilă a acestei noi versiuni se bazează pe propunerea din RFC 3184 , care propune practic posibilitatea de a manipula direct cheile de stocare locală ale thread-urilor LocalKey, LocalKey<Cell<T>> și LocalKey<RefCell<T>> folosind metodele get(), set(), take() și au fost adăugate metodele replace(), ceea ce elimină necesitatea unui cod de inițializare suplimentar pentru valorile implicite specificate pentru thread-urile noi folosind macro-ul „thread_local!”.
În ceea ce privește îmbunătățirile aduse Cargo, merită menționat faptul că a fost adăugată posibilitatea de a afișa variabile de mediu în modul extra-detaliat (-vv), precum și faptul că acum se afișează versiunile pachetelor în graficul timpilor de încărcare și că a fost corectată afișarea mai multor mesaje de avertizare pentru câmpurile neutilizate.
Alte modificări notabile din această nouă versiune includ:
- S-a mutat o nouă parte a API-ului în categoria stabilă, inclusiv metode și implementări de trăsături.
- Compilatorul oferă înregistrarea informațiilor despre versiune în secțiunea „.comment”, similar cu GCC și Clang.
- Al treilea nivel de suport a fost implementat pentru diferite platforme. Al treilea nivel implică suport de bază, dar fără testare automată, publicarea versiunilor oficiale și verificarea compilabilității codului.
- A fost implementat al doilea nivel de suport pentru platforma țintă wasm32-wasi-preview1-threads. Al doilea nivel de suport presupune o garanție de montaj.
- S-a adăugat documentație despre manipularea simbolului v0.
ABI extern stabilizat „thiscall” și „thiscall-unwind”. - Deduce tipul în modele de tăiere irefutabile cu lungime fixă ca matrice.
- Implicațiile trăsăturilor automate implicite sunt acum excluse dacă există unele specifice.
Dacă sunteți interesați să aflați mai multe, puteți găsi detalii la linkul următor.
În cele din urmă, pentru cei interesați să facă upgrade de la o versiune anterioară de Rust instalată prin rustup, noua versiune de Rust 1.73.0 poate fi obținută cu:
rustup update stable
Dacă nu aveți deja instalat Rust pe sistemul dvs., puteți face acest lucru rulând următoarea comandă într-un terminal:
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh