Programmeerimiskeele Crystal väljalase 1.2

Avaldatud on programmeerimiskeele Crystal 1.2 väljalase, mille arendajad püüavad ühendada Ruby keeles arendamise mugavuse C-keelele iseloomuliku kõrge rakenduste jõudlusega. Crystali süntaks on Rubyle lähedane, kuid mitte sellega täielikult ühilduv, kuigi mõned Ruby programmid töötavad ilma muudatusteta. Kompilaatori kood on kirjutatud Crystalis ja seda levitatakse Apache 2.0 litsentsi all.

Keel kasutab staatilist tüübikontrolli, mida rakendatakse ilma, et oleks vaja koodis selgelt määratleda muutujate tüüpe ja meetodi argumente. Kristallprogrammid kompileeritakse käivitatavateks failideks, mille makrosid hinnatakse ja kood genereeritakse kompileerimise ajal. Crystal programmides on võimalik ühendada C keeles kirjutatud köiteid. Koodi täitmise paralleelsus viiakse läbi märksõna "spawn" abil, mis võimaldab teil käivitada taustaülesannet asünkroonselt, põhilõimi blokeerimata, kergete lõimede, mida nimetatakse kiududeks, kujul.

Standardne teek pakub suurt hulka tavalisi funktsioone, sealhulgas tööriistu CSV, YAML ja JSON töötlemiseks, HTTP-serverite loomise komponente ja WebSocketi tuge. Arendusprotsessi käigus on mugav kasutada käsku “crystal play”, mis genereerib veebiliidese (vaikimisi localhost:8080) koodi interaktiivseks täitmiseks Crystal keeles.

Peamised muudatused:

  • Lisati võimalus määrata ülemklassi elemendile üldklassi alamklass. klass Foo(T); lõppklass Bar(T) < Foo(T); lõpp x = Foo x = baar
  • Makrod saavad nüüd kasutada alljoont, et ignoreerida for-tsükli väärtust. {% _, v, i jaoks {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% lõpp %}
  • Makrodele on lisatud meetod “file_exists?”. faili olemasolu kontrollimiseks.
  • Standardne teek toetab nüüd 128-bitiseid täisarve.
  • Lisatud Indexable::Mutable(T) moodul täiustatud toimingute rakendamisega kogude jaoks, nagu BitArray ja Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = tõene # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Lisatud XML::Node#namespace_definition meetod konkreetse nimeruumi eraldamiseks XML-ist.
  • Meetodid IO#write_utf8 ja URI.encode on aegunud ja tuleks asendada IO#write_string ja URI.encode_path-iga.
  • 32-bitise x86 arhitektuuri tugi on viidud teisele tasemele (valmis pakette enam ei genereerita). Ettevalmistamisel on üleminek ARM64 arhitektuuri toe esimesele tasemele.
  • Töö Windowsi platvormi täieliku toe tagamiseks jätkub. Lisatud tugi Windowsi pistikupesadele.
  • MacOS-ile on lisatud universaalne pakett, mis töötab nii x86 protsessoriga seadmetel kui ka Apple M1 kiibiga seadmetel.

Allikas: opennet.ru

Lisa kommentaar