summaryrefslogtreecommitdiff
path: root/doc/NEWS-2.4.0
diff options
context:
space:
mode:
Diffstat (limited to 'doc/NEWS-2.4.0')
-rw-r--r--doc/NEWS-2.4.052
1 files changed, 27 insertions, 25 deletions
diff --git a/doc/NEWS-2.4.0 b/doc/NEWS-2.4.0
index 28e855cde1..8a02f03809 100644
--- a/doc/NEWS-2.4.0
+++ b/doc/NEWS-2.4.0
@@ -14,16 +14,13 @@ with all sufficient information, see the ChangeLog file or Redmine
=== Language changes
-* Multiple assignment in conditional expression is now allowed.
- [Feature #10617]
+* Multiple assignment in conditional expression is now allowed. [Feature #10617]
* Refinements is enabled at method by Symbol#to_proc. [Feature #9451]
-* Refinements is enabled with Kernel#send and BasicObject#__send__.
- [Feature #11476]
+* Refinements is enabled with Kernel#send and BasicObject#__send__. [Feature #11476]
-* Rescue modifier now applicable to method arguments.
- [Feature #12686]
+* Rescue modifier now applicable to method arguments. [Feature #12686]
* Toplevel return is now allowed. [Feature #4840]
@@ -32,17 +29,21 @@ with all sufficient information, see the ChangeLog file or Redmine
* Array
* Array#concat [Feature #12333]
+
Now takes multiple arguments.
* 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.
* Array#pack [Feature #12754]
+
Now takes optional argument `buffer:' to reuse already allocated buffer.
* Array#sum [Feature #12217]
+
This is different from Enumerable#sum in that Array#sum doesn't depend on
the definition of each method.
@@ -56,8 +57,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* Enumerable
- * Enumerable#chunk called without a block now return an Enumerator
- [Feature #2172]
+ * Enumerable#chunk called without a block now return an Enumerator [Feature #2172]
* Enumerable#sum [Feature #12217]
* Enumerable#uniq [Feature #11090]
@@ -95,6 +95,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* Integer#round now takes an optional keyword argument, half option, and the
default behavior is round-up now. [Bug #12548] [Bug #12958]
+
half option can be one of :even, :up, and :down. [Feature #12953]
* IO
@@ -104,8 +105,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* Kernel
- * Kernel#clone now takes an optional keyword argument, freeze flag.
- [Feature #12300]
+ * Kernel#clone now takes an optional keyword argument, freeze flag. [Feature #12300]
* MatchData
@@ -138,6 +138,7 @@ with all sufficient information, see the ChangeLog file or Redmine
for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences.
* Regexp#match? [Feature #8110]
+
This returns bool and doesn't save backref.
* Update to Onigmo 6.0.0.
@@ -153,6 +154,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* String#casecmp? [Feature #12786]
* String#concat, String#prepend [Feature #12333]
+
Now takes multiple arguments.
* String#each_line, String#lines now takes an optional keyword argument,
@@ -189,8 +191,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* Thread
- * Thread#report_on_exception and Thread.report_on_exception
- [Feature #6647]
+ * Thread#report_on_exception and Thread.report_on_exception [Feature #6647]
* TracePoint
@@ -200,8 +201,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* New module named Warning is introduced. By default it has only
one singleton method, named warn. This makes it possible for
- 3rd-party libraries to control the way warnings are handled.
- [Feature #12299]
+ 3rd-party libraries to control the way warnings are handled. [Feature #12299]
=== Stdlib updates (outstanding ones only)
@@ -215,8 +215,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* IPAddr
- * IPAddr#== and IPAddr#<=> no longer raise an exception if coercion fails.
- [Bug #12799]
+ * IPAddr#== and IPAddr#<=> no longer raise an exception if coercion fails. [Bug #12799]
* IRB
@@ -256,8 +255,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* Readline
- * Readline.quoting_detection_proc and Readline.quoting_detection_proc=
- [Feature #12659]
+ * Readline.quoting_detection_proc and Readline.quoting_detection_proc= [Feature #12659]
* REXML
@@ -267,8 +265,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* set
- * New methods: Set#compare_by_identity and Set#compare_by_identity?.
- [Feature #12210]
+ * New methods: Set#compare_by_identity and Set#compare_by_identity?. [Feature #12210]
* WEBrick
@@ -277,6 +274,7 @@ with all sufficient information, see the ChangeLog file or Redmine
=== Compatibility issues (excluding feature bug fixes)
* Array#sum and Enumerable#sum are implemented. [Feature #12217]
+
Ruby itself has no compatibility problem because Ruby didn't have sum method
for arrays before Ruby 2.4.
However many third party gems, activesupport, facets, simple_stats, etc,
@@ -286,6 +284,7 @@ with all sufficient information, see the ChangeLog file or Redmine
be perfectly compatible with all of them.
* Fixnum and Bignum are unified into Integer [Feature #12005]
+
Fixnum class and Bignum class is removed.
Integer class is changed from abstract class to concrete class.
For example, 0 is an instance of Integer: 0.class returns Integer.
@@ -300,6 +299,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* String/Symbol#upcase/downcase/swapcase/capitalize(!) now work for all of
Unicode, not only for ASCII. [Feature #10085]
+
No change is needed if the data is in ASCII anyway or if the limitation
to ASCII was only tolerated while waiting for a more extensive implementation.
A change (using the :ascii option) is needed in cases where Unicode data
@@ -307,6 +307,7 @@ with all sufficient information, see the ChangeLog file or Redmine
A good example of this are internationalized domain names.
* TRUE / FALSE / NIL
+
These constants are now obsoleted. [Feature #12574]
Use true / false / nil resp. instead.
@@ -332,8 +333,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* Shellwords.shellwords (shellsplit) treats the backslash as escape
character only when followed by one of the following characters:
- $ ` " \ <newline>
- [Bug #10055]
+ $ ` " \ <newline> [Bug #10055]
* Time
@@ -348,11 +348,13 @@ with all sufficient information, see the ChangeLog file or Redmine
* Tk
* Tk is removed from stdlib. [Feature #8539]
+
https://github.com/ruby/tk is the new upstream.
* XMLRPC
* XMLRPC is removed from stdlib, and bundled as gem. [Feature #12160][ruby-core:74239]
+
https://github.com/ruby/xmlrpc is the new upstream.
* Zlib
@@ -390,8 +392,8 @@ with all sufficient information, see the ChangeLog file or Redmine
=== Miscellaneous changes
* ChangeLog is removed from the repository.
+
It is generated from commit messages in Subversion by `make dist`.
Also note that now people should follow Git style commit message.
- The template is written at
- [Short (50 chars or less) summary of changes](https://git-scm.com/book/ch5-2.html).
- [Feature #12283]
+ The template is written at {Short (50 chars or less) summary of
+ changes}[https://git-scm.com/book/ch5-2.html]. [Feature #12283]