github crystal-lang/crystal 1.22.0

4 hours ago

Breaking changes

stdlib

Features

lang

stdlib

compiler

tools

Bugfixes

stdlib

compiler

  • Fix vswhere ignoring ARM64-only MSVC installations (#17395, thanks @HertzDevil)
  • (codegen) Codegen doesn't materialize an unused yield block value in debug builds, pt. 2 (#17130, thanks @nobodywasishere)
  • (codegen) Unify LLVM types used for ReferenceStorage (#17397, thanks @HertzDevil)
  • (codegen) Do not access owner type in dispatch if it is not passed at runtime (#17424, thanks @HertzDevil)
  • (codegen) cross-compile crashes when combined with emit llvm-bc or obj (#17510, thanks @ysbaddaden)
  • (codegen) Fix memory leak in mixed union assignments (#17518, thanks @ysbaddaden)
  • (codegen) Fix SysV ABI classification of word containing Float32 followed by integer (#17572, thanks @HertzDevil)
  • (codegen) Respect ABI info when explicitly returning inside top-level funs (#17616, thanks @HertzDevil)
  • (debugger) Fix lldb-dap crash on Windows when loading Crystal formatters (#17448, thanks @magynhard)
  • (interpreter) Fix interpreter dispatch on a virtual struct narrowed from a union (#17450, thanks @jochenseeber)
  • (parser) Fix parse OP_SLASH after block (#17159, thanks @straight-shoota)
  • (parser) Fix suffix ExceptionHandler#location in an assignment (#17365, thanks @Sija)
  • (parser) Fix global calls shadowed by local variables (#17558, thanks @grepsedawk)
  • (semantic) Fix instance variable initializer using a class variable assignment (#17148, thanks @nobodywasishere)
  • (semantic) Fix bug allowing self in private top-level method (#17149, thanks @nobodywasishere)
  • (semantic) Fix dynamic class declaration macro error (#17274, thanks @nobodywasishere)
  • (semantic) Backfill included type to existing instantiations (#17094, thanks @straight-shoota)
  • (semantic) Fix ICE when module with ivar is included in a type that can't have them (#17386, thanks @bcardiff)
  • (semantic) Disallow instance_sizeof and instance_alignof on Void or NoReturn (#17453, thanks @HertzDevil)

tools

  • (formatter) Fix formatter for setter assignment with parenthesized values (#17083, thanks @mamantoha)
  • (formatter) formatter unescapes fresh variables (#17517, thanks @ysbaddaden)

Chores

lang

stdlib

compiler

other

Performance

stdlib

Refactor

stdlib

compiler

other

Documentation

stdlib

  • (collection) Fix doc example for Hash#put (#17459, thanks @spuun)
  • (concurrency) Clarify docs for Channel buffered channel close and drain semantics (#17423, thanks @renich)
  • (numeric) Fix typo in doc comment for Int (#17238, thanks @swsch)
  • (runtime) Undocument internal GC methods (#17451, thanks @ysbaddaden)
  • (serialization) Mention #to_pretty_json in JSON documentation (#17131, thanks @LaskaIDK)
  • (specs) Fix summary line of Spec::Expectations#be docs (#17556, thanks @SatvikMishra08)
  • (system) Document error behaviour for Dir.mkdir and .mkdir_p (#17240, thanks @LaskaIDK)

compiler

  • (cli) Fix short option order in docs help (#17129, thanks @kojix2)

other

Specs

stdlib

compiler

Infrastructure

Don't miss a new crystal release

NewReleases is sending notifications on new releases.