@asterite asterite released this Mar 7, 2016 · 2128 commits to master since this release

  • (breaking change) Matrix was moved to a separate shard: https://github.com/Exilor/matrix
  • The syntax of a method argument with a default value and a type restriction is now def foo(arg : Type = default_value). Run crystal tool format to automatically upgrade exsiting code to this new syntax. The old def foo(arg = default_value : Type) syntax will be removed in a next release.
  • Special handling of case with a tuple literal. See #2258.
  • Keywords can now be used for variable declaration, so property end : Time works as expected.
  • Comparison of signed vs. unsigned integers now always give a correct result
  • Allow declaring instance variables in non-generic module types (module Moo; @x : Int32; end)
  • Allow initializing instance variables in non-generic module types (module Moo; @x = 1; end)
  • Spec: allow setting multiple output formatters (thanks @marceloboeira)
  • StringScanner: improved performance
  • Added foo.[0] = 1 and foo.[0] as valid syntax, similar to the one in &. blocks (thanks @MakeNowJust)
  • CSV: allow separate and quote characters different than comma and doble quote (thanks @jreinert)
  • YAML: support merge operator (<<) (thanks @jreinert)
  • Allow redefining primitive methods like Int32#+(other : Int32)
  • Allow defining macros with operator names like []
  • Levenshtein: improved performance (thanks @tcrouch)
  • HTTP::Client: fixed incorrect parsing of chunked body
  • HTTP::Client: added a constructor with an URI argument (thanks @plukevdh)
  • String: sub and gsub now understand backreferences (thanks @bjmllr)
  • Random: added Random#rand(Float64) and Random#rand(Range(Float, Float)) (thanks @AlexWayfer)
  • HTML: HTLM.escape includes more characters (thanks @Ryuuzakis)
  • Added TypeNode.class method in macros (thanks @waterlink)
  • run inside macros now also work with absolute paths (useful when used with __DIR__)
  • Added docs for Math and StaticArray (thanks @Zavydiel, @HeleneMyr)
  • Many bug fixes and some micro-optimizations