Derxistina zimanê bernamenûsê Crystal 1.2

Serbestberdana zimanê bernamenûsê Crystal 1.2 hate weşandin, pêşdebirên ku hewil didin ku rehetiya pêşkeftina di zimanê Ruby de bi taybetmendiya performansa serîlêdana bilind a zimanê C re hev bikin. Hevoksaziya Crystal nêzîk e, lê bi tevahî bi Ruby re ne hevaheng e, her çend hin bernameyên Ruby bêyî guheztinê dimeşin. Koda berhevkar bi Crystal hatiye nivîsandin û di bin lîsansa Apache 2.0 de tê belavkirin.

Ziman kontrolkirina tîpên statîk bikar tîne, bêyî ku hewce bike ku bi eşkere cûreyên guhêrbar û argumanên rêbazê yên di kodê de were destnîşankirin. Bernameyên krîstal di pelên îcrakar de têne berhev kirin, bi makro têne nirxandin û kod di dema berhevkirinê de têne çêkirin. Di bernameyên Crystal de, gengaz e ku girêdanên ku bi C-yê hatine nivîsandin ve girêdin. Parallelîzasyona darvekirina kodê bi karanîna peyva key "spawn" ve tête kirin, ku dihêle hûn di moda asynchronous de peywirek paşîn bimeşînin bêyî astengkirina mijara sereke, di forma têlên sivik ên ku jê re fiber têne gotin.

Pirtûkxaneya standard komek mezin ji fonksiyonên hevpar peyda dike, di nav de amûrên ji bo pêvajoyê CSV, YAML, û JSON, pêkhateyên ji bo afirandina serverên HTTP, û piştgiriya WebSocket. Di dema pêvajoya pêşkeftinê de, hêsan e ku meriv emrê "lîstina krîstal" bikar bîne, ku ji bo pêkanîna înteraktîf a kodê di zimanê Crystal de navgînek malperê (localhost: 8080 bi xwerû) diafirîne.

Guhertinên sereke:

  • Kapasîteya veqetandina binklasek çînek gelemperî li hêmanek çîna dêûbav zêde kir. class Foo (T); çîna dawî Bar(T) < Foo(T); dawiya x = Foo x = Bar
  • Makro naha dikarin xêzek binî bikar bînin da ku nirxek di pêlekek for de paşguh bikin. {% ji bo _, v, i di {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% dawiya %}
  • Rêbaza "file_heye?" li makroyan zêde kir. ji bo kontrolkirina hebûna pelê.
  • Pirtûkxaneya standard niha hejmarên 128-bit piştgirî dike.
  • Modula Indexable::Mutable(T) bi pêkanîna operasyonên pêşkeftî yên ji bo berhevokên wekî BitArray û Deque ve hatî zêdekirin. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = rast # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Rêbaza XML::Node#namespace_definition zêde kir ku navekî taybetî ji XML derxe.
  • Rêbazên IO#write_utf8 û URI.encode hatine betal kirin û divê bi IO#write_string û URI.encode_path werin guhertin.
  • Piştgiriya ji bo mîmariya 32-bit x86 hate veguheztin asta duyemîn (pakêtên amade êdî nayên çêkirin). Ji bo mîmariya ARM64 veguheztina asta yekem a piştgiriyê tê amadekirin.
  • Xebat berdewam dike da ku piştgirîya tam ji bo platforma Windows-ê peyda bike. Piştgiriya ji bo soketên Windows-ê zêde kir.
  • Pakêtek gerdûnî ji bo macOS-ê hate zêdekirin, hem li ser cîhazên bi pêvajoyên x86 û hem jî li ser alavên bi çîpê Apple M1 re dixebite.

Source: opennet.ru

Add a comment