Kutulutsidwa kwa chilankhulo cha pulogalamu ya Crystal 1.2

Kutulutsidwa kwa chinenero cha pulogalamu ya Crystal 1.2 kwasindikizidwa, omwe akuyambitsa omwe akuyesera kugwirizanitsa chitukuko cha chinenero cha Ruby ndi mawonekedwe apamwamba a chinenero cha C. Syntax ya Crystal ili pafupi, koma sagwirizana kwathunthu ndi, Ruby, ngakhale mapulogalamu ena a Ruby amayenda popanda kusinthidwa. Khodi yophatikiza imalembedwa ku Crystal ndikugawidwa pansi pa layisensi ya Apache 2.0.

Chilankhulochi chimagwiritsa ntchito kuwunika kwamtundu wa static, kukhazikitsidwa popanda kufunikira kulongosola momveka bwino mitundu yamitundu ndi njira zotsutsana mu code. Mapulogalamu a Crystal amapangidwa kukhala mafayilo otheka, ndi ma macros amawunikidwa ndi ma code omwe amapangidwa panthawi yophatikiza. M'mapulogalamu a Crystal, ndizotheka kulumikiza zomangira zolembedwa mu C. Kufanana kwa ma code execution kumachitika pogwiritsa ntchito mawu ofunikira a "spawn", omwe amakulolani kuyendetsa ntchito yakumbuyo mosagwirizana, popanda kutsekereza ulusi waukulu, ngati ulusi wopepuka wotchedwa ulusi.

Laibulale yokhazikika imapereka ntchito zambiri zofananira, kuphatikiza zida zosinthira CSV, YAML, ndi JSON, zida zopangira ma seva a HTTP, ndi chithandizo cha WebSocket. Panthawi yachitukuko, ndi bwino kugwiritsa ntchito lamulo la "crystal play", lomwe limapanga mawonekedwe a intaneti (localhost:8080 mwachisawawa) kuti agwiritse ntchito code mu chinenero cha Crystal.

Zosintha zazikulu:

  • Anawonjezera luso logawira gulu laling'ono la kalasi yanthawi zonse ku gawo la kalasi ya makolo. kalasi Foo(T); End class Bar(T) < Foo(T); mapeto x = Foo x = Bar
  • Macros tsopano atha kugwiritsa ntchito underscore kunyalanyaza mtengo wa loop. {% kwa _, v, i mu {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% mapeto %}
  • Njira yowonjezera "file_exists?" ku macros. kuti muwone ngati fayilo ilipo.
  • Laibulale yokhazikika tsopano imathandizira ma 128-bit integers.
  • Added Indexable ::Mutable (T) module yokhala ndi ntchito zapamwamba pazosonkhanitsa monga BitArray ndi Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = zoona # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • XML Yowonjezedwa::Node#namespace_definition njira yochotsera malo enaake ku XML.
  • Njira za IO#write_utf8 ndi URI.encode zachotsedwa ndipo ziyenera kusinthidwa ndi IO#write_string ndi URI.encode_path.
  • Thandizo la zomangamanga za 32-bit x86 zasunthidwa kupita ku gawo lachiwiri (maphukusi okonzeka sakupangidwanso). Kusamutsira ku gawo loyamba lothandizira zomanga za ARM64 zikukonzekera.
  • Ntchito ikupitiliza kuonetsetsa kuti chithandizo chonse cha Windows chikuthandizira. Thandizo lowonjezera la soketi za Windows.
  • Phukusi lapadziko lonse lapansi lawonjezedwa la macOS, likugwira ntchito pazida zokhala ndi ma processor a x86 komanso pazida zomwe zili ndi Apple M1 chip.

Source: opennet.ru

Kuwonjezera ndemanga