Kutolewa kwa lugha ya programu ya Crystal 1.2

Kutolewa kwa lugha ya programu ya Crystal 1.2 imechapishwa, watengenezaji ambao wanajaribu kuchanganya urahisi wa maendeleo katika lugha ya Ruby na sifa ya juu ya utendaji wa lugha ya C. Sintaksia ya Crystal iko karibu na, lakini haiendani kikamilifu na, Ruby, ingawa programu zingine za Ruby huendesha bila kubadilishwa. Nambari ya mkusanyaji imeandikwa kwa Crystal na kusambazwa chini ya leseni ya Apache 2.0.

Lugha hutumia ukaguzi wa aina tuli, unaotekelezwa bila hitaji la kutaja kwa uwazi aina za vigeuzo na hoja za mbinu katika msimbo. Programu za kioo zinajumuishwa katika faili zinazoweza kutekelezwa, na macros tathmini na kanuni zinazozalishwa kwa wakati wa kukusanya. Katika programu za Crystal, inawezekana kuunganisha vifungo vilivyoandikwa kwa C. Ulinganifu wa utekelezaji wa kanuni unafanywa kwa kutumia neno la msingi la "spawn", ambayo inakuwezesha kuendesha kazi ya nyuma kwa usawa, bila kuzuia thread kuu, kwa namna ya nyuzi nyepesi zinazoitwa nyuzi.

Maktaba ya kawaida hutoa seti kubwa ya vitendaji vya kawaida, ikijumuisha zana za kuchakata CSV, YAML, na JSON, vipengele vya kuunda seva za HTTP, na usaidizi wa WebSocket. Wakati wa mchakato wa ukuzaji, ni rahisi kutumia amri ya "kucheza kwa fuwele", ambayo hutengeneza kiolesura cha wavuti (localhost:8080 kwa chaguo-msingi) kwa utekelezaji mwingiliano wa msimbo katika lugha ya Kioo.

Mabadiliko kuu:

  • Imeongeza uwezo wa kukabidhi darasa dogo la darasa la kawaida kwa kipengele cha darasa la mzazi. darasa Foo(T); Darasa la mwisho Bar(T) < Foo(T); mwisho x = Foo x = Mwamba
  • Macros sasa inaweza kutumia mstari wa chini ili kupuuza thamani katika kitanzi. {% kwa _, v, i katika {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% mwisho %}
  • Imeongeza njia ya "faili_exist?" kwa macros. kuangalia uwepo wa faili.
  • Maktaba ya kawaida sasa inasaidia nambari kamili za biti 128.
  • Imeongezwa Kielezo::Moduli Inayoweza Kubadilika(T) yenye utekelezaji wa utendakazi wa hali ya juu kwa makusanyo kama vile BitArray na Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = kweli # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Njia ya ufafanuzi ya XML::Node#namespace_definition ili kutoa nafasi mahususi ya jina kutoka kwa XML.
  • Mbinu za IO#write_utf8 na URI.encode zimeacha kutumika na zinafaa kubadilishwa na IO#write_string na URI.encode_path.
  • Usaidizi wa usanifu wa 32-bit x86 umehamishwa hadi kiwango cha pili (vifurushi vilivyotengenezwa tayari havijazalishwa tena). Uhamisho hadi kiwango cha kwanza cha usaidizi wa usanifu wa ARM64 unatayarishwa.
  • Kazi inaendelea ili kuhakikisha msaada kamili kwa jukwaa la Windows. Msaada ulioongezwa kwa soketi za Windows.
  • Kifurushi cha ulimwengu wote kimeongezwa kwa macOS, kinachofanya kazi kwenye vifaa vilivyo na vichakataji vya x86 na kwenye vifaa vilivyo na chip ya Apple M1.

Chanzo: opennet.ru

Kuongeza maoni