Lëshimi i gjuhës së programimit Crystal 1.6

ËshtĂ« publikuar rrethi i gjuhĂ«s sĂ« programimit Crystal 1.6, zhvilluesit e tĂ« cilit po pĂ«rpiqen tĂ« bashkojnĂ« lehtĂ«sinĂ« e zhvillimit nĂ« gjuhĂ«n Ruby me performancĂ«n e lartĂ« tĂ« aplikacioneve, qĂ« Ă«shtĂ« karakteristike pĂ«r gjuhĂ«n C. Sintaksa e Crystal Ă«shtĂ« afĂ«r gjuhĂ«s Ruby, por nuk Ă«shtĂ« plotĂ«sisht e pĂ«rshtatshme pĂ«r tĂ«, megjithatĂ«, disa programe ruby ekzekutohen pa modifikime. Kodi i kompilatorit Ă«shtĂ« shkruar nĂ« gjuhĂ«n Crystal dhe shpĂ«rndahet nĂ«n licencĂ«n Apache 2.0.

Gjuha përdor kontroll të tipave në mënyrë statike, e implementuar pa nevojën për ta specifikuar qartë tipin e variablave dhe argumenteve të metodave në kod. Programet në Crystal kompilohen në skedarë ekzekutivë, me llogaritjen e makros dhe gjenerimin e kodit gjatë kompilimit. Në programet në gjuhën Crystal, është e mundur të lidhen binde të shkruara në gjuhën C. Parallelizimi i ekzekutimit të kodit bëhet me ndihmën e fjalës kyçe "spawn", e cila lejon ekzekutimin e një detyre sfondore në mënyrë asinkrone, pa bllokuar rrjedhën kryesore, në formën e rrjedhave të lehta, të njohura si fibera (Fiber).

Biblioteka standarde ofron një grup të gjerë funksionesh të zakonshme, duke përfshirë mjete për procesimin e CSV, YAML, dhe JSON, komponente për krijimin e serverëve HTTP dhe mbështetje për WebSocket. Gjatë zhvillimit, është e dobishme të përdorësh komandën "crystal play" e cila formon një ndërfaqe web (në mënyrë të parazgjedhur localhost:8080) për ekzekutimin interaktiv të kodit në gjuhën Crystal.

Ndryshimet kryesore:

  • Logjika e ngarkesĂ«s Ă«shtĂ« ndryshuar — kur ngarkohet bashkimi i tipave, tani shqyrtohen mĂ« parĂ« tipet individuale. PĂ«r shembull, ekzekutimi i kodit qĂ« vijon do tĂ« kthejĂ« vlerĂ«n true, dhe jo ‘a’, siç ishte nĂ« versionet e kaluara. module Foo(T) end class Bar1 include Foo(Int32) end class Bar2 include Foo(Int32) end def foo(x : Foo(Int32)) ‘a’ end def foo(x : Bar1 | Bar2) true end foo(Bar1.new)
  • Metodat #system_echo dhe #system_raw janĂ« implementuar pĂ«r tĂ« gjitha platformat, çka ka lejuar qĂ« makrosĂ«t e klasĂ«s FileDescriptor «cooked_from_tc_mode!», «noecho_from_tc_mode!» dhe «raw_from_tc_mode!» tani tĂ« konsiderohen tĂ« vjetra, ndĂ«rsa metodat #noecho! dhe #raw! tani kthejnĂ« nil nĂ« vend tĂ« vlerĂ«s LibC.tcsetattr.
  • API i File Ă«shtĂ« pĂ«rmirĂ«suar, i cili tani kthen objektin e brendshĂ«m (kthehet File::Info nĂ« vend tĂ« Crystal::System::FileInfo).
  • Puna nĂ« modin e interpreterit Ă«shtĂ« pĂ«rmirĂ«suar. PĂ«r tĂ« aktivizuar mbĂ«shtetje pĂ«r interpreterin, mund tĂ« pĂ«rdorni komandĂ«n «make interpreter = 1».
  • OptimizaciĂłnet e reja tĂ« performancĂ«s janĂ« pĂ«rfshirĂ« nĂ« kompilator dhe bibliotekĂ«n standarde.
  • MbĂ«shtetje e pĂ«rmirĂ«suar pĂ«r platformĂ«n Windows nĂ« kompilator, duke pĂ«rfshirĂ« mundĂ«sinĂ« pĂ«r tĂ« ndĂ«rtuar interpreterin dhe mbĂ«shtetje pĂ«r Mutex.
  • MbĂ«shtetje pĂ«r Unicode 15.0 Ă«shtĂ« e sapo shtuar dhe Ă«shtĂ« implementuar API pĂ«r normalizimin e sekuencave Unicode.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster