Gipagawas ang Crystal 0.34.0

Usa ka bag-ong bersyon sa Crystal ang gipagawas, usa ka gihugpong nga programming language nga adunay Ruby syntax, ang mga nag-unang bahin niini mao ang runtime nga adunay "built-in" nga event loop, diin ang tanan nga I/O operations kay asynchronous, suporta sa multithreading (basta tungod kay kini gipalihok sa usa ka bandila sa panahon sa pag-compile) ug hilabihan ka yano ug sayon ​​​​nga operasyon sa mga librarya sa C.

Sugod sa bersyon 0.34.0, ang lengguwahe opisyal nga nagsugod sa paglihok padulong sa una nga tinuod nga pagpagawas niini (ie bersyon 1.0).

Ang bag-ong bersyon sa Crystal naglakip sa mga mosunud nga pagbag-o ug pagpaayo sa han-ay sa kamahinungdanon:

  • Usa ka bag-ong logging library ang gidugang sa API Log, nga, dili sama sa karaan, makapadala og mga mensahe ngadto sa lain-laing mga backend ug magsala niini nga mga mensahe sa lahi nga paagi depende sa "tinubdan".

  • Mga sukaranan gikan sa kalibutan sa pag-uswag sa C, Errno и WinError, nga gigamit alang sa I/O primitives, nahimong usa ka butang sa nangagi salamat sa exception hierarchy IO:: Sayop (bisan pa, wala pay nagdili sa paggamit sa Errno).

  • Gikuha ang awtomatik nga pagpuli sa else nil gikan sa operator kaso/kanus-a/sa pa. Gihimo kini aron mapugngan ang developer sa aksidenteng paglaktaw sa usa sa mga sanga. sa diha nga kung ang pagpares sa mga deterministikong kaso sama sa mga enum ug pagpasa sa mga tipo gikan sa Union. Sa ato pa, sa yano nga pagkasulti, kini nga kodigo dili na molihok kung wala’y piho nga usa pa sa diha nga (sa dihang Char) o mga buluhaton lain-mga sanga:

a = 1 || 'x' || "foo"
kaso a
sa dihang ang Int32
#…
sa dihang ang String
#…
katapusan

  • Opsyon sa compiler disable_overflow dili na magamit. Para sa overflow operations, gamita ang &+, &-, &* nga mga pamaagi.

  • Array#fill karon molupad mas paspas kay sa usa ka bala, salamat sa pag-ilis sa hungog loop sa usa ka yano nga memset;

  • Manager sa shards (packages), gitawag, paradoxically, shards, karon naggamit sa mas paspas ug mas episyente nga Molinillo dependency satisfaction algorithm nga makita sa CocoaPods (Swift) ug Builder (Ruby).

  • Gidugang nga suporta LLVM 10, nga sa teoriya maghatag kanato ug pipila ka pagtaas sa produktibidad, kalig-on, ug uban pa.

... ug daghan pang uban, sa akong suhetibong opinyon, dili kaayo hinungdanon nga mga pag-uswag.

Gusto nakong timan-an nga ang Crystal usa ka pinulongan nga gitukod sa LLVM, nga nagtugot kanimo sa pagsulat sa mga aplikasyon usahay mas paspas, mas simple ug mas mubo kaysa sa gihubad nga "mga igsoon", ug sa samang higayon makakuha og usa ka medyo paspas nga binary isip resulta. Kung itandi sa Golang, kini talagsaon tungod sa hingpit nga hingpit nga OOP, suporta alang sa mga generic, ug usa ka yano ug masabtan nga syntax. Ang katuyoan niini sa kadaghanan susama sa Nim, apan sa samang higayon kini tin-aw nga naka-focus sa praktikal nga paggamit "dinhi ug karon", salamat nga kini adunay sa iyang API arsenal daghang mga dokumentado, sayon ​​ug taas nga kalidad nga mga himan, nga gisuportahan sa mga developer sa pinulongan ug busa lig-on kaayo.

Source: linux.org.ru

Idugang sa usa ka comment