Lëshimi i gjuhës programuese Hare 0.26

Drew DeVault, autor i mjedisit të përdoruesit Sway, klientit të email-it Aerc dhe platformës së zhvillimit bashkëpunues SourceHut, ka publikuar versionin 0.26.0 të gjuhës së programimit Hare. Hare reklamohet si një gjuhë programimi sistemesh e ngjashme me C, por më e thjeshtë se C. Kodi burimor i përpiluesit dhe zinxhirit të mjeteve janë të licencuar sipas GPLv3, dhe kodi standard i bibliotekës është i licencuar sipas MPL (Licenca Publike Mozilla).

Gjuha është e optimizuar për zgjidhjen e problemeve të nivelit të ulët si zhvillimi i sistemeve operative, përpiluesit, aplikacionet e rrjetit dhe shërbimet e sistemit që kërkojnë performancë maksimale dhe kontroll të plotë mbi ekzekutimin. Gjuha përdor menaxhimin manual të kujtesës dhe një sistem të tipit statik, në të cilin çdo ndryshore duhet t'i caktohet në mënyrë eksplicite një lloj specifik.

Për të ekzekutuar aplikacionin, ofrohet një kohë minimale ekzekutimi dhe për zhvillim, shpërndahet një bibliotekë standarde funksionesh, duke siguruar akses në ndërfaqet bazë të sistemit operativ, si dhe duke ofruar funksione për të punuar me algoritme standarde, protokolle dhe formate, duke përfshirë mjete për përdorimin e shprehjeve të rregullta dhe enkriptimit. Për zhvillimin e aplikacioneve grafike, është duke u zhvilluar paketa e veglave Hare-wayland, si dhe lidhjet për aksesin në aftësitë e GTK, Vulkan, OpenGL, SDL3 dhe libui.

NĂ« versionin e ri:

  • U shtua konstrukti i ciklit "for(
){
} else {
}" dhe aftĂ«sia pĂ«r tĂ« pĂ«rdorur njĂ« cikli si shprehje pĂ«r caktimin e njĂ« vlere nĂ« njĂ« variabĂ«l "item = for(
){
}". Vlera qĂ« do t'i caktohet variablit mund tĂ« kthehet kur cikli ndĂ«rpritet nga shprehja "break value" ose duke specifikuar "yield default_value" nĂ« bllokun "else{
}" tĂ« bashkangjitur nĂ« ciklin, i cili thirret nĂ«se cikli nuk ndĂ«rpritet nga break. const item = for (let sample .. items) { if (item.key == key) { break item; }; } else { yield -1; };
  • U shtua mundĂ«sia pĂ«r tĂ« pĂ«rdorur caktimin e vlerĂ«s "_" pĂ«r tĂ« injoruar trajtimin e gabimeve (nĂ«se ndodh njĂ« gabim, nuk do tĂ« ngrihet asnjĂ« pohim). _ = os::remove(«/some/file»);
  • U shtua mundĂ«sia pĂ«r tĂ« pĂ«rdorur vlerĂ«n "_" pĂ«r tĂ« krijuar fusha pa emĂ«r nĂ« struktura. Fusha tĂ« tilla mund tĂ« pĂ«rdoren pĂ«r mbushje shtesĂ«. export type my_struct = struct @packed { x: u32, // offset: 0 _: u8, // offset: 4 y: u64, // offset: 5 };
  • Tani Ă«shtĂ« e mundur tĂ« lihen nĂ« mĂ«nyrĂ« eksplicite variablat dhe fushat nĂ« struktura nĂ« njĂ« gjendje tĂ« painicializuar duke u caktuar atyre vlerĂ«n "@undefined". MĂ« parĂ«, gjuha kĂ«rkonte qĂ« tĂ« gjitha variablat lokale dhe globale tĂ« inicializoheshin nĂ« kohĂ«n e krijimit. LĂ«nia e tyre tĂ« painicializuara mund tĂ« jetĂ« e nevojshme kur njĂ« variabĂ«l duhet tĂ« inicializohet mĂ« vonĂ«, jo nĂ« kohĂ«n e deklarimit, pĂ«r shembull, kur njĂ« tregues pĂ«r njĂ« variabĂ«l qĂ« funksioni duhet ta inicializojĂ« i kalohet njĂ« funksioni. le x: my_object = @undefined;
  • Shtuar mbĂ«shtetje pĂ«r sistemin operativ Dragonfly BSD. MbĂ«shtetur mĂ« parĂ« Linux, FreeBSD, NetBSD dhe OpenBSD.

Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster