From 494fdcb343e90579e0b8902b55737b395ce97b7a Mon Sep 17 00:00:00 2001 From: Serdar Dogruyol Date: Tue, 28 Nov 2017 20:03:30 +0300 Subject: [PATCH] Add 0.24.0 to CHANGELOG --- CHANGELOG.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b7a66de79bd..abfac145ca9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,54 @@ +# 0.24.0 (30-10-2017) + +- **(breaking-change)** HTTP::Client#post_form is now HTTP::Client.post(form: ...) +- **(breaking-change)** Array#reject!, Array#compact! and Array#select! now return self ([#5154](https://github.com/crystal-lang/crystal/pull/5154)) +- **(breaking-change)** Remove the possibility to require big_int, big_float or big_rational individually: use require "big" instead ([#5121](https://github.com/crystal-lang/crystal/pull/5121)) +- **(breaking-change)** Spec: remove expect_raises without type argument ([#5096](https://github.com/crystal-lang/crystal/pull/5096)) +- **(breaking-change)** IO is now a class, no longer a module ([#4901](https://github.com/crystal-lang/crystal/pull/4901)) +- **(breaking-change)** Time constructors now have nanosecond and kind as named argument ([#5072](https://github.com/crystal-lang/crystal/pull/5072)) +- **(breaking-change)** Removed XML.escape. Use HTML.escape instead ([#5046](https://github.com/crystal-lang/crystal/pull/5046)) +- **(breaking-change)** Removed macro def ([#5040](https://github.com/crystal-lang/crystal/pull/5040)) +- **(breaking-change)** SecureRandom is now Random::Secure ([#4894](https://github.com/crystal-lang/crystal/pull/4894)) +- **(breaking-change)** HTML.escape now only escapes &<>"' ([#5012](https://github.com/crystal-lang/crystal/pull/5012)) +- **(breaking-change)** To define a custom hash method you must now define hash(hasher) ([#4946](https://github.com/crystal-lang/crystal/pull/4946)) +- **(breaking-change)** Flate::Reader.new(&block) and Flate::Writer.new(&block) now use the name open ([#4887](https://github.com/crystal-lang/crystal/pull4887/)) +- **(breaking-change)** Use an Enum for Process stdio redirections ([#4445](https://github.com/crystal-lang/crystal/pull/4445)) +- **(breaking-change)** Remove '$0' special syntax +- **(breaking-change)** Remove bare array creation from multi assign (a = 1, 2, 3) ([#4824](https://github.com/crystal-lang/crystal/pull/4824)) +- **(breaking-change)** Rename skip macro method to skip_file ([#4709](https://github.com/crystal-lang/crystal/pull/4709)) +- **(breaking-change)** StaticArray#map and Slice#map now return their same type instead of Array ([#5124](https://github.com/crystal-lang/crystal/pull/5124)) +- **(breaking-change)** Tuple#map_with_index now returns a Tuple. ([#5086](https://github.com/crystal-lang/crystal/pull/5086)) +- Packages built with LLVM 3.9.1. They should (hopefully) fix [#4719](https://github.com/crystal-lang/crystal/issues/4719) +- Syntax: Allow flat rescue/ensure/else block in do/end block ([#5114](https://github.com/crystal-lang/crystal/pull/5114)) +- Syntax: fun names and lib function calls can now start with Uppercase +- Macros: Using an alias in macros will now automatically resolve it to is aliased type ([#4995](https://github.com/crystal-lang/crystal/pull/4995)) +- Macros: The flags bits32 and bits64 are now automatically defined in macros +- The YAML module has now full support for the 1.1 core schema with additional types, and properly supports aliases and merge keys ([#5007](https://github.com/crystal-lang/crystal/pull/5007)) +- Add --output option to crystal docs ([#4937](https://github.com/crystal-lang/crystal/pull/4937)) +- Add Time#days_in_year: it returns the no of days in a given year ([#5163](https://github.com/crystal-lang/crystal/pull/5163)) +- Add Time.monotonic to return monotonic clock ([#5108](https://github.com/crystal-lang/crystal/pull/5108)) +- Add remove_empty option to many String#split overloads +- Add Math.sqrt overloads for Bigs ([#5113](https://github.com/crystal-lang/crystal/pull/5113)) +- Add --stdin-filename to crystal command to compile source from STDIN ([#4571](https://github.com/crystal-lang/crystal/pull/4571)) +- Add Crystal.main to more easily redefine the main of a program ([#4998](https://github.com/crystal-lang/crystal/pull/4998)) +- Add Tuple.types that returns a tuple of types ([#4962](https://github.com/crystal-lang/crystal/pull/4962)) +- Add NamedTuple.types that returns a named tuple of types ([#4962](https://github.com/crystal-lang/crystal/pull/4962)) +- Add NamedTuple#merge(other : NamedTuple) ([#4688](https://github.com/crystal-lang/crystal/pull/4688)) +- Add YAML and JSON.mapping presence: true option ([#4843](https://github.com/crystal-lang/crystal/pull/4843)) +- Add Dir.each_child(&block) ([#4811](https://github.com/crystal-lang/crystal/pull/4811)) +- Add Dir.children ([#4808](https://github.com/crystal-lang/crystal/pull/4808)) +- HTML.unescape now supports all HTML5 named entities ([#5064](https://github.com/crystal-lang/crystal/pull/5064)) +- Regex now supports duplicated named captures ([#5061](https://github.com/crystal-lang/crystal/pull/5061)) +- rand(0) is now valid and returns 0 +- Tuple#[] now supports a negative index ([#4735](https://github.com/crystal-lang/crystal/pull/4735)) +- JSON::Builder#field now accepts non-scalar values ([#4706](https://github.com/crystal-lang/crystal/pull/4706)) +- Number#inspect now shows the number type +- Some additions to Big arithmetics ([#4653](https://github.com/crystal-lang/crystal/pull/4653)) +- Increase the precision of Time and Time::Span to nanoseconds ([#5022](https://github.com/crystal-lang/crystal/pull/5022)) +- Upgrade Unicode to 10.0.0 ([#5122](https://github.com/crystal-lang/crystal/pull/5122)) +- Support LLVM 5.0 ([#4821](https://github.com/crystal-lang/crystal/pull/4821)) +- [Lots of bugs fixed](https://github.com/crystal-lang/crystal/issues?q=is%3Aclosed+milestone%3A0.24.0) + # 0.23.1 (01-07-2017) * Added `Random::PCG32` generator (See #4536, thanks @konovod) @@ -23,14 +74,14 @@ * Added `Math.frexp` (See #4560, thanks @akzhan) * Added `Regex::MatchData` support for negative indexes (See #4566, thanks @MakeNowJust) * Added `captures`, `named_captures`, `to_a` and `to_h` to `Regex::MatchData` (See #3783, thanks @MakeNowJust) -* Added `|` as a string delimiter to allow `q|string|` syntax (See #3467, thanks @RX14) +* Added `|` as a string delimiter to allow `q|string|` syntax (See #3467, thanks @RX14) * Added support for Windows linker (See #4491, thanks @RX14) * Added llvm operand bundle def and catch pad/ret/switch in order to support Windows SEH (See #4501, thanks @bcardiff) * Added `Float::Printer` based on Grisu3 to speed up float to string convertion (See #4333, thanks @will) * Added `Object.unsafe_as` to unsafely reinterpret the bytes of an object as being of another `type` (See #4333, thanks @asterite) * Added `.downcase(Unicode::CaseOptions::Fold)` option which convert strings to casefolded strings for caseless matching (See #4512, thanks @akzhan) * Added `OpenSSL::DigestIO` to wrap an IO while calculating a digest (See #4260, thanks @spalladino) -* Added `zero?` to numbers and time spans (See #4026, thanks @jellymann) +* Added `zero?` to numbers and time spans (See #4026, thanks @jellymann) * Added `TypeNode#has_method?` method (See #4474, thanks @Sija) * `Regex::MatchData#size` renamed to `#group_size` (See #4565, thanks @MakeNowJust) * `HTTP::StaticFileHandler` can disable directory listing (See #4403, #4398, thanks @joaodiogocosta)