Vydanie programovacieho jazyka Crystal 1.2

Bolo zverejnené vydanie programovacieho jazyka Crystal 1.2, ktorého vývojári sa snažia spojiť pohodlie vývoja v jazyku Ruby s vysokým aplikačným výkonom charakteristickým pre jazyk C. Syntax Crystalu je blízka, ale nie je plne kompatibilná s Ruby, hoci niektoré Ruby programy bežia bez úprav. Kód kompilátora je napísaný v jazyku Crystal a distribuovaný pod licenciou Apache 2.0.

Jazyk využíva statickú kontrolu typu, implementovanú bez potreby explicitne špecifikovať typy premenných a argumentov metód v kóde. Programy Crystal sú kompilované do spustiteľných súborov, pričom makrá sa vyhodnocujú a kód sa generuje v čase kompilácie. V programoch Crystal je možné pripojiť väzby napísané v C. Paralelizácia vykonávania kódu sa vykonáva pomocou kľúčového slova „spawn“, ktoré vám umožňuje spustiť úlohu na pozadí asynchrónne, bez blokovania hlavného vlákna, vo forme ľahkých vlákien nazývaných vlákna.

Štandardná knižnica poskytuje veľkú sadu bežných funkcií vrátane nástrojov na spracovanie CSV, YAML a JSON, komponentov na vytváranie serverov HTTP a podpory WebSocket. Počas procesu vývoja je vhodné použiť príkaz „crystal play“, ktorý vygeneruje webové rozhranie (štandardne localhost:8080) na interaktívne spúšťanie kódu v jazyku Crystal.

Hlavné zmeny:

  • Pridaná možnosť priradiť podtriedu generickej triedy prvku nadradenej triedy. trieda Foo(T); koncová trieda Bar(T) < Foo(T); koniec x = Foo x = Bar
  • Makrá teraz môžu pomocou podčiarkovníka ignorovať hodnotu v slučke for. {% pre _, v, i v {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • Do makier bola pridaná metóda „file_exists?“. na kontrolu existencie súboru.
  • Štandardná knižnica teraz podporuje 128-bitové celé čísla.
  • Pridaný modul Indexable::Mutable(T) s implementáciou pokročilých operácií pre kolekcie ako BitArray a Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Pridaná metóda XML::Node#namespace_definition na extrahovanie špecifického priestoru názvov z XML.
  • Metódy IO#write_utf8 a URI.encode boli zastarané a mali by byť nahradené metódami IO#write_string a URI.encode_path.
  • Podpora pre 32-bitovú architektúru x86 bola presunutá na druhú úroveň (už sa negenerujú hotové balíčky). Pripravuje sa prechod na prvú úroveň podpory architektúry ARM64.
  • Pokračuje práca na zabezpečení plnej podpory pre platformu Windows. Pridaná podpora pre sokety Windows.
  • Pre macOS bol pridaný univerzálny balík fungujúci ako na zariadeniach s x86 procesormi, tak na zariadeniach s čipom Apple M1.

Zdroj: opennet.ru

Pridať komentár