A Crystal programozási nyelv kiadása 1.6

Megjelent a Crystal 1.6 programozási nyelv kiadása, melynek fejlesztői igyekeznek ötvözni a Ruby nyelven való fejlesztés kényelmét a C nyelvben rejlő magas alkalmazásteljesítménnyel. A Crystal szintaxisa közel áll a Rubyhoz, de nem teljesen kompatibilis vele, annak ellenére, hogy egyes rubinprogramok átdolgozás nélkül futnak. A fordítókód Crystal nyelven íródott, és az Apache 2.0 licenc alatt kerül terjesztésre.

A nyelv statikus típusellenőrzést használ, így nincs szükség arra, hogy a változótípusokat és a metódusargumentumokat explicit módon meg kelljen adni a kódban. A Crystal programok végrehajtható fájlokba fordíthatók, makrókiértékeléssel és kódgenerálással a fordítási időben. A Crystal programok tartalmazhatnak C nyelven írt kötéseket. A párhuzamos kódfuttatás a "spawn" kulcsszó használatával érhető el, amely lehetővé teszi a háttérfeladatok aszinkron indítását, a fő szál blokkolása nélkül, könnyű, fibereknek nevezett szálak formájában.

A szabványos könyvtár általános funkciók széles készletét kínálja, beleértve a CSV, a YAML és a JSON kezelésére szolgáló eszközöket, a HTTP-kiszolgálók építéséhez szükséges összetevőket és a WebSocket támogatást. A fejlesztési folyamat során kényelmesen használható a „crystal play” parancs, amely webes felületet (alapértelmezés szerint localhost:8080) generál az interaktív kódvégrehajtáshoz Crystal nyelven.

Nagy változások:

  • A túlterhelés logikája megváltozott – a típusok unióit mostantól az egyes típusok előtt veszi figyelembe túlterheléskor. Például a következő kód futtatása mostantól igaz értéket ad ki az 'a' helyett, mint a korábbi kiadásokban: 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)
  • A #system_echo és #system_raw metódusok minden platformon implementálódtak, így a "cooked_from_tc_mode!", "noecho_from_tc_mode!" és "raw_from_tc_mode!" FileDescriptor makrók elavultak, a #noecho! és #raw! metódusok pedig mostantól nil értéket adnak vissza a LibC.tcsetattr érték helyett.
  • Továbbfejlesztettük a File API-t, hogy mostantól egy belső objektumot adjon vissza (File::Info-t ad vissza a Crystal::System::FileInfo helyett).
  • Javított teljesítmény interpreter módban. Az interpreter támogatás engedélyezéséhez használd a „make interpreter = 1” parancsot.
  • Új teljesítményoptimalizálási funkciók kerültek be a fordítóba és a standard könyvtárba.
  • Továbbfejlesztett platformtámogatás Windows a fordítóban, beleértve a Windows Hozzáadva a lehetőség interpreter és Mutex támogatás létrehozására.
  • Hozzáadva a Unicode 15.0 támogatása és egy API implementálása az Unicode szekvenciák normalizálásához.

Forrás: opennet.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster