github crystal-lang/crystal 1.19.0

4 hours ago

Breaking changes

stdlib

Features

lang

stdlib

compiler

tools

Bugfixes

lang

  • (macros) Fix nested sigil delimiter parsing inside macros (#16266, thanks @HertzDevil)

stdlib

compiler

  • (cli) chore: correct progress step count to 14 (#16269, thanks @miry)
  • (codegen) Fix System V ABI for arrays of packed structs with misaligned fields (#16314, thanks @HertzDevil)
  • (debugger) Fix debug info for closured variables (#16393, thanks @HertzDevil)
  • (interpreter) interpreter handles self in inlined method with arguments (#16307, thanks @cyangle)
  • (interpreter) interpreter typeof should return concrete type (#16379, thanks @cyangle)
  • (interpreter) Fix variable shadowing bug in interpreter (#16335, thanks @cyangle)
  • (interpreter) interpreter musn't reuse dead fiber stacks (#16518, thanks @ysbaddaden)
  • (parser) Fix internal error if multi-assign RHS has splats (#16182, thanks @HertzDevil)
  • (parser) Fix regex delimiter detection in syntax highlighter (#16394, thanks @HertzDevil)
  • (parser) Merge adjacent StringLiterals before yielding (#16427, thanks @Blacksmoke16)
  • (parser) Fix Call#end_location w/ named arguments off-by-one error (#16542, thanks @Sija)
  • (parser) Fix incorrect location for parenthesized union AST nodes (#16552, thanks @Sija)
  • (semantic) Fix instantiation of abstract generic structs in virtual type lookup (#16513, thanks @Blacksmoke16)
  • (semantic) Fix variables assigned inside && conditions with method calls incorrectly got Nil added to their type (#16512, thanks @Blacksmoke16)

tools

  • (docs-generator) Fix doc generation when nesting multiple :inherit: directives (#16443, thanks @Blacksmoke16)
  • (docs-generator) Fix some doc inconsistencies for macros (#16561, thanks @Blacksmoke16)
  • (formatter) Fix incorrect formatting of multi-line macro expression with comment as first line (#16429, thanks @Blacksmoke16)
  • (formatter) Add multi-line formatting support to Generic formatter visitor (#16430, thanks @Blacksmoke16)

Chores

lang

  • (macros) [deprecation] Deprecate single-letter macro fresh variables with indices (#16267, thanks @HertzDevil)
  • (macros) [deprecation] Deprecate macro fresh variables with constant names (#16293, thanks @HertzDevil)

stdlib

compiler

other

Performance

stdlib

compiler

  • Group temporary variables by file name: splats (#16242, thanks @HertzDevil)
  • (codegen) [regression] Only define the type name table in the main LLVM module (#16260, thanks @HertzDevil)
  • (codegen) Allow closures to use atomic allocation (#16360, thanks @HertzDevil)

Refactor

stdlib

Documentation

lang

stdlib

Specs

lang

stdlib

compiler

  • (semantic) Drop assert_expand_second and assert_expand_third helpers (#16244, thanks @HertzDevil)

Infrastructure

Don't miss a new crystal release

NewReleases is sending notifications on new releases.