I-Crystal 0.34.0 ikhishwe

Kukhishwe inguqulo entsha ye-Crystal, ulimi lohlelo oluhlanganisiwe ne-syntax ye-Ruby, izici eziyinhloko okuyi-runtime nge-loop yomcimbi "eyakhelwe ngaphakathi", lapho yonke imisebenzi ye-I / O i-asynchronous, ukusekelwa kokufunda okuningi (isikhathi eside njengoba inikwe amandla ifulege ngesikhathi sokuhlanganiswa) kanye nokusebenza okulula kakhulu futhi okulula nemitapo yolwazi ku-C.

Kusukela kunguqulo 0.34.0, ulimi luqala ngokusemthethweni ukuya ekukhululweni kwalo kwangempela (okungukuthi inguqulo 1.0).

Inguqulo entsha ye-Crystal ihlanganisa izinguquko ezilandelayo kanye nentuthuko ngokulandelana kokubaluleka:

  • Ilabhulali entsha yokungena yengezwe ku-API Ngena, okuyinto, ngokungafani nendala, engathumela imilayezo kuma-backend ahlukene futhi ihlunge le milayezo ngokuhlukile kuye ngokuthi "umthombo".

  • Ama-rudiments avela emhlabeni wokuthuthukiswa kwe-C, Errno ΠΈ I-WinError, esetshenziselwa i-I/O primitives, isiba yinto yesikhathi esidlule ngenxa yesigaba esihlukile IO::Iphutha (kodwa-ke, akekho ovimbela ukusebenzisa i-Errno okwamanje).

  • Kukhishwe ukufaka esikhundleni okuzenzakalelayo kokunye akukho ku-opharetha icala/nini/okunye. Lokhu kwenzelwa ukuvimbela umthuthukisi ukuthi angeqe ngephutha elinye lamagatsha. nini uma kuqhathaniswa ezimweni ezinqumayo ezifana nama-enum kanye nokudlula ezinhlotsheni ezivela kuNyunyana. Okusho ukuthi, ukubeka kalula, le khodi ngeke isasebenza ngaphandle kokucacisa eyodwa futhi nini (uma Char) noma imisebenzi futhi-amagatsha:

a = 1 || 'x' || "foo"
icala a
lapho Int32
#…
lapho String
#…
ekupheleni

  • Inketho ye-Compiler khubaza_ukuchichima ayisatholakali. Ukuze uthole imisebenzi echichimayo, sebenzisa &+, &-, &* izindlela.

  • Uhlu#gcwalisa manje indiza ngokushesha kunenhlamvu, ngenxa yokushintsha iluphu eyisiphukuphuku nge-memset eyodwa elula;

  • Umphathi wama-shards (amaphakheji), abizwa, ngokuxakayo, izingcezwana, manje isebenzisa i-algorithm esheshayo nesebenza kahle kakhulu yokwaneliseka kokuxhomekeka kwe-Molinillo etholakala ku-CocoaPods (Swift) kanye ne-Builder (Ruby).

  • Ukwesekwa okwengeziwe LLVM 10, okuzosinikeza ukwanda kokukhiqiza, ukuzinza, njll.

... nokunye okuningi, ngokombono wami oqondile, ukuthuthukiswa okungabalulekile kangako.

Ngithanda ukuqaphela ukuthi i-Crystal iwulimi olwakhelwe ku-LLVM, olukuvumela ukuthi ubhale izinhlelo zokusebenza ngezinye izikhathi ngokushesha, kulula futhi kafushane kakhudlwana kunaku "abafowabo" abahunyushwayo, futhi ngesikhathi esifanayo uthole kanambambili esheshayo njengomphumela. Uma iqhathaniswa ne-Golang, igqama ngenxa ye-OOP yayo egcwele ngokuphelele, ukusekelwa kwezinto ezijwayelekile, kanye ne-syntax elula kakhulu neqondakalayo. Inhloso yayo ifana kakhulu ne-Nim, kodwa ngasikhathi sinye igxile ngokusobala ekusetshenzisweni okungokoqobo β€œlapha namanje”, ngenxa yalokho enamathuluzi amaningi abhalwe kahle, alula futhi aphezulu, asekelwa yi-API. abathuthukisi bolimi futhi ngenxa yalokho bazinzile kakhulu.

Source: linux.org.ru

Engeza amazwana