doc/changelogs/v1.8.md
Iterator::ChainIterator (#13412, thanks @straight-shoota)Log::Metadata#dup crash with 2+ entries (#13369, thanks @HertzDevil)JSON::Serializable on certain recursively defined types (#13430, thanks @kostya)String#scan with empty Regex match at multibyte char (#13387, thanks @HertzDevil)String#gsub, #scan, #split (#13406, thanks @HertzDevil)StaticArray's @buffer (#13319, thanks @HertzDevil)JSON::Serializable on certain recursively defined types (#13344, thanks @HertzDevil)String#gsub with empty match at multibyte char (#13342, thanks @straight-shoota)Regex with more than 127 named capture groups (#13349, thanks @HertzDevil)TupleLiteral (#12927, thanks @straight-shoota)Paths as type names for lib (#12903, thanks @HertzDevil)SyntaxHighlighter::HTML to escape identifier values (#13212, thanks @straight-shoota)Value#not_nil! copying the receiver (#13264, thanks @HertzDevil)Pointer#copy_to overflow on unsigned size and different target type (#13269, thanks @HertzDevil)compile_file spec helper (#13228, thanks @straight-shoota)Process::Status and OAuth::RequestToken (#13014, thanks @HertzDevil)Enum#includes? to require all bits set (#13229, thanks @straight-shoota)Enum.flags (#12900, thanks @straight-shoota)Range#size, #each, #sample (#13278, thanks @straight-shoota)Indexables to be stable (#13061, thanks @HertzDevil)Enum.[] convenience constructor (#12900, thanks @straight-shoota)Iterator::Slice type to not conflict with ::Slice (#12983, thanks @Blacksmoke16)Array#replace on shifted arrays (#13256, thanks @HertzDevil)Tuple#to_static_array (#12930, thanks @straight-shoota)Enum#inspect (#13004, thanks @straight-shoota)Slice#+(Slice) and Slice.join (#12081, thanks @HertzDevil)Enumerable#min(count) and #max(count) (#13057, thanks @nthiad)Array(T)#[]=(Int, Int, Array(T)) on shifted arrays (#13275, thanks @HertzDevil)Array in Channel.select_impl (#12827, #12962, thanks @straight-shoota)Array allocation in Channel.select(Tuple) (#12960, thanks @straight-shoota)Termios (#12940, thanks @HertzDevil)File.delete remove symlink directories, not Dir.delete (#13224, thanks @HertzDevil)fileapi for opening files on windows (#13178, thanks @Blacksmoke16)File.open fails (#13235, thanks @HertzDevil)File.symlink on Windows (#13141, thanks @HertzDevil)File.readlink on Windows (#13195, thanks @HertzDevil)find-llvm-config is unsuccessful (#13045, thanks @straight-shoota)LibLLVM.has_constant?(:AttributeRef) checks (#13162, thanks @HertzDevil)LLVM::Attribute#each_kind to use Enum#each (#13234, thanks @straight-shoota)Socket::IPAddress#link_local? (#13204, thanks @GeopJr)back\slash.txt in HTTP::StaticFileHandler specs (#12984, thanks @HertzDevil)MIME::Multipart.parse(HTTP::Client::Response, &) (#12890, thanks @straight-shoota)LibC.ntohs and htons with native code (#13027, thanks @HertzDevil)OAuth2::Client#make_token_request returning HTTP response (#12921, thanks @cyangle)HTTP::WebSocket#run (#13097, thanks @j8r)HTTP::StaticFileHandler's gzip check (#13138, thanks @HertzDevil)Range requests in HTTP::StaticFileHandler (#12886, thanks @jgaskins, @straight-shoota)hostname command fails (#12987, thanks @Blacksmoke16)Socket#tty? to false on Windows (#13175, thanks @Blacksmoke16)HTTP::Server::Response#reset for status_message (#13282, thanks @straight-shoota)Math.pw2ceil for all integer types (#13127, thanks @HertzDevil)Int128-and-float methods on Windows with LLVM 14+ (#13218, thanks @HertzDevil)Int128-and-float conversion overflow checks on Windows LLVM 14+ (#13222, thanks @HertzDevil)Char.to_i128 and .to_u128 (#12958, thanks @meatball133)Number collection convenience constructors (#13020, thanks @straight-shoota)#byte_swap with different int types (#13154, #13180, thanks @pan, @Blacksmoke16)BigRational.new(BigFloat) exact (#13295, thanks @HertzDevil)Crystal::System.print_error instead of LibC.printf (#13161, thanks @HertzDevil)Fibers (#13220, thanks @HertzDevil)Crystal::ThreadLocalValue (#13092, thanks @Sija)XPathContext (#13038, thanks @straight-shoota)use_*_discriminator for recursive Serializable::Strict types (#13238, thanks @HertzDevil)YAML::Any#[] and #[]? (#11646, thanks @straight-shoota)from_json for 128-bit integers (#13041, thanks @straight-shoota)--color option to spec runner (#12932, thanks @straight-shoota)Spec::Item#all_tags (#12915, thanks @compumike)Process.fork (#12934, thanks @straight-shoota)Process spec to wait on started processes (#12941, thanks @straight-shoota)from_winerror overload for flock_* (#13039, thanks @HertzDevil)Process.on_interrupt (#13034, thanks @HertzDevil)Process::Status#to_s and #inspect (#13044, thanks @straight-shoota)graceful parameter to Process#terminate (#13070, thanks @HertzDevil)Process::ExitReason and Process::Status#exit_reason (#13052, thanks @HertzDevil)File.tempfile in Crystal (#12111, thanks @straight-shoota)System::User#name: Fall back to #username if unavailable (#13137, thanks @HertzDevil)Process.ppid on Windows (#13140, thanks @HertzDevil)Regex::Options (#13223, thanks @straight-shoota)Regex::MatchOptions (#13248, thanks @straight-shoota)Path#drive with IPv6 UNC host names (#13190, thanks @HertzDevil)Regex::PCRE2#finalize redefinition (#13309, thanks @HertzDevil)Regex's summary (#13318, thanks @HertzDevil)crystal spec with multiple files (#12929, thanks @HertzDevil)llvm_ext.cc (#13177, thanks @HertzDevil)value_to_bool for module, generic module and generic module metaclass (#12920, thanks @asterite)-L directories before default ones (#13069, thanks @HertzDevil)value_to_bool for NoReturn (#13290, thanks @straight-shoota)x @y and x @@y in def parameters when y is reserved (#12922, thanks @HertzDevil)LiteralExpander select (#12926, thanks @straight-shoota)SemanticVisitor tighter rescue scope in Require visitor (#12887, thanks @straight-shoota): (#13129, thanks @HertzDevil)else inside lib struct (#13028, thanks @HertzDevil)(&) to param-less yielding defs before comment line (#13126, thanks @HertzDevil)& to yielding methods without a block parameter (#12951, thanks @HertzDevil)method_signature_yield (#13215, thanks @straight-shoota)& to yielding Defs without a block parameter (#12952, thanks @HertzDevil)bin/crystal print no error message when crystal is missing (#12981, thanks @straight-shoota)CRYSTAL variable pointing to itself (#13032, thanks @straight-shoota)__declspec(dllimport) from Windows libiconv build (#13219, thanks @HertzDevil)verbose=1 in test_llvm (#12931, thanks @straight-shoota)./scripts to format recipe (#13064, thanks @straight-shoota)scripts/update-distribution-scripts.cr (#13071, thanks @straight-shoota)libpcre2 on wasm32 (#13109, thanks @lbguilherme)llvm-config in find-llvm-config (#13087, thanks @straight-shoota)no_output_timeout on circleci (#13151, thanks @straight-shoota)release/1.7@1.7.3 (#13168, thanks @straight-shoota)no_output_timeout on circleci (cont.) (#13185, thanks @straight-shoota).gitignore (#13241, thanks @straight-shoota)std_spec execution (#13267, thanks @straight-shoota)test.cr in root of repo conflicting with parser warning specs (#13259, thanks @Blacksmoke16)bin/crystal in symlink working directory (#13281, thanks @straight-shoota)bin/crystal when no global crystal command is installed (#13286, thanks @straight-shoota)interpreter_spec (#13251, thanks @straight-shoota)all target as default before including Makefile.local (#13276, thanks @straight-shoota)