Skip to content

0.29.0

Compare
Choose a tag to compare
@bcardiff bcardiff released this 05 Jun 22:29
· 4054 commits to master since this release
fbfe8b6

Standard library

  • Fix example codes in multiple places. (#7718, thanks @maiha)

Macros

Numeric

  • (performance) Optimize String#to_u methods for the case of a negative number. (#7446, thanks @r00ster91)

Text

  • (breaking-change) Deprecate String#at, use String#char_at. (#7633, thanks @j8r)
  • (breaking-change) Change String#to_i to parse octals with prefix 0o (but not 0 by default). (#7691, thanks @icy-arctic-fox)
  • (breaking-change) Restrict some String#to_i arguments to be Bool. (#7436, thanks @j8r)
  • Add downcase option to String#camelcase. (#7717, thanks @wontruefree)
  • Add support for unicode 12.0.0. (#7721, thanks @Blacksmoke16)
  • Fix Unicode not showing up in the API docs. (#7720, thanks @r00ster91)

Collections

Serialization

Time

Files

  • (breaking-change) Rename File::DEVNULL to File::NULL. (#7778, thanks @r00ster91)
  • Fix handling of files starting with ~ in Path#expand. (#7768, thanks @byroot)
  • Fix Dir.glob(match_hidden: false) not hiding hidden files properly. (#7774, thanks @ayazhafiz)

Networking

Crypto

  • (breaking-change) Rename Crypto::Bcrypt::Password#== to #verify. (#7790, thanks @asterite)

Concurrency

Compiler

  • (breaking-change) Fix require relative path resolution. (#7758, thanks @asterite)
  • (breaking-change) Disallow '!' or '?' at the end of the LHS in an assignment. (#7582, thanks @Maroo-b)
  • Allow running compiler_specs with specific flags. (#7837, thanks @bcardiff)
  • Fix extend from generic types. (#7812, thanks @asterite)
  • Don't virtualize types in Union(...) and keep more accurate type information. (#7815, thanks @asterite)
  • Do not generate debug metadata for arguments of naked functions. (#7775, thanks @eyusupov)
  • Detect deprecation on initialize methods and methods with named args. (#7724, thanks @bcardiff)
  • Fix track of AST nodes location. (#7827, thanks @asterite)
  • Fix offsetof not being usable with macros. (#7703, thanks @malte-v)
  • Allow parsing of call &.@ivar. (#7754, thanks @asterite)
  • Fix Def#to_s with **options and &block. (#7854, thanks @makenowjust)
  • Check pointerof inner expression for errors. (#7755, thanks @asterite)
  • Fix some error messages. (#7833, thanks @asterite)
  • Improve wording of pointerof(self) parser error. (#7542, thanks @r00ster91)
  • Fix typo. (#7828, thanks @RX14)

Language semantics

  • (breaking-change) Fix new/initialize lookup regarding modules. (#7818, thanks @asterite)
  • (breaking-change) Don't precompute sizeof on abstract structs and modules. (#7801, thanks @asterite)
  • Consider macro calls in @ivar initializer. (#7750, thanks @asterite)
  • Give precedence to T.class over Class in method lookup. (#7759, thanks @asterite)
  • Honor enum base type on non-default values. (#7776, thanks @asterite)
  • Avoid lookup of private def defined inside macro. (#7733, thanks @asterite)
  • Improve type flow of var in if with &&. (#7785, thanks @asterite)
  • Fix handling of NoReturn in if. (#7792, thanks @asterite)
  • Improve edge issues with while and rescue. (#7806, thanks @asterite)
  • Improve error on macro call in proc pointer. (#7757, thanks @asterite)
  • Fix error on named args forwarding. (#7756, thanks @asterite)
  • Check NoReturn type in named args. (#7761, thanks @asterite)
  • Fix internal handling of unbound/abstract generic types. (#7781, thanks @asterite)
  • Fix wrong cast to unbound generic type. (#7793, thanks @asterite)
  • Fix subclass observer to handle edge case call over generic types. (#7735, thanks @asterite)
  • Fix edge case of abstract struct with one subclass. (#7787, thanks @asterite)
  • Make automatic cast work with with ... yield. (#7746, thanks @asterite)

Tools

Formatter

Others