Releases
0.27.0
Compare
Sorry, something went wrong.
No results found
Language changes
(breaking-change) Disallow comma after newline in argument list. (#6514 , thanks @asterite )
Macros
Add Generic#resolve and Generic#resolve? macro methods. (#6617 , thanks @asterite )
Standard library
Fixed v1, v2, v3, v4, v5 methods of UUID. (#6952 , thanks @r00ster91 )
Fixed multiple docs typos and phrasing in multiple places. (#6778 , #6963 , thanks @r00ster91 )
Fixes Pointer/UInt subtraction. (#6994 , thanks @damaxwell )
Add stack overflow detection. (#6928 , #6995 , thanks @damaxwell )
Add caller file and line to Nil#not_nil!. (#6712 , thanks @yeeunmariakim)
Restrict Enum#parse/Enum#parse? to String arguments. (#6654 , thanks @vladfaust )
Refactor and unify printing exceptions from within fibers. (#6594 , thanks @Sija )
Improve docs on properties generated by property?. (#6682 , thanks @epergo )
Add docs to top level namespace constants. (#6971 , thanks @r00ster91 )
Macros
Numeric
(breaking-change) Disallow rand with zero value. (#6686 , thanks @oprypin )
(breaking-change) Let == and != compare the values instead of bits when dealing with signed vs unsigned integers. (#6689 , thanks @asterite )
Fixed Int#downto with unsigned int. (#6678 , thanks @gmarcais )
Add wrapping arithmetics operators &+ &- &*. (#6890 , thanks @bcardiff )
Add floor divisions operator Int#// and Float#//. (#6891 , thanks @bcardiff )
Add random support for BigInt. (#6687 , thanks @oprypin )
Add docs related to Float::Printer::*. (#5438 , thanks @Sija )
Text
Add String::Builder#chomp! returns self. (#6583 , thanks @Sija )
Add :default to colorize and document ColorRGB, Color256. (#6427 , thanks @r00ster91 )
Add String::Formatter support for c flag and improve docs. (#6758 , thanks @r00ster91 )
Collections
(breaking-change) Replace Indexable#at with #fetch. Remove Hash#fetch(key) as alias of Hash#[]. (#6296 , thanks @AlexWayfer )
Add Hash/Indexable#dig/dig?. (#6719 , thanks @Sija )
Add Iterator.chain to chain array of iterators. (#6570 , thanks @xqyww123 )
Add NamedTuple#to_h over empty tuples. (#6628 , thanks @icyleaf )
Optimize Indexable#join when all elements are strings. (#6635 , thanks @asterite )
Optimize Array#skip. (#6946 , thanks @asterite )
Serialization
Fixed YAML::Schema::FailSafe.parse and parse_all. (#6790 , thanks @r00ster91 )
Fixed order of xmlns and prefix in XML::Builder#namespace. (#6743 , thanks @yeeunmariakim)
Fixed CSV.build quoting of Char and Symbol. (#6904 , thanks @maiha )
Fixed docs for JSON::Serializable. (#6950 , thanks @Heaven31415 )
Add XML::Attributes#delete. (#6910 , thanks @joenas )
Add ability to quote values always in CSV.build. (#6723 , thanks @maiha )
Refactor how empty properties are handled in JSON::Serializable and YAML::Serializable. (#6539 , thanks @r00ster91 )
Time
(breaking-change) Rename Time#epoch to Time#to_unix. Also #epoch_ms to #unix_ms, and #epoch_f to #to_unix_f. (#6662 , thanks @straight-shoota )
Fixed spec for Time::Location.load_local with TZ=nil. (#6740 , thanks @straight-shoota )
Add support for ISO calendar week to Time. (#6681 , thanks @straight-shoota )
Add Time::Format support for %G, %g, %V. (#6681 , thanks @straight-shoota )
Add Time::Location loader support for Windows. (#6363 , thanks @straight-shoota )
Add Time#to_local_in to change time zone while keeping wall clock. (#6572 , thanks @straight-shoota )
Add Time::UNIX_EPOCH and drop private UNIX_SECONDS constant. (#6908 , thanks @j8r )
Change Time::DayOfWeek to ISO ordinal numbering based on Monday = 1. (#6555 , thanks @straight-shoota )
Refactor time specs. (#6574 , thanks @straight-shoota )
Add docs for singular method aliases, add Int#microsecond alias. (#6297 , thanks @Sija )
Files
(breaking-change) Remove Tempfile. Use File.tempfile or File.tempname. (#6485 , thanks @straight-shoota )
Fixed missing closed status check of FDs when creating a subprocess. (#6641 , thanks @Timbus )
Fixed ChecksumReader.write error message. (#6889 , thanks @r00ster91 )
Add File#delete, Dir#tempdir and improve File docs. (#6485 , thanks @straight-shoota )
Add File#fsync to flush all data written into the file to the disk device. (#6793 , thanks @carlhoerberg )
Add DEVNULL to docs. (#6642 , thanks @r00ster91 )
Improve checks for FreeBSD version due to breaking API changes. (#6629 , thanks @myfreeweb )
Improve performance of Zlib::Reader, Gzip::Reader and Flate::Reader by including IO::Buffered. (#6916 , thanks @asterite )
Refactor Crystal::System::FileDescriptor to use @fd ivar directly. (#6703 , thanks @straight-shoota )
Refactor {Zlib,Gzip,Flate}::Reader#unbuffered_rewind to use check_open. (#6958 , thanks @Sija )
Networking
(breaking-change) Remove deprecated alias HTTP::Server#bind_ssl. Use HTTP::Server#bind_tls. (#6699 , thanks @straight-shoota )
Add Socket::Address#pretty_print and #inspect. (#6704 , thanks @straight-shoota )
Add Socket::IPAddress loopback, unspecified and broadcast methods/constants. (#6710 , thanks @straight-shoota )
Fixed Socket#reuse_port? if SO_REUSEPORT is not supported. (#6706 , thanks @straight-shoota )
Fixed TCPServer handling of reuse_port. (#6940 , thanks @RX14 )
Add docs to demonstrate parameters for HTTP::Client. (#5145 , thanks @HCLarsen )
Add docs examples to Socket::Server#accept. (#6705 , thanks @straight-shoota )
Refactor socket_spec.cr into separate files. (#6700 , thanks @straight-shoota )
Refactor specs of HTTP::Client to remove inheritance for test server. (#6909 , thanks @straight-shoota )
Improve specs for HTTP::Server#close. (#5958 , thanks @straight-shoota )
Improve specs for socket. (#6711 , thanks @straight-shoota )
Crypto
Concurrency
Improve POSIX threads integration regarding locking, error and resource management. (#6944 , thanks @ysbaddaden )
Remove unintended public methods from Channel. (#6714 , thanks @asterite )
Refactor Fiber/Scheduler to isolate responsibilities. (#6897 , thanks @ysbaddaden )
Refactor specs that relied on Fiber.yield behavior. (#6953 , thanks @ysbaddaden )
System
Fixed fork and signal child handlers. (#6426 , thanks @ysbaddaden )
Use blocking IO on a TTY if it can't be reopened. (#6660 , thanks @Timbus )
Refactor Process in preparation for Windows support. (#6744 , thanks @RX14 )
Spec
Compiler
Fixed don't "ambiguous match" if there's an exact match. (#6618 , thanks @asterite )
Fixed allow annotations inside enums. (#6713 , thanks @asterite )
Fixed super inside macros will honor arguments. (#6638 , thanks @asterite )
Fixed guessed ivar type from splat arguments. (#6648 , thanks @makenowjust )
Fixed ASTNode#to_s of non-unary operator call without argument. (#6538 , thanks @makenowjust )
Fixed ASTNode#to_s for multiline macro expression. (#6666 , thanks @makenowjust )
Fixed ASTNode#to_s for {% verbatim do %} ... {% end %}. (#6665 , thanks @makenowjust )
Fixed empty case statement normalization. (#6915 , thanks @straight-shoota )
Fixed codegen of tuple elements with unreachable elements. (#6659 , thanks @makenowjust )
Fixed parsing of // corner cases. (#6927 , thanks @bcardiff )
Fixed recursive block expansion check for non ProcNotation restriction. (#6932 , thanks @makenowjust )
Fixed corner case of expressions not typed on main phase but typed on cleanup phase. (#6720 , thanks @makenowjust )
Improve error traces regarding return, next and break. (#6633 , thanks @asterite )
Add resolve generics typenodes in macros. (#6617 , thanks @asterite )
Add support for multiple output values in inline asm. (#6680 , thanks @RX14 )
Improve parsing of asm operands. (#6688 , thanks @RX14 )
Refactor rescue block codegen for Windows. (#6649 , thanks @RX14 )
Tools
Formatter
Fixed formatting of {% verbatim do %} ... {% end %} outside macro. (#6667 , thanks @makenowjust )
Fixed formatting of // corner cases. (#6927 , thanks @bcardiff )
Improve formatting of asm operands. (#6688 , thanks @RX14 )
Doc generator
Add support for comments after :nodoc: marker. (#6627 , thanks @Sija )
Fixed browser performance issue with blur filter. (#6764 , thanks @girng )
Accessibility improvement in search field. (#6926 , thanks @jodylecompte )
Others
You can’t perform that action at this time.