# 3.0 12/25/2020 Next major release of Ruby: 3.0 * Bug #1020: Matrix#rank loops in some circumstances * Feature #2043: incompatible character encodings * Feature #3688: redef keyword for method redefinition in Ruby 2.0 * Feature #7792: Make symbols and strings the same thing * Bug #4436: FileUtils verbose mode prints output to stderr * Feature #5009: Bang method (!) consistency in Ruby 2 API * Feature #17260: Promote pattern matching to official feature * Feature #7487: Cutting through the issues with Refinements * Bug #5246: bootstraptest fails on ia64 * Bug #5516: fill_standard_fds uses F_GETFD which is not defined on MinGW (broken build) * Feature #5422: File.fnmatch != Dir.glob # {no,sets} * Bug #5464: compile error in vm_eval.c * Bug #5469: Bus Error when accessing NAN and INFINITY * Feature #5479: import StringIO into core, add String#to_io * Feature #5494: Proposal: Improved Finalizer Semantics * Feature #5482: Rubinius as basis for Ruby 2.0 * Feature #5513: Numeric へ述語語の追加 * Feature #5512: Integer#/ の改訂 * Feature #5520: Numeric#exact?、Numeric#inexact? の追加 * Feature #5523: Numeric#sign の追加 * Bug #5954: IO.read_nonblock on IO.pipe generates Errno::EBADF (MinGW) * Feature #6201: do_something then return :special_case (include "then" operator) * Feature #6287: nested method should only be visible by nesting/enclosing method * Feature #6586: debugger belongs to core * Feature #6678: Precedence of ^ operator * Feature #6688: Object#replace * Feature #6711: Optional typing and method overloading * Feature #6868: Make `do` in block syntax optional when the block is the last argument of a method and is not an optional argument * Feature #7346: object(...) as syntax sugar for object.call(...) * Feature #7359: #eql? and #equal? naming * Bug #7442: StringScanner#charpos vs StringScanner#pos * Feature #7519: Module Single Inheritance * Feature #7711: RubyGems uses autoload * Feature #7738: Deprecate Set#+ as an alias of Set#|, use it for symmetric difference. Introduce Hash#| for Hash#reverse_merge in Rails. * Feature #7907: Give meaning to staby word * Feature #8038: Keyword `object` to be used instead of `class <<` * Bug #8036: Unable to compile Ruby 2.0.0p20 on Mac OSX 10.7.5 * Feature #16614: New method cache mechanism for Guild * Feature #6083: Hide a Bignum definition * Bug #6038: #instance_eval bug * Feature #7797: Hash should be renamed to StrictHash and a new Hash should be created to behave like AS HashWithIndifferentAccess * Feature #10406: Method starting with a capital is not detected when parentheses and receiver are omitted * Bug #10417: IO#set_encoding without int_enc doesn't keep current internal encoding * Feature #10506: Imprve Enumerator.any? behavior * Feature #10652: Automatic detection of user and password from env * Feature #7019: allow `private` and `protected` keywords to take blocks * Feature #3289: Division of negative numbers * Bug #340: 1.9/trunk does not work when compiled with llvm-gcc4 2.3 (gcc 4.2.1) * Feature #3627: catchのブロックを再実行するメソッド * Feature #5695: CoffeeScript "is" and "isnt" keywords * Feature #6270: add "??a" support for "not defined?(a) or a.nil?" * Feature #7432: Explicit way to define local variable in scope * Bug #7445: strptime('%s %z') doesn't work * Feature #4007: numeric literal syntax sugar * Feature #12650: Use UTF-8 encoding for ENV on Windows * Feature #1586: Including a module already present in ancestors should not be ignored * Feature #9001: Please package better standard library * Feature #13488: Set Encoding.default_external to UTF-8 on Windows * Feature #10119: [PATCH] [net/imap] Add CHANGEDSINCE FETCH modifier + complementary add MODSEQ Message Data Item in FETCH Command * Feature #2709: $VERBOSE, $DEBUG and Kernel#sprintf * Feature #4963: Refine and Document the Issue Tracking Process * Feature #13849: Show --dump options in help * Feature #4288: Allow invoking arbitrary method names with foo."something" syntax * Feature #5455: $SAFE should be removed * Feature #2013: [PATCH] a = *b calls b.*@ * Feature #5120: String#split needs to be logical * Feature #6670: str.chars.last should be possible * Feature #5352: How about using <> to represent Here Document? * Feature #14183: "Real" keyword argument * Feature #5632: Attempt to open included class shades it instead. * Bug #16676: `#hash` can change Hash object from ar_table to st_table * Feature #5653: "I strongly discourage the use of autoload in any standard libraries" (Re: autoload will be dead) * Feature #15743: RubyVM should be renamed to CRuby * Feature #16655: Each test on test-all should run `srand(seed)` at setup * Feature #15741: Ordinal parameters * Feature #5400: Remove flip-flops in 2.0 * Bug #6087: How should inherited methods deal with return values of their own subclass? * Feature #15973: Let Kernel#lambda always return a lambda * Bug #17343: Ractor can't clone frozen structures * Bug #17344: `Ractor#shareable?` confused by recursive structures * Feature #17371: Reintroduce `expr in pat` * Feature #14240: warn four special variables: $; $, $/ $\ * Bug #17385: Test failures on gcc 11 * Feature #17104: Do not freeze interpolated strings when using frozen-string-literal * Bug #4352: [patch] Fix eval(s, b) backtrace; make eval(s, b) consistent with eval(s) * Bug #16044: Float::ROUNDS (FLT_ROUNDS) should not be a constant. * Feature #17259: Kernel#warn should ignore