Drew DeVault, Sway kasutajakeskkonna, Aerc e-posti kliendi ja SourceHut koostööplatvormi looja, on avaldanud programmeerimiskeele Hare versiooni 0.24.2 (versiooni number koosneb 0.YY.Q, kus YY on aasta viimased kaks numbrit ja Q on kvartali number). Hare tutvustatakse süsteemiprogrammeerimise keelena, mis on sarnane C-keelele, kuid lihtsam kui C. Kompilaatori ja tööriistade lähtekood levitatakse GPLv3 litsentsi alusel, standardraamatukogu kood aga MPL (Mozilla Public License) litsentsiga.
Keel on optimeeritud madala taseme ülesannete lahendamiseks, nagu operatsioonisüsteemide, kompilaatorite, võrgurakenduste ja süsteemide utiliitide arendamine, kus nõutakse maksimaalset jõudlust ja täielikku kontrolli täitmise üle. Keeles kasutatakse käsitsi mälu haldust ja staatilist tüübivormi, kus igale muutujale peab olema selgelt määratud kindel tüüp.
Rakenduse täitmiseks on pakutud minimaalne runtime, arendamiseks on saadaval standardne funktsioonide raamatukogu, mis annab juurdepääsu operatsioonisüsteemi põhiliidesele ning pakub funktsioone tüüpiliste algoritmide, protokollide ja formaatide töötlemiseks, sealhulgas vahendeid regulaaravaldiste ja krüpteerimise rakendamiseks. Graafikarakenduste arendamiseks on välja töötatud tööriistade komplekt hare-wayland ning sidemed, et pääseda juurde GTK, Vulkan, OpenGL, SDL2 ja libui võimalustele.
Uues versioonis:
- Lisatud tugi NetBSD operatsioonisüsteemile (lisaks varasemale toele OpenBSD, FreeBSD ja Linuxile).
- Lisatud süntaks for-each tsüklite määramise jaoks, mis lihtsustab massiivide ja lõikude elementide läbimist. let items = [1, 2, 3, 4, 5]; for (let item .. items) { fmt::println(item)!; };
- Antud on võimalus defineerida funktsioonide valikulisi parameetreid, mille vaikimisi väärtus määratakse funktsiooni määramisel. fn example(x: int, y: int = 34) void = { // … }; example(12); //võrdub kutsumisega example(12, 34);
- Bufio mooduli ja sellega seotud API-de, nagu unix::resolvconf, unix::hosts ja unix::passwd, jõudlust on parendatud, mis kasutavad puhversisendust/väljastust.
- Moodulis „regex::“ on regulaaravaldustes sisse toodud võimalus kasutada malle kujul „(ha|py|sh)“, et loetleda mitu valikuvarianti.
- Lisa toetust jagatud mälule (shm_open) ja memfd mehhanismile, mis võimaldab tuvastada mäluala protsesside vahel edastatava faili descriptoriga. Jagatud mälu saab kasutada protsessidevaheliseks ja protsessisiseseiseks suhtlemiseks, näiteks on see juba kasutusel kliendi rakenduses ja serverile Wayland hare-wayland.
- Lisa krüptograafilised funktsioonid crypto::ec, crypto::ecdh ja crypto::ecdsa.
Allikas: opennet.ru
