# -*- rdoc -*-
This document is a list of user visible feature changes made between releases except for bug fixes.
Note that each entry is kept so brief that no reason behind or reference information is supplied with. For a full list of changes with all sufficient information, see the ChangeLog file or Redmine (e.g. https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER
)
-
Array
-
Array#max and Array#min. [Feature #12172] This may cause a tiny incompatibility: if you redefine Enumerable#max and call max to an Array, your redefinition will be now ignored. You should also redefine Array#max.
-
-
Dir
-
Dir.empty?. [Feature #10121]
-
-
String
-
String.new(capacity: size) [Feature #12024]
-
-
Symbol
-
Symbol#match now returns MatchData. [Bug #11991]
-
-
MatchData
-
MatchData#named_captures [Feature #11999]
-
-
CSV
-
Add a liberal_parsing option. [Feature #11839]
-
-
optparse
-
Add an into option. [Feature #11191]
-
-
ruby_show_version() will no longer exits the process, if RUBY_SHOW_COPYRIGHT_TO_DIE is set to 0. This will be the default in the future.
-
In some condition, ‘[x, y].max` and `[x, y].min` are optimized so that a temporal array is not created. The concrete condition is an implementation detail: currently, the array literal must have no splat, must have at least one expression but literal, the length must be <= 0x100, and Array#max and min must not be redefined. It will work in most casual and real-life use case where it is written with intent to `Math.max(x, y)`.