doc/changelogs/v1.2.md
Class (#11377, thanks @HertzDevil)BitArray#toggle when toggling empty subrange (#11381, thanks @HertzDevil):nodoc: flags to the right place to hide the __mul* functions. (#11326, thanks @wyhaines)Proc#call and abstract defs. (#10899, thanks @HertzDevil)proc_spec forcing normal compilation instead of JIT (#10964, thanks @straight-shoota)ProcNotation#to_s remove whitespace for nil output type (#10935, thanks @straight-shoota)is_a? for virtual metaclass types (#11121, thanks @asterite)Call.def_full_name print full block parameter (#10915, thanks @straight-shoota)typeof start a nested lexical scope (#10796, thanks @HertzDevil)Proc pointers (#11243, thanks @HertzDevil)CrystalPath#find_in_path_relative_to_dir for readability (#10876, #10990, #10988, thanks @straight-shoota)CrystalPath.expand_paths, expand relative to compiler path (#11030, thanks @straight-shoota)for's loop variables (#11141, thanks @HertzDevil)LLVM::ABI::AArch64#homogeneous_aggregate? (#11199, thanks @asterite)inject_primitives: false to macro_spec (#11269, thanks @straight-shoota)TypeNode#includers (#11116, thanks @HertzDevil).as?(NoReturn) always return nil (#10896, thanks @HertzDevil)is_a?(union) work correctly for virtual types (#11176, thanks @asterite)Crystal::Macros::HashLiteral#[] (#10930, thanks @kevinsjoberg)#is_a? in macros respect the AST node hierarchy (#11062, thanks @HertzDevil)SymbolLiteral and MacroId (#9298, thanks @MakeNowJust)instance_vars can be called (#11171, thanks @willhbr)file_exists? macro method (#10540, thanks @Sija)SystemError.from_winerror (#11220, thanks @straight-shoota):nodoc: when overriding public methods (#11096, thanks @HertzDevil)Array#product to Indexable#cartesian_product (#10013, thanks @HertzDevil)Slice(T).new(Int) where T is a union of primitive number types (#10982, thanks @HertzDevil)Array#transpose, Enumerable#reject, Enumerable#to_h work with tuples (#10445, thanks @HertzDevil)Enumerable#each block return type (#10928, thanks @straight-shoota)NamedTuple be Symbol (#10942, thanks @caspiano)BitArray#[](Int, Int) for sizes between 33 and 64 (#10809, thanks @HertzDevil)Range#step for non-integer Steppable types (#11130, thanks @straight-shoota)NamedTuple#map (#10950, thanks @caspiano)Slice#fill (#10924, thanks @HertzDevil)BitArray#toggle (#10743, thanks @HertzDevil)Slice, Array and Indexable::Mutable (#10163, #11029, #11254, thanks @MakeNowJust, thanks @straight-shoota)Enumerable(T)#reduce's return type to differ from T (#11065, thanks @HertzDevil)Enumerable#tally_by (#10922, thanks @caspiano)Indexable::Mutable(T) module (#11059, thanks @HertzDevil)#rotate! (#11198, thanks @HertzDevil)Fiber.timeout (#11271, thanks @toddsundsted)Scheduler#reschedule: Shortcut lookup for current fiber. (#11156, thanks @yxhuvud)File.match? to accept Path type as path argument (#11075, thanks @fishnibble)FileUtils method specs with String and Path arguments (#10987, thanks @straight-shoota)IO#read_char's default behaviour UTF-8-strict (#10446, thanks @HertzDevil)gets without peek involving \r and limit (#11241, thanks @asterite)FileUtils.mv work across filesystems (#10783, thanks @naqvis)Path#dirname and Path#extension (#11001, thanks @BlobCodes)Nil in HTTP-related methods and Log (#10624, thanks @oprypin)rescue syntax (#11083, thanks @straight-shoota)HTTP::Params can't run on its own (#11128, thanks @asterite)Domain attribute with leading dot (#11098, thanks @mamantoha)OpenSSL::SSL::Error in HTTP::Server#handle_client (#11146, thanks @straight-shoota)TCPSocket constructors (#11049, thanks @straight-shoota)URI in websockets (#10854, thanks @willhbr)max-age and expires for cookies (#10564, thanks @straight-shoota, @watzon)HTTP::Client requests once if io is closed (#11088, thanks @carlhoerberg)Socket for win32 (#10784, thanks @straight-shoota)URI.encode_path and deprecate URI.encode (#11248, thanks @straight-shoota)Math.frexp(BigFloat) (#10998, thanks @straight-shoota)BigInt#to_s emitting null bytes for certain values (#11063, thanks @HertzDevil)Float#humanize for values outside 1e-4...1e15 (#10881, thanks @straight-shoota)BigFloat#to_x methods (#10996, thanks @straight-shoota)#next_float and #prev_float to Float32 and Float64 (#10908, thanks @HertzDevil)Int#to_s (#10926, thanks @HertzDevil)Int128 compiler-rt methods (#11206, thanks @BlobCodes)BigDecimal operations with floats (#10874, thanks @stakach)String#to_(u/i)128(?) methods (#11245, thanks @BlobCodes)libunwind from callstack (#11205, thanks @straight-shoota)Nil: JSON and YAML (#10622, thanks @oprypin)YAML::PullParser#location (#10997, thanks @straight-shoota)JSON::PullParser.new (#10864, thanks @Blacksmoke16)JSON::PullParser#consume_number to use stdlib number parsing (#10447, thanks @straight-shoota)URI (#10404, thanks @straight-shoota)iterator_spec (#11148, thanks @asterite)describe without requiring an argument (#10974, thanks @straight-shoota)String#unsafe_byte_at (#10559, thanks @straight-shoota)IO#write_utf8 to #write_string. (#11051, thanks @straight-shoota)#write_string instead of #write whenever writing strings to unknown IOs (#11011, thanks @HertzDevil)#write_byte whenever writing ASCII characters to unknown IOs (#11124, thanks @HertzDevil)Int#chr reject surrogate halves (#10451, thanks @HertzDevil)String::Builder (#11025, thanks @HertzDevil)(-> ) correctly (#10945, thanks @HertzDevil)return/break/next properly (#10597, thanks @HertzDevil)crystal init: Improve transformation of project name with hyphens (#11170, thanks @Kanezoh)WARNING an admonition keyword (#10898, thanks @HertzDevil)test_linux_32 and add smoke test for 32-bit gnu (#11127, thanks @straight-shoota)package_build workflow (#11240, thanks @straight-shoota)make install (#10878, thanks @straight-shoota)maintenance_release and tagged_release workflows (#11273, thanks @straight-shoota)push_obs_nightly (#11301, thanks @straight-shoota)