Releases
0.34.0
Language changes
Standard library
(breaking-change) Replace Errno
, WinError
, IO::Timeout
with RuntimeError
, IO::TimeoutError
, IO::Error
, File::Error
, Socket::Error
, and subclasses. (#8885 , thanks @waj )
(breaking-change) Replace Logger
module in favor of Log
module. (#8847 , #8976 , thanks @bcardiff )
(breaking-change) Move Adler32
and CRC32
to Digest
. (#8881 , thanks @bcardiff )
(breaking-change) Remove DL
module. (#8882 , thanks @bcardiff )
Enable more win32 specs. (#8683 , #8822 , thanks @straight-shoota )
Make SemanticVersion::Prerelease
comparable. (#8991 , thanks @makenowjust )
Use flag?(:i386)
instead of obsolete flag?(:i686)
. (#8863 , thanks @bcardiff )
Remove Windows workaround using vsnprintf
. (#8942 , thanks @oprypin )
Fixed docs broken link to ruby's prettyprint source. (#8915 , thanks @MattHin )
Update OptionParser
example to exit on --help
. (#8927 , thanks @vlazar )
Numeric
Text
Collections
Fixed make Range#size
raise on an open range. (#8829 , thanks @Sija )
Add Enumerable#empty?
. (#8960 , thanks @Sija )
(performance) Optimized Implementation of Array#fill
for zero Values. (#8903 , thanks @toddsundsted )
Refactor Reflect
to an Enumerable
private definition. (#8884 , thanks @bcardiff )
Serialization
(breaking-change) Rename YAML::Builder.new
with block to YAML::Builder.build
. (#8896 , thanks @straight-shoota )
Add XML.build_fragment
. (#8813 , thanks @straight-shoota )
Add CSV#rewind
. (#8912 , thanks @asterite )
Add Deque#from_json
and Deque#to_json
. (#8850 , thanks @carlhoerberg )
Call to IO#flush
on CSV
, INI
, JSON
, XML
, and YAML
builders. (#8876 , thanks @asterite )
Add docs to Object.from_yaml
. (#8800 , thanks @wowinter13 )
Time
Files
Fixed multi-thread race condition by setting fd
to -1
on closed File
/Socket
. (#8873 , thanks @bcardiff )
Fixed File.dirname
with unicode chars. (#8911 , thanks @asterite )
Add IO::Buffered#flush_on_newline
back and set it to true for non-tty. (#8935 , thanks @asterite )
Forward missing methods of IO::Hexdump
to underlying IO
. (#8908 , thanks @carlhoerberg )
Networking
(breaking-change) Correctly support WebSocket close codes. (#8975 , #8981 , thanks @RX14 , @Sija )
Make HTTP::Client
return empty body_io
if content-length is zero. (#8503 , thanks @asterite )
Fixed UDP
specs in the case of a local firewall. (#8817 , thanks @RX14 )
Fixed MIME
spec examples to not collide with actual registry. (#8795 , thanks @straight-shoota )
Fixed UNIXServer
, and HTTP::WebSocket
specs to ensure server is accepting before closing. (#8755 , #8879 , thanks @bcardiff )
Add type annotation to tls
argument in HTTP
. (#8678 , thanks @j8r )
Add Location
to HTTP::Request
common header names. (#8992 , thanks @mamantoha )
Concurrency
System
Runtime
Fixed exceptions not being inspectable when running binary from PATH. (#8807 , thanks @willhbr )
Move AtExitHandlers
to Crystal
namespace. (#8883 , thanks @bcardiff )
Compiler
(breaking-change) Drop disable_overflow
compiler flag. (#8772 , thanks @Sija )
Fixed url in "can't infer block return type" error message. (#8869 , thanks @nilium )
Fixed typo in math interpreter error message. (#8941 , thanks @j8r )
Use CRYSTAL_OPTS
environment variable as default compiler options. (#8900 , thanks @bcardiff )
Avoid using the default --exclude-warnings
value if some is specified. (#8899 , thanks @bcardiff )
Honor LIBRARY_PATH
as default library path, and allow linking with no explicit /usr/lib:/usr/local/lib
paths. (#8948 , thanks @bcardiff )
Fix Windows LLVM globals codegen in non-single-module mode. (#8978 , thanks @oprypin )
Add support for LLVM 10. (#8940 , thanks @RX14 )
Remove redundant calls to Object.to_s
in interpolation in compiler's code. (#8947 , thanks @veelenga )
Language semantics
Type as NoReturn
if calling method on abstract class with no concrete subclasses. (#8870 , thanks @asterite )
Tools
Doc generator
Others
You can’t perform that action at this time.