Releases
0.33.0
Language changes
Macros
Add TypeNode#name(generic_args : BoolLiteral)
to return TypeNode
's name with or without type vars. (#8483 , thanks @Blacksmoke16 )
Standard library
(breaking-change) Remove several previously deprecated methods and modules: PartialComparable
, Crypto::Bcrypt::Password#==
, HTTP::Server::Response#respond_with_error
, JSON::PullParser::Kind#==
, Symbol#==(JSON::PullParser::Kind)
, JSON::Token#type
, String#at
, Time.new
, Time.now
, Time.utc_now
, URI.escape
, URI.unescape
. (#8646 , #8596 , thanks @bcardiff , @Blacksmoke16 )
Fixed docs wording. (#8606 , #8784 , thanks @fxn )
Add Object#in?
. (#8720 , #8723 , thanks @Sija )
Allow to create an enum from a symbol. (#8634 , thanks @bew )
Add VaList#next
for getting the next element in a variadic argument list. (#8535 , #8688 , thanks @ffwff , @RX14 )
Refactor ARGF
implementation. (#8593 , thanks @arcage )
Fixed specs of Colorize
on dumb terminal. (#8673 , thanks @oprypin )
Fixed some specs on Win32. (#8670 , thanks @straight-shoota )
Numeric
Text
Fixed \u0000
wrongly added on String#sub(Hash)
replaces last char. (#8644 , thanks @mimame )
Collections
Fixed Enumerable#zip
to work with union types. (#8621 , thanks @asterite )
Fixed docs regarding Hash
's initial_capacity
. (#8569 , thanks @r00ster91 )
Serialization
Time
Files
(breaking-change) Deprecate File::Info#owner
, and File::Info#group
; use owner_id
, and group_id
. (#8007 , thanks @j8r )
Fixed Path.new
receiving Path
as first argument. (#8753 , thanks @straight-shoota )
Fixed File.size
and File.info
to work with Path
parameters. (#8625 , thanks @snluu )
Fixed Path
specs when ENV["HOME"]
is unset. (#8667 , thanks @straight-shoota )
Refactor Dir.mkdir_p
to use Path#each_parent
and make it work on Win32. (#8668 , thanks @straight-shoota )
Fixed IO::MultiWriter
specs to close file before reading/deleting it. (#8674 , thanks @oprypin )
Networking
Fixed invalid call to libevent and race conditions on closed IO
when resuming readable/writable event. (#8707 , #8733 , thanks @bcardiff )
Fixed unexpected EOF in terminated SSL connection. (#8540 , thanks @rdp )
Fixed HTTP::Cookie
to support Int64
max-age values. (#8759 , thanks @asterite )
Improve error message for getaddrinfo
failure. (#8498 , thanks @rdp )
Make IO::SysCall#wait_readable
and IO::SysCall#wait_writable
public, yet :nodoc:
. (#7366 , thanks @stakach )
Refactor StaticFileHandler
to use Path
. (#8672 , thanks @straight-shoota )
Remove fixed date in spec. (#8640 , thanks @bcardiff )
Remove non-portable error message in TCPServer
spec. (#8702 , thanks @straight-shoota )
Crypto
Concurrency
System
Enable system
module for Win32 in prelude. (#8661 , thanks @straight-shoota )
Handle exceptions raised at __crystal_sigfault_handler
. (#8743 , thanks @waj )
Runtime
Fixed wrongly collected exception object by the GC. Ensure LibUnwind::Exception
struct is not atomic. (#8728 , thanks @waj )
Fixed reporting of non-statement rows in DWARF backtrace. (#8499 , thanks @rdp )
Add top level exception handler. (#8735 , #8791 , thanks @waj )
Try to open stdio in non-blocking mode. (#8787 , thanks @waj )
Allow Crystal::System.print_error
to use printf
like format. (#8786 , thanks @bcardiff )
Spec
Compiler
(breaking-change) Drop support for previously deprecated comma separators in enums and other cleanups. (#8657 , thanks @bcardiff )
(breaking-change) Drop uppercase F32 and F64 float number suffixes. (#8782 , thanks @rhysd )
Fixed memory corruption issues by using LLVM's memset
and memcpy
that matches target machine. (#8746 , thanks @bcardiff )
Fixed ICE when trying to add type inside annotation. (#8628 , thanks @asterite )
Fixed ICE on typeof
in an unused block. (#8695 , thanks @asterite )
Fixed ICE in case of wrong target triple. (#8710 , thanks @Sija )
Fixed ICE when raising a macro exception with empty message. (#8654 , thanks @jan-zajic )
Fixed parser bug macro with "eenum" in it. (#8760 , thanks @asterite )
Change CRYSTAL_PATH
to allow shards to override std-lib. (#8752 , thanks @bcardiff )
Language semantics
Fixed missing virtualization of Proc
pointer. (#8757 , thanks @asterite )
Fixed type of vars after begin
/rescue
if all rescue
are unreachable. (#8758 , thanks @asterite )
Fixed visibility propagation to macro expansions in all cases. (#8762 , #8796 , thanks @asterite )
Tools
Formatter
Fixed indent after comment inside indexer. (#8627 , thanks @asterite )
Fixed indent of comments at the end of a proc literal. (#8778 , thanks @asterite )
Fixed crash when formating comment after macro. (#8697 , thanks @asterite )
Fixed crash when formating exp.!
. (#8768 , thanks @asterite )
Removes unnecessary escape sequences. (#8619 , thanks @RX14 )
Doc generator
(breaking-change) Deprecate ditto
and nodoc
in favor of :ditto:
and :nodoc:
. (#6362 , thanks @j8r )
Skip creation of docs/
dir when not needed. (#8718 , thanks @Sija )
Others
CI improvements and housekeeping. (#8580 , #8597 , #8679 , #8779 , thanks @bcardiff , @j8r )
Add Windows CI using GitHub Actions. (#8676 , thanks @oprypin )
Add Alpine CI using CircleCI. (#7420 , thanks @straight-shoota )
Build Alpine Docker images. (#8708 , thanks @straight-shoota )
Allow Makefile
to use lld
if present (Linux only). (#8641 , thanks @bcardiff )
Simplify script to determine installed LLVM version. (#8605 , thanks @j8r )
Add CircleCI test summaries. (#8617 , thanks @Sija )
Add helper scripts to identify working std-lib specs on Win32. (#8664 , thanks @straight-shoota )
You can’t perform that action at this time.