De frijlitting fan 'e programmeartaal Crystal 1.6 is publisearre, wêrfan de ûntwikkelders besykje it gemak fan ûntwikkeling yn' e Ruby-taal te kombinearjen mei de hege applikaasjeprestaasjes karakteristyk fan 'e C-taal. De syntaksis fan Crystal is tichtby, mar net folslein kompatibel mei Ruby, hoewol guon Ruby-programma's sûnder wiziging rinne. De kompilerkoade is skreaun yn Crystal en ferspraat ûnder de Apache 2.0-lisinsje.
De taal brûkt statyske typekontrôle, ymplementearre sûnder de needsaak om de soarten fariabelen en metoadearguminten yn 'e koade eksplisyt oan te jaan. Crystal-programma's wurde kompilearre yn útfierbere bestannen, mei makro's evaluearre en koade generearre op kompilaasjetiid. Yn Crystal-programma's is it mooglik om bindingen te ferbinen skreaun yn C. Parallelisaasje fan koade-útfiering wurdt útfierd mei it kaaiwurd "spawn", wêrtroch jo in eftergrûntaak asynchronysk kinne útfiere, sûnder de haadtried te blokkearjen, yn 'e foarm fan lichtgewicht triedden neamd fezels.
De standertbibleteek biedt in grutte set fan mienskiplike funksjes, ynklusyf ark foar it ferwurkjen fan CSV, YAML, en JSON, komponinten foar it meitsjen fan HTTP-tsjinners, en WebSocket-stipe. Tidens it ûntwikkelingsproses is it handich om it kommando "crystal play" te brûken, dat in webynterface genereart (standert localhost: 8080) foar ynteraktive útfiering fan koade yn 'e Crystal-taal.
Grutte feroaringen:
- De logika foar oerladen is feroare - by it oerladen, wurde unions fan typen no beskôge foar inkele typen. Bygelyks, it útfieren fan de koade hjirûnder sil no wier útfiere ynstee fan 'a' lykas yn eardere releases. module Foo(T) einklasse Bar1 include Foo(Int32) einklasse Bar2 include Foo(Int32) end def foo(x : Foo(Int32)) 'a' end def foo(x : Bar1 | Bar2) true end foo(Bar1) .nij)
- De metoaden #system_echo en #system_raw binne ymplementearre foar alle platfoarms, wat it mooglik makke om de FileDescriptor-makro's "cooked_from_tc_mode!", "noecho_from_tc_mode!" en "raw_from_tc_mode!", en de metoaden #noecho! en #rauw! no werom nul ynstee fan de wearde fan LibC.tcsetattr.
- Ferbettere de File API, dy't no in ynterne foarwerp werombringt (werombringt File :: Info ynstee fan Crystal :: System :: FileInfo).
- Ferbettere wurk yn tolkmodus. Om tolkstipe yn te skeakeljen, kinne jo it kommando "meitsje tolk = 1" brûke.
- Nije prestaasjesoptimalisaasjes binne opnommen yn 'e kompilator en standertbibleteek.
- Ferbettere platfoarmstipe Windows yn 'e kompilator, ynklusyf foar Windows De mooglikheid tafoege om in tolk en Mutex-stipe te bouwen.
- Stipe tafoege foar Unicode 15.0 en in API ymplementearre foar normalisearjen fan Unicode-sekwinsjes.
Boarne: opennet.ru
