Den nya versionen av Crystal, det kompileringstekniska programmeringssprÄket med Ruby-syntax, har huvudsakliga funktioner som en runtime med en "inbyggd" event loop, dÀr alla in- och utdataoperationer Àr asynkrona, stöd för flerkörning (för nÀrvarande aktiveras det med en flagga vid kompilering) samt en exceptionellt enkel och bekvÀm hantering av C-bibliotek.
FrÄn och med version 0.34.0 börjar sprÄket officiellt att ta stora steg mot sin första riktiga release (dvs version 1.0).
I den nya versionen av Crystal kan följande förÀndringar och förbÀttringar noteras i ordning av betydelse:
En ny loggningsbibliotek har lagts till i API:et Log, som, till skillnad frÄn den gamla, kan styra meddelanden till olika backends och filtrera dessa meddelanden olika beroende pÄ "kÀlla".
Rudimenter frÄn C-utvecklingsvÀrlden, Errno och WinError, som anvÀndes för primitiva in- och utdataoperationer, försvinner tack vare hierarkin av undantag IO::Error (ingen har dock förbjudit att anvÀnda Errno Ànnu).
Automatisk införande av else nil har tagits bort frÄn operatorn case/when/else. Detta har gjorts för att utesluta att en utvecklare av misstag missar en av grenar when vid matchning mot deterministiska fall som enum:er och typgenomgÄng frÄn Union. Med andra ord, sÄdan kod kommer inte lÀngre att fungera utan att ange ytterligare en when (when Char) eller ge else-gren:
a = 1 || âxâ || "foo"
case a
when Int32
# âŠ
when String
# âŠ
end
Kompilatoralternativet disable_overflow Àr inte lÀngre tillgÀngligt. För operationer med överflöd, anvÀnd metoderna &+, &-, &*.
Array#fill flyger nu snabbare Àn en kula, tack vare att den tröga loopen har bytts ut mot en enkel memset;
Shardhanteraren (paket), som paradoxalt nog kallas shards, anvÀnder nu en snabbare och mer effektiv algoritm för att tillfredsstÀlla beroenden, Molinillo, som spionerats i CocoaPods (Swift) och Builder (Ruby).
Stöd för LLVM 10, vilket i teorin ger oss en ökning av prestanda, stabilitet, etc.
⊠och mÄnga andra, enligt min subjektiva Äsikt, mindre viktiga förbÀttringar.
Det Àr vÀrt att nÀmna att Crystal Àr ett sprÄk byggt pÄ LLVM som gör det möjligt att skriva applikationer snabbare, enklare och mer koncist Àn med sina tolkade "syskon", samtidigt som man fÄr en ganska snabb binÀrfil. JÀmfört med Golang erbjuder det en fullt funktionell OOP, stöd för generiska typer och en mycket enkel och tydlig syntax. I sitt syfte liknar det mycket Nim, men Àr tydligt inriktat pÄ praktiska tillÀmpningar "hÀr och nu", vilket gör att det har en uppsÀttning av vÀl dokumenterade, anvÀndarvÀnliga och högkvalitativa verktyg i sitt API, som stöds av sprÄkets utvecklare och dÀrför Àr ganska stabila.
KĂ€lla: linux.org.ru
