Erlang 29, un limbaj de programare funcțional conceput pentru dezvoltarea de aplicații distribuite, tolerante la erori, care acceptă procesare paralelă, în timp real, a fost lansat. Limbajul a fost adoptat pe scară largă în domenii precum telecomunicațiile, sistemul bancar, comerțul electronic, telefonia computerizată și mesageria instantanee. Simultan, a fost lansat și OTP 29 (Open Telecom Platform), un set de biblioteci și componente pentru dezvoltarea de sisteme distribuite în Erlang.
Principalele inovații:
- Serviciile shell și exec, precum și subsistemul SFTP, sunt dezactivate în mod implicit pe serverul SSH. Executarea codului Erlang de către utilizatorii autentificați prin SSH necesită acum o modificare a configurației. Algoritmul hibrid de schimb de chei mlkem768x25519-sha256 este activat în mod implicit în SSH.
- Configurația implicită a bibliotecii SSL setează cea mai mare prioritate algoritmului hibrid de schimb de chei rezistent la procese cuantice „x25519mlkem768”, care este o combinație între X25519 ECDH și algoritmul ML-KEM (CRYSTALS-Kyber).
- Atributul „-unsafe” a fost adăugat pentru marcarea funcțiilor ca nesigure. În biblioteca Erlang/OTP, astfel de funcții sunt marcate, iar compilatorul emite acum un avertisment pentru ele. A fost adăugată posibilitatea de a urmări apelurile către funcții nesigure și funcții fără documentație prin intermediul xref.
- Pentru a asigura funcționarea corectă a instrumentelor de compilare terțe, cum ar fi Rebar3, filtrarea apelurilor ignorate (ignore_xref) se efectuează acum direct în interiorul xref-ului.
- A fost adăugat modulul ct_doctest pentru testarea automată a exemplelor de cod din documentație.
- A fost adăugat modulul io_ansi pentru crearea de aplicații de consolă care acceptă înlocuirea secvențelor ANSI (Virtual Terminal Sequences) în terminal, de exemplu, pentru a schimba stilul și culoarea textului.
- La căutarea căilor de fișiere cu cod (PATH), directorul curent (."") a fost mutat de la prima la ultima poziție din listă și acum este verificat ultimul.
- S-a oprit generarea de asamblaje pe 32 de biți pentru Windows.
- A fost implementat un tip de date complet separat pentru înregistrări (înregistrare nativă, EEP-79), care poate fi utilizat în locul înregistrărilor tradiționale construite pe tupluri.
- A fost adăugat verificatorul „is_integer/3” pentru a verifica dacă numerele întregi se află într-un interval (de exemplu, „is_integer(I, 0, 100)”).
- Am implementat înțelegeri de liste cu valori multiple (EEP-78) care returnează mai multe elemente per iterație (de exemplu, „[-I, I || I 42 || K
Sursa: opennet.ru
