Skip to content

0.23.0

Compare
Choose a tag to compare
@matiasgarciaisaia matiasgarciaisaia released this 29 Jun 19:31
· 5704 commits to master since this release

This release has been built with LLVM 3.8.

As discussed in crystal-lang/omnibus-crystal#17, that means dropping support for Debian 7, and CentOS. Users on those platforms can still build from source using LLVM 3.5, but that's not recommended since it's buggy (see #4104).

  • (breaking-change) Logger#formatter takes a Severity instead of a String (See #4355, #4369, thanks @Sija)
  • (breaking-change) Removed IO.select (See #4392, thanks @RX14)
  • Added Crystal::System::Random namespace (See #4450, thanks @ysbaddaden)
  • Added Path#resolve? macro method (See #4370, #4408, thanks @RX14)
  • Added range methods to BitArray (See #4397, #3968, thanks @RX14)
  • Added some well-known HTTP Status messages (See #4419, thanks @akzhan)
  • Added compiler progress indicator (See #4182, thanks @RX14)
  • Added System.cpu_cores (See #4449, #4226, thanks @miketheman)
  • Added separator and quote_char to CSV#each_row (See #4448, thanks @timsu)
  • Added map_with_index! to Pointer, Array and StaticArray (See #4456, #3356, #3354, thanks @Nephos)
  • Added headers parameter to HTTP::WebSocket constructors (See #4227, #4222, thanks @adamtrilling)
  • HTTP::StaticFileHandler can disable directory listing (See #4403, #4398, thanks @joaodiogocosta)
  • bin/crystal now uses /bin/sh instead of /bin/bash (See #3809, #4410, thanks @TheLonelyGhost)
  • crystal init generates a .editorconfig file (See #4422, #297, thanks @akzhan)
  • man page for crystal command (See #2989, #1291, thanks @dread-uo)
  • Re-raising an exception doesn't overwrite its callstack (See #4487, #4482, thanks @akzhan)
  • MD5 and SHA1 documentation clearly states they are not cryptographically secure anymore (See #4426, thanks @RX14)
  • Fixed Crystal not reusing .o files across builds (See #4336)
  • Fixed SomeClass.class.is_a?(SomeConst) causing an "already had enclosing call" exception (See #4364, #4390, thanks @rockwyc992)
  • Fixed HTTP::Params.parse query string with two = gave wrong result (See #4388, #4389, thanks @akiicat)
  • Fixed Class.class.is_a?(Class.class.class.class.class) 🎉 (See #4375, #4374, thanks @rockwyc992)
  • Fixed select hanging when sending before receive (See #3862, #3899, thanks @kostya)
  • Fixed "Unknown key in access token json: id_token" error in OAuth2 client (See #4437)
  • Fixed macro lookup conflicting with method lookup when including on top level (See #236)
  • Fixed Vagrant images (see #4510, #4508, thanks @Val)
  • Some bug fixes