Crystal 1.16.0 released: major updates in file matching, syntax, and execution contexts

Crystal 1.16.0 released: major updates in file matching, syntax, and execution contexts

Crystal (programming language) 1.16.0 has been released with 162 changes since version 1.15.1. A notable update is the revamped File.match? implementation, which now uses a new matching algorithm to address previous bugs while maintaining documented behaviors. Wildcard and globstar matching have been refined, with changes such as **/a now matching a directly and globstars matching full path segments. Pattern parsing has also improved, with subpatterns in branches respecting their syntax context and special character escapes being recognized correctly.

Additional changes include enhancements to character class grammar, now supporting ranges like [a-], which match both a and -. Parameter name suffixes (? and !) for methods, macros, and blocks are deprecated, with warnings issued to align with general variable naming rules. Enumerable methods #sum and #product now require explicit return types when dealing with union element types, shifting errors from runtime to compile time. HTTP::Request parsing of absolute URL-like resource strings has been corrected, potentially affecting existing code.

Environment handling for subcommands has been updated, and a new preview feature, Execution Contexts, supports multi-threaded or isolated contexts. Compiler CLI enhancements and documentation generator improvements have also been introduced, making Crystal 1.16.0 a significant update for developers.

by Mauricio B. Holguin

cz
alexandrezanni
city_zen found this interesting
  • ...

Crystal is a programming language known for its Ruby-like syntax, designed to compile to efficient native code. It offers the ease of Ruby's expressive syntax while delivering the performance benefits of compiled languages. As a statically typed language, Crystal aims to provide speed and safety. Common alternatives include Python, JavaScript, and Java, each offering different strengths and use cases.

No comments so far, maybe you want to be first?
Gu