Crystal 0.34.0 tu

Ẹya tuntun ti Crystal ti tu silẹ, ede siseto ti o ṣajọpọ pẹlu syntax Ruby, awọn ẹya akọkọ ti eyiti o jẹ akoko asiko pẹlu iṣẹlẹ iṣẹlẹ “itumọ ti”, ninu eyiti gbogbo awọn iṣẹ I / O jẹ asynchronous, atilẹyin fun multithreading (niwọn igba pipẹ). bi o ti n ṣiṣẹ nipasẹ asia lakoko iṣakojọpọ) ati irọrun pupọ ati irọrun pupọ pẹlu awọn ile-ikawe ni C.

Bibẹrẹ pẹlu ẹya 0.34.0, ede ni ifowosi bẹrẹ lati lọ si ọna itusilẹ gidi akọkọ rẹ (ie ẹya 1.0).

Ẹya tuntun ti Crystal pẹlu awọn ayipada atẹle ati awọn ilọsiwaju ni aṣẹ pataki:

  • A ti ṣafikun ile-ikawe gedu titun si API Wọle, eyiti, ko dabi ti atijọ, le firanṣẹ awọn ifiranṣẹ si oriṣiriṣi awọn ẹhin ati ṣe àlẹmọ awọn ifiranṣẹ wọnyi yatọ si da lori “orisun”.

  • Awọn rudiments lati agbaye ti idagbasoke C, Errno и WinError, ti a lo fun awọn ipilẹṣẹ I / O, ti n di ohun ti o ti kọja ọpẹ si awọn ilana iyasọtọ IO :: aṣiṣe (sibẹsibẹ, ko si ẹnikan ti o ṣe idiwọ lilo Errno sibẹsibẹ).

  • Yiyọ laifọwọyi fidipo miiran nil lati onišẹ irú / nigbati / miiran. Eleyi ni a ṣe ni ibere lati se awọn Olùgbéejáde lati lairotẹlẹ foo ọkan ninu awọn ẹka. Nigbawo nigbati o baamu lori awọn ọran ipinnu bi enums ati gbigbe nipasẹ awọn iru lati Union. Iyẹn ni, ni irọrun, koodu yii kii yoo ṣiṣẹ mọ laisi pato ọkan diẹ sii Nigbawo (nigbati Char) tabi awọn iṣẹ-ṣiṣe miran-awọn ẹka:

a = 1 || 'x' || "foo"
irú a
nigbati Int32
#…
nigbati Okun
#…
opin

  • Aṣayan alakojo disable_overflow ko si ohun to wa. Fun awọn iṣẹ iṣan omi, lo awọn ọna &+, &-, &*.

  • Akopọ # kun bayi fò yiyara ju ọta ibọn kan, o ṣeun lati rọpo lupu aṣiwere pẹlu memset kan ti o rọrun;

  • Alakoso ti shards (awọn idii), ti a npe ni, paradoxically, shards, bayi nlo iyara ati lilo daradara siwaju sii Molinillo itelorun igbẹkẹle igbẹkẹle algorithm ti a rii ni CocoaPods (Swift) ati Akole (Ruby).

  • Atilẹyin ti a ṣafikun LLVM 10, eyi ti o wa ni imọran yoo fun wa ni ilosoke diẹ ninu iṣẹ-ṣiṣe, iduroṣinṣin, bbl

... ati ọpọlọpọ awọn miiran, ninu ero ero-ara mi, awọn ilọsiwaju ti ko ṣe pataki.

Emi yoo fẹ lati ṣe akiyesi pe Crystal jẹ ede ti a ṣe lori LLVM, eyiti o fun ọ laaye lati kọ awọn ohun elo nigbakugba yiyara, rọrun ati diẹ sii ni ṣoki ju lori “awọn arakunrin” ti a tumọ rẹ, ati ni akoko kanna gba alakomeji ti o yara bi abajade. Ti a ṣe afiwe si Golang, o duro jade nitori OOP ti o ni kikun ni kikun, atilẹyin fun awọn jeneriki, ati ọna ti o rọrun pupọ ati oye. Idi rẹ jẹ eyiti o jọra si Nim, ṣugbọn ni akoko kanna o ni idojukọ kedere lori lilo ilowo “nibi ati ni bayi”, o ṣeun si eyiti o ni ninu ohun ija API rẹ ọpọlọpọ awọn iwe-ipamọ daradara, irọrun ati awọn irinṣẹ to gaju, ni atilẹyin nipasẹ awọn ede Difelopa ati nitorina gan idurosinsin.

orisun: linux.org.ru

Fi ọrọìwòye kun