Crystal 0.34.0 släppt

En ny version av Crystal har släppts, ett kompilerat programmeringsspråk med Ruby-syntax, vars huvudfunktioner är runtime med en "inbyggd" händelseslinga, där alla I/O-operationer är asynkrona, stöd för multithreading (så länge eftersom det är aktiverat av en flagga under kompilering) och extremt enkel och bekväm drift med bibliotek i C.

Från och med version 0.34.0 börjar språket officiellt gå mot sin första riktiga utgåva (dvs version 1.0).

Den nya versionen av Crystal innehåller följande ändringar och förbättringar i prioritetsordning:

  • Ett nytt loggningsbibliotek har lagts till i API:et Logga, som, till skillnad från den gamla, kan skicka meddelanden till olika backends och filtrera dessa meddelanden olika beroende på "källan".

  • Rudiment från C-utvecklingsvärlden, Errno и WinError, som används för I/O-primitiver, håller på att bli ett minne blott tack vare undantagshierarkin IO::Fel (dock ingen förbjuder att använda Errno ännu).

  • Tog bort automatisk ersättning av annat noll från operatören fall/när/annars. Detta görs för att förhindra att utvecklaren av misstag hoppar över en av grenarna. när vid matchning av deterministiska fall som uppräkningar och passerande typer från Union. Det vill säga, enkelt uttryckt, den här koden kommer inte längre att fungera utan att specificera en till när (när Char) eller uppgifter annars-grenar:

a = 1 || 'x' || "foo"
fall a
när Int32
#…
när String
#…
änden

  • Kompilatoralternativ disable_overflow inte längre tillgänglig. Använd metoderna &+, &-, &* för överflödesoperationer.

  • Array#fill flyger nu snabbare än en kula, tack vare att den dumma slingan ersätts med en enkel memset;

  • Manager för skärvor (paket), kallad, paradoxalt nog, skärvor, använder nu den snabbare och mer effektiva Molinillo algoritmen för beroendetillfredsställelse som finns i CocoaPods (Swift) och Builder (Ruby).

  • Lagt till stöd LLVM 10, vilket i teorin kommer att ge oss en viss ökning av produktivitet, stabilitet, etc.

... och många andra, enligt min subjektiva åsikt, mindre betydande förbättringar.

Jag skulle vilja notera att Crystal är ett språk byggt på LLVM, vilket låter dig skriva applikationer ibland snabbare, enklare och mer koncist än på sina tolkade "bröder", och samtidigt få en ganska snabb binär som ett resultat. Jämfört med Golang sticker den ut på grund av sin absolut fullfjädrade OOP, stöd för generika och en mycket enkel och begriplig syntax. Dess syfte liknar till stor del Nim, men samtidigt är det tydligt fokuserat på praktisk användning "här och nu", tack vare vilket det i sin API-arsenal har många väldokumenterade, bekväma och högkvalitativa verktyg, som stöds av språkutvecklare och därför mycket stabila.

Källa: linux.org.ru

Lägg en kommentar