Releases
0.30.0
Language changes
Macros
Add args
/named_args
macro methods to Annotations
. (#7694 , thanks @Blacksmoke16 )
Unify resolve
and types
macro methods API for Type
and Path
for convenience. (#7970 , thanks @asterite )
Standard library
Numeric
Fixed incorrect Int#%
overflow. (#7980 , thanks @asterite )
Fixed inconsistency between Float#to_s
and BigFloat#to_s
, always show .0
for whole numbers. (#7982 , thanks @Lasvad )
Text
Collections
Serialization
(breaking-change) JSON: use enums instead of symbols. (#7966 , thanks @asterite )
Fixed YAML deserialization of String in a union type. (#7938 , thanks @asterite )
Validate element names in XML::Builder
. (#7965 , thanks @Blacksmoke16 )
Allow numeric keys in JSON (ie: Hash(Int32, String).from_json
). (#7944 , thanks @asterite )
Add alias
/merge
methods to YAML::Builder
and YAML::Nodes::Builder
. (#7949 , thanks @Blacksmoke16 )
Files
Networking
(breaking-change) Improve URL encoding. URI.escape
and URI.unescape
are renamed to URI.encode_www_form
and URI.decode_www_form
. Add URI.encode
and URI.decode
. (#7997 , #8021 , thanks @straight-shoota , @bcardiff )
(performance) HTTP protocol parsing optimizations. (#8002 , #8009 , thanks @asterite )
Fixed HTTP::Server
response double-close. (#7908 , thanks @asterite )
Enforce HTTP::Client
host argument is just a host. (#7958 , thanks @asterite )
Allow HTTP::Params.encode
to encode an arrays of values for a key. (#7862 , thanks @rodrigopinto )
Forward read_timeout
/write_timeout
in ssl socket to underlaying socket. (#7820 , thanks @carlhoerberg )
Natively support Same-site Cookies . (#7864 , thanks @Blacksmoke16 )
Allow setting buffer size for IO::Buffered
. (#7930 , thanks @carlhoerberg )
Crypto
Require openssl algorithm in pkcs5. (#7985 , thanks @will )
Fixed cipher expectation in OpenSSL::SSL::Socket
spec. (#7871 , thanks @j8r )
Concurrency
Fixed sysconf
call on OpenBSD. (#7879 , thanks @jcs )
System
Compiler
Fixed codegen of pointer.as(Nil)
. (#8019 , thanks @asterite )
Fixed edge cases in parser and stringifier. (#7886 , thanks @oprypin )
Fixed concrete_types
for virtual metaclass and modules. (#7951 , thanks @bcardiff )
Fixed incorrect remove_indirection
in TypeDefType
. (#7971 , thanks @bcardiff )
Fixed missing CRYSTAL_SPEC_COMPILER_FLAGS
usage in some more specs. (774768 , thanks @bcardiff )
Revamp compile error formatting & output. (#7748 , thanks @martimatix )
Add support for LLVM 8. (#7987 , thanks @bcardiff )
Add support for LLVM 7. (#7986 , thanks @bcardiff , @waj , @foutrelis , @wmoxam )
Add debug log helper function for codegen. (#7935 , #7937 , thanks @bcardiff )
Refactor codegen of unions. (#7940 , thanks @bcardiff )
Move LLVMId
from CodeGenVisitor
to Program
. (#7973 , thanks @bcardiff )
Minor additions and refactors on for LLVM codegen. (#7972 , thanks @bcardiff )
Add bin/check-compiler-flag
helper script. Add make clean_cache
. (da3892 , thanks @bcardiff )
Language semantics
Fixed generic metaclass argument expansion. (#7916 , thanks @asterite )
Fixed top-level private const not being scoped. (#7907 , thanks @asterite )
Fixed enum overflow when declaring members. (#7881 , thanks @asterite )
Fixed annotation lookup on generic types. (#7891 , thanks @asterite )
Tools
Formatter
Doc generator
Others
You can’t perform that action at this time.