Rilaxx tal-lingwa ta' programmar Crystal 1.2

Ġie ppubblikat ir-rilaxx tal-lingwa ta 'programmar Crystal 1.2, li l-iżviluppaturi tagħha qed jippruvaw jgħaqqdu l-konvenjenza tal-iżvilupp fil-lingwa Ruby mal-karatteristika ta' prestazzjoni għolja tal-applikazzjoni tal-lingwa C. Is-sintassi ta' Crystal hija qrib, iżda mhux kompatibbli b'mod sħiħ ma', Ruby, għalkemm xi programmi Ruby jaħdmu mingħajr modifika. Il-kodiċi tal-kompilatur huwa miktub fi Crystal u mqassam taħt il-liċenzja Apache 2.0.

Il-lingwa tuża verifika tat-tip statiku, implimentata mingħajr il-ħtieġa li tispeċifika b'mod espliċitu t-tipi ta 'varjabbli u argumenti tal-metodu fil-kodiċi. Il-programmi Crystal huma kkompilati f'fajls eżekutibbli, b'macros evalwati u kodiċi ġġenerat fil-ħin tal-kompilazzjoni. Fil-programmi Crystal, huwa possibbli li tikkonnettja rbit miktuba f'Ċ. Il-parallelizzazzjoni tal-eżekuzzjoni tal-kodiċi titwettaq bl-użu tal-kelma prinċipali "spawn", li tippermettilek tmexxi kompitu fl-isfond b'mod asinkroniku, mingħajr ma timblokka l-ħajt prinċipali, fil-forma ta 'ħjut ħfief imsejħa fibri.

Il-librerija standard tipprovdi sett kbir ta 'funzjonijiet komuni, inklużi għodod għall-ipproċessar ta' CSV, YAML, u JSON, komponenti għall-ħolqien ta 'servers HTTP, u appoġġ WebSocket. Matul il-proċess ta 'żvilupp, huwa konvenjenti li tuża l-kmand "plays tal-kristall", li jiġġenera interface tal-web (localhost:8080 b'mod awtomatiku) għall-eżekuzzjoni interattiva tal-kodiċi fil-lingwa Crystal.

Bidliet ewlenin:

  • Miżjud il-kapaċità li tassenja subklassi ta 'klassi ġenerika għal element ta' klassi ġenitur. klassi Foo(T); klassi tat-tmiem Bar(T) < Foo(T); tarf x = Foo x = Bar
  • Macros issa jistgħu jużaw underscore biex jinjoraw valur f'for loop. {% għal _, v, i fi {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% tmiem %}
  • Miżjud il-metodu “file_exists?” mal-macros. biex tiċċekkja l-eżistenza ta’ fajl.
  • Il-librerija standard issa tappoġġja interi 128-bit.
  • Miżjud Indexable::Mutable(T) modulu bl-implimentazzjoni ta 'operazzjonijiet avvanzati għal kollezzjonijiet bħal BitArray u Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = veru # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Miżjud XML::Node#namespace_definition metodu biex jiġi estratt namespace speċifiku minn XML.
  • Il-metodi IO#write_utf8 u URI.encode ġew deprecati u għandhom jiġu sostitwiti b'IO#write_string u URI.encode_path.
  • L-appoġġ għall-arkitettura x32 86-bit ġie mċaqlaq għat-tieni livell (pakketti lesti m'għadhomx iġġenerati). Qed jitħejja trasferiment għall-ewwel livell ta 'appoġġ għall-arkitettura ARM64.
  • Ikompli l-ħidma biex jiġi żgurat appoġġ sħiħ għall-pjattaforma Windows. Appoġġ miżjud għas-sokits tal-Windows.
  • Ġie miżjud pakkett universali għal macOS, li jaħdem kemm fuq apparati bi proċessuri x86 kif ukoll fuq tagħmir biċ-ċippa Apple M1.

Sors: opennet.ru

Żid kumment