0.24.0
Pre-release
Pre-release
matiasgarciaisaia
released this
30 Oct 17:10
·
5593 commits
to master
since this release
⚠️ WARNING: this is a pre-release version of Crystal. Do not use this in production.
- (breaking-change)
HTTP::Client#post_form
is nowHTTP::Client.post(form: ...)
- (breaking-change)
Array#reject!
,Array#compact!
andArray#select!
now returnself
(#5154) - (breaking-change) Remove the possibility to require
big_int
,big_float
orbig_rational
individually: userequire "big"
instead (#5121) - (breaking-change) Spec: remove
expect_raises
without type argument (#5096) - (breaking-change)
IO
is now a class, no longer a module (#4901) - (breaking-change) Time constructors now have
nanosecond
andkind
as named argument (#5072) - (breaking-change) Removed
XML.escape
. UseHTML.escape
instead (#5046) - (breaking-change) Removed
macro def
(#5040) - (breaking-change)
SecureRandom
is nowRandom::Secure
(#4894) - (breaking-change)
HTML.escape
now only escapes &<>"' (#5012) - (breaking-change) To define a custom
hash
method you must now definehash(hasher)
(#4946) - (breaking-change)
Flate::Reader.new(&block)
andFlate::Writer.new(&block)
now use the nameopen
(#4887) - (breaking-change) Use an Enum for Process stdio redirections (#4445)
- (breaking-change) Remove '$0' special syntax
- (breaking-change) Remove bare array creation from multi assign (
a = 1, 2, 3
) (#4824) - (breaking-change) Rename
skip
macro method toskip_file
(#4709) - (breaking-change)
StaticArray#map
andSlice#map
now return their same type instead ofArray
(#5124) - (breaking-change)
Tuple#map_with_index
now returns a Tuple. (#5086) - Packages built with LLVM 3.9.1. They should (hopefully) fix #4719
- Syntax: Allow flat rescue/ensure/else block in do/end block (#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)
- Macros: The flags
bits32
andbits64
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) - Add
--output
option tocrystal docs
(#4937) - Add
Time#days_in_year
: it returns the no of days in a given year (#5163) - Add
Time.monotonic
to return monotonic clock (#5108) - Add
remove_empty
option to manyString#split
overloads - Add
Math.sqrt
overloads for Bigs (#5113) - Add
--stdin-filename
tocrystal
command to compile source from STDIN (#4571) - Add
Crystal.main
to more easily redefine themain
of a program (#4998) - Add
Tuple.types
that returns a tuple of types (#4962) - Add
NamedTuple.types
that returns a named tuple of types (#4962) - Add
NamedTuple#merge(other : NamedTuple)
(#4688) - Add YAML and JSON.mapping
presence: true
option (#4843) - Add
Dir.each_child(&block)
(#4811) - Add
Dir.children
(#4808) HTML.unescape
now supports all HTML5 named entities (#5064)Regex
now supports duplicated named captures (#5061)rand(0)
is now valid and returns 0Tuple#[]
now supports a negative index (#4735)JSON::Builder#field
now accepts non-scalar values (#4706)Number#inspect
now shows the number type- Some additions to Big arithmetics (#4653)
- Increase the precision of
Time
andTime::Span
to nanoseconds (#5022) - Upgrade Unicode to 10.0.0 (#5122)
- Support LLVM 5.0 (#4821)
- Lots of bugs fixed