All Versions
118
Latest Version
Avg Release Cycle
46 days
Latest Release
211 days ago
Changelog History
Page 6
Changelog History
Page 6
-
v0.19.4 Changes
October 07, 2016- โ Added support for OpenBSD (thanks @wmoxam and @ysbaddaden)
- ๐ More iconv fixes for FreeBSD (thanks @ysbaddaden)
- ๐ Changed how
require
works for the upcomingshards
release (this is backwards compatible). See https://github.com/crystal-lang/crystal/pull/2788 - โ Added
Atomic
and exposed all LLVM atomic instructions to Crystal (needed to implemented multiple-thread support) - โ Added
Process.executable_path
(thanks @kostya, @whereami and @ysbaddaden) - โ Added
HTML.unescape
(thanks @dukex) - โ Added
Char#+(Int)
andChar#-(Int)
- ๐ A few bug fixes
-
v0.19.3 Changes
September 30, 2016- ๐
crystal eval
now accepts some flags like--stats
,--release
and--help
- โ Added
File.chown
andFile.chmod
(thanks @ysbaddaden) - โ Added
Time::Span.zero
(useful for doingsum
) (thanks @RX14) - โ Added docs to
OAuth
andOAuth2
- ๐ Several bug fixes
- ๐
-
v0.19.2 Changes
September 16, 2016- Generic type variables no longer need to be single-letter names (for example
class Gen(Foo)
is now possible) - โ Added syntax to denote free variables:
def foo(x : T) forall T
. The old rule of single-letter name still applies but will be removed in the future. - โ Removed the restriction that top-level types and constants can't have single-letter names
- โ Added
@[Extern]
attribute to mark regular Crystal structs as being able to be used in C bindings - ๐ Faster
Char#to_s
when it's ASCII: this improves the performance of JSON and CSV parsing - ๐
crystal spec
: allow passing--release
and other options crystal spec
: allow running all specs in a given directory- ๐
crystal playground
: support custom workbook resources (thanks @bcardiff) crystal playground
: standard output now understands ANSI colors (thanks @bcardiff)- โ Added many more macro methods to traverse AST nodes (thanks @BlaXpirit)
- 0๏ธโฃ Error messages no longer include a type trace by default, pass
--error-trace
to show the full trace (the trace is often useless and makes it harder to understand error messages) - ๐ Several bug fixes
- Generic type variables no longer need to be single-letter names (for example
-
v0.19.1 Changes
September 09, 2016- Types (class, module, etc.) can now be marked as
private
. - โ Added
WeakRef
(thanks @bcardiff) - ๐ Several bug fixes
- Types (class, module, etc.) can now be marked as
-
v0.19.0 Changes
September 02, 2016- (breaking change) Added
select
keyword - (breaking change) Removed $global variables. Use @@class variables instead.
- (breaking change) Heredoc now ends when the matching identifier is found, either followed by a space or by a non-identifier
- (breaking change) Assignment to a local variable inside an assignment to that same variable is now an error
- (breaking change) Type names like
T
,T1
,U
, etc., are now disallowed at the top level, to avoid conflicts with free variables - (breaking change) Type lookup (
Foo::Bar::Baz
) had some incorrect behaviour that now is fixed. This can break existing code that relied on this incorrect behaviour. The fix is to fully qualify types (::Foo::Bar::Baz
) - (breaking change) In relationships like
class Bar < Foo(Baz)
andinclude Moo(Baz)
, all ofFoo
,Moo
andBaz
must be defined before that point (this was not always the case in previous versions) - (breaking change) Removed the deprecated syntax
x as T
- (breaking change) Removed block form of
String#match
- (breaking change) Removed
IO#read_nonblock
- (breaking change)
Int#/
now performs floored division. UseInt#tdiv
for truncated division (see their docs to learn the difference) - โ Added support for LLVM 3.8 (thanks @omarroth)
||
now does type filtering- Generic inheritance should now work well, and (instantiated) generic modules can now be used as the type of instance variables
NamedTuple
can now be accessed with strings too (thanks @jhass)Base64
can now encode and decode directly to anIO
(thanks @kostya)BigInt
now uses GMP implementation of gcd and lcm (thanks @endSly)- ๐
ECR
now supports removing leading and trailing whitespace (<%-
,-%>
) HTTP::Request#path
now never returnsnil
: it fallbacks to"/"
(thanks @jhass)String#tr(..., "")
is now the same asString#delete
- ๐
tool hierarchy
now supports--format json
(thanks @bmulvihill) - โ Added
Char#ascii?
- โ Added
Class#nilable?
andUnion#nilable?
- โ Added
Hash#has_value?
(thanks @kachick) - โ Added
IO::Sized
andIO::Delimited
(thanks @RX14) - โ Added
IO::Hexdump
(thanks @ysbaddaden) - โ Added
IO#noecho
andIO#noecho!
(thanks @jhass) - โ Added
Logger.new(nil)
to create a null logger - ๐ Added
OptionParser#missing_option
andOptionParser#invalid_option
(thanks @jhass) - โ Added
Process.exists?
,Process#exists?
andProcess#terminated?
(thanks @jhass) - โ Added
Process.exec
(thanks @jhass) - Added
Slice#copy_to
,Slice#copy_from
,Slice#move_to
andSlice#move_from
(thanks @RX14) - โ Added
URI#==
andURI#hash
(thanks @timcraft) - โ Added
YAML#parse(IO)
- โ Added
Indexable
module thatArray
,Slice
,Tuple
andStaticArray
include - Added
indent
parameter toto_pretty_json
- โ Added lazy form of
getter
andproperty
macros - โ Added macro methods to access an ASTNode's location
- Unified String and Char to integer/float conversion API (thanks @jhass)
- ๐ Lots of bug fixes
- (breaking change) Added
-
v0.18.7 Changes
July 03, 2016- ๐ The
compile
command was renamed back tobuild
. Thecompile
command is deprecated and will be removed in a future version - Fibers now can be spawned with a name
- ECR macros can now be required with just
require "ecr"
- ๐ Several bugs fixes and enhancements
- ๐ The
-
v0.18.6 Changes
June 28, 2016- ๐
T?
is now parsed asUnion(T, Nil)
outside the type grammar - โ Added
String#sub
overloads for replacing an index or range with a char or string - ๐ Several bugs fixes
- ๐
-
v0.18.5 Changes
June 27, 2016- โ Added
OpenSSL::SSL::Socket#alpn_protocol
- โ Added
IO#copy(src, desc, limit)
(thanks @jreinert) - โ Added
TypeNode#instance
macro method - ๐ Several bugs fixes
- โ Added
-
v0.18.4 Changes
June 21, 2016- ๐ Fixed #2887
- ๐ Fix broken specs
-
v0.18.3 Changes
June 21, 2016TypeNode
: added<
,<=
,>
and>=
macro methods- ๐ Several bugs fixes