IznÄca jauna versija Crystal, kompilÄjama programmÄÅ”anas valoda ar Ruby sintaksi, kuras galvenÄs iezÄ«mes ir izvietots Ā«event loopĀ», kurÄ visas ievades-izejas operÄcijas ir asinkronas, atbalsts daudzprocesoru apstrÄdei (paÅ”laik ieslÄdzams, kompilÄjot) un ÄrkÄrtÄ«gi viegla un Ärta darbs ar C bibliotÄm.
SÄkot ar versiju 0.34.0, valoda oficiÄli sÄk stingri virzÄ«ties uz pirmo reÄlo laidienu (t.i., versiju 1.0).
JaunajÄ Crystal versijÄ var izcelt Å”Ädas izmaiÅas un uzlabojumus svarÄ«guma secÄ«bÄ:
API ir pievienota jauna žurnÄla bibliotÄka Log, kas, atŔķirÄ«bÄ no vecÄs, spÄj sÅ«tÄ«t ziÅojumus dažÄdiem backend'iem un filtrÄt Å”os ziÅojumus atkarÄ«bÄ no Ā«avotaĀ».
Rudimenti no C izstrÄdes pasaules, Errno un WinError, kas tika izmantoti primitÄ«vajÄm ievades-izejas operÄcijÄm, atkÄpjÄs pagÄtnÄ, pateicoties izÅÄmumu hierarhijai IO::Error (tomÄr izmantot Errno neviens pagaidÄm nav aizliedzis).
Ir noÅemta automÄtiska else nil pievienoÅ”ana operatoram case/when/else. Tas izdarÄ«ts, lai izslÄgtu nejauÅ”u izlaidumu izstrÄdÄtÄjam vienÄ no filiÄlÄm when noteiktu gadÄ«jumu matchÄÅ”anÄ, piemÄram, enum un Union veidu pÄrejÄ. Proti, vienkÄrÅ”Äk sakot, Å”Äds kods vairs nedarbosies bez vÄl viena when (when Char) vai nosakot else- filiÄli:
a = 1 || āxā || "foo"
case a
when Int32
# ā¦
when String
# ā¦
end
Kompilatora opcija disable_overflow vairs nav pieejama. OperÄcijÄm ar pÄrsniegÅ”anu izmantojiet metodes &+, &-, &*.
Array#fill tagad lido ÄtrÄk par lodi, pateicoties muļķīgÄ cikla aizstÄÅ”anai ar vienkÄrÅ”u memset;
Shard pÄrvaldnieks (pakotnes), kas, kÄ tas neŔķiet dÄ«vaini, shards, tagad izmanto ÄtrÄku un efektÄ«vÄku atkarÄ«bu apmierinÄÅ”anas algoritmu Molinillo, aizÅemts no CocoaPods (Swift) un Builder (Ruby).
Pievienota atbalsta iespÄja LLVM 10, kas ideÄlÄ gadÄ«jumÄ mums dos kÄdu izpildes Ätruma, stabilitÄtes pieaugumu utt.
⦠un daudz citu, pÄc manÄm subjektÄ«vÄm domÄm, mazÄk bÅ«tisku uzlabojumu.
VÄrÅ”os pie jums, lai atzÄ«mÄtu, ka Crystal ir LLVM bÄzÄts valoda, kas ļauj rakstÄ«t lietotnes dažreiz ÄtrÄk, vieglÄk un kodolÄ«gÄk nekÄ tÄs interpretÄtÄs "mÄsas", un tam ir iespÄja izveidot diezgan Ätru binÄro failu. StilÄ tas izceļas ar pilnvÄrtÄ«gu OOP atbalstu, Ä£eneriku atbalstu un ļoti vienkÄrÅ”u un saprotamu sintaksi. TÄ mÄrÄ·is ir daudz lÄ«dzÄ«gs Nim, taÄu tas ir acÄ«mredzami orientÄts uz praktisku pielietojumu "Å”eit un tagad", pateicoties tam, tas nodroÅ”ina plaÅ”u labi dokumentÄtu un augstas kvalitÄtes rÄ«ku klÄstu API arsenÄlÄ, ko atbalsta valodas izstrÄdÄtÄji, padarot to ļoti stabilu.
Avots: linux.org.ru
