authors/straight-shoota.jpg Johannes Müller 21 Feb 2017

Crystal 0.21.0 released!

Crystal 0.21.0 has been released!

As any release it includes numerous bugfixes, cool features and performance improvements - in 120 commits since 0.20.5.

Exciting Changes

  • (breaking-change) The compiler now reuses previous macro run compilations so {{ run(...) }} is only re-run if the code changes
  • (breaking-change) Spec now uses it { ... } instead of assert { ... }
  • (breaking-change) String can now hold invalid UTF-8 byte sequences, and they produce a unicode replacement character when traversed. Also \xHH escape sequences are now supported.
  • (breaking-change) Zlib was split into Flate, Gzip and Zlib
  • Slice can be set to read_only, that’s the default for String#to_slice
  • added HTTP::Multipart and HTTP::FormData
  • added lots of methods on String to strip and chop

Other Breaking Changes

  • (breaking-change) Renamed Set#merge! to Set#concat
  • (breaking-change) Crypto::MD5 is now Digest::MD5
  • (breaking-change) String#chop is now String#rchop
  • (breaking-change) String#to_slice now returns a read-only Slice
  • (breaking-change) Removed String#lchomp. Use String#lchop
  • (breaking-change) Octal escapes inside strings incorrectly produced a codepoint value instead of a byte value
  • (breaking-change) Removed octal escape from char literals

Thanks to everyone who supported this release through contributions, reviews and suggestions.