2016-12-26 07:00:02 -05:00
|
|
|
# -*- rdoc -*-
|
|
|
|
|
|
|
|
= NEWS for Ruby 2.5.0
|
|
|
|
|
|
|
|
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. <tt>https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER</tt>)
|
|
|
|
|
|
|
|
== Changes since the 2.4.0 release
|
|
|
|
|
|
|
|
=== Language changes
|
|
|
|
|
2017-01-01 04:07:56 -05:00
|
|
|
* Top-level constant look-up is removed. [Feature #11547]
|
|
|
|
|
2017-01-19 04:54:58 -05:00
|
|
|
* rescue/else/ensure are allowed inside do/end blocks. [Feature #12906]
|
|
|
|
|
2016-12-26 07:00:02 -05:00
|
|
|
=== Core classes updates (outstanding ones only)
|
|
|
|
|
2017-04-05 20:14:57 -04:00
|
|
|
* Array
|
|
|
|
|
|
|
|
* Array#append [Feature #12746]
|
|
|
|
* Array#prepend [Feature #12746]
|
|
|
|
|
2017-02-26 19:53:26 -05:00
|
|
|
* Integer
|
|
|
|
|
|
|
|
* Integer.sqrt [Feature #13219]
|
2017-04-25 07:42:31 -04:00
|
|
|
* Integer#step does no longer rescue exceptions when given
|
|
|
|
a step value which cannot be compared with #> to 0. [Feature #7688]
|
2017-05-07 03:18:10 -04:00
|
|
|
* Integer#{round,floor,ceil,truncate} now always return an Integer.
|
|
|
|
[Bug #13420]
|
2017-02-26 19:53:26 -05:00
|
|
|
|
2017-04-02 20:10:50 -04:00
|
|
|
* IO
|
|
|
|
|
|
|
|
* IO#pread [Feature #4532]
|
|
|
|
* IO#pwrite [Feature #4532]
|
|
|
|
|
2017-04-09 01:09:44 -04:00
|
|
|
* IOError
|
|
|
|
|
|
|
|
* exception message "stream closed" is changed [Bug #13405]
|
|
|
|
|
2017-05-01 03:50:53 -04:00
|
|
|
* Kernel
|
|
|
|
|
|
|
|
* Kernel#yield_self [Feature #6721]
|
|
|
|
|
2017-04-25 07:42:20 -04:00
|
|
|
* Numeric
|
|
|
|
|
|
|
|
* Numerical comparison operators (<,<=,>=,>) no longer rescue exceptions
|
|
|
|
of #coerce. Return nil in #coerce if the coercion is impossible.
|
|
|
|
[Feature #7688]
|
|
|
|
|
2017-04-25 07:42:43 -04:00
|
|
|
* Range
|
|
|
|
* Range#initialize no longer rescue exceptions when comparing begin and
|
|
|
|
end with #<=> and raise a "bad value for range" ArgumentError
|
|
|
|
but instead let the exception from the #<=> call go through.
|
|
|
|
[Feature #7688]
|
|
|
|
|
2017-02-11 10:08:33 -05:00
|
|
|
* Regexp
|
|
|
|
* Update Onigmo 6.1.1.
|
|
|
|
* Support absent operator https://github.com/k-takata/Onigmo/issues/82
|
|
|
|
|
2017-02-22 02:16:13 -05:00
|
|
|
* Thread
|
|
|
|
|
|
|
|
* Thread#fetch [Feature #13009]
|
|
|
|
|
2017-02-24 21:31:03 -05:00
|
|
|
* String
|
|
|
|
|
|
|
|
* String#-@ deduplicates unfrozen strings. Already-frozen
|
|
|
|
strings remain unchanged for compatibility. [Feature #13077]
|
2017-03-16 19:17:14 -04:00
|
|
|
* -"literal" (String#-@) optimized to return the same object
|
2017-03-26 06:21:45 -04:00
|
|
|
(same as "literal".freeze in Ruby 2.1+) [Feature #13295]
|
2017-02-24 21:31:03 -05:00
|
|
|
|
2016-12-26 07:00:02 -05:00
|
|
|
=== Stdlib updates (outstanding ones only)
|
|
|
|
|
2017-04-23 12:19:23 -04:00
|
|
|
* Net::HTTP
|
|
|
|
* Net::HTTP#proxy_user and Net::HTTP#proxy_pass now reflects http_proxy
|
|
|
|
environment variable if the system's environment variable is multiuser
|
|
|
|
safe. [Bug #12921]
|
|
|
|
|
2017-04-05 22:10:40 -04:00
|
|
|
* RbConfig
|
|
|
|
* New constants:
|
|
|
|
* RbConfig::LIMITS is added to provide the limits of C types.
|
|
|
|
|
2016-12-26 07:00:02 -05:00
|
|
|
=== Compatibility issues (excluding feature bug fixes)
|
|
|
|
|
2017-02-27 08:41:38 -05:00
|
|
|
* Random.raw_seed renamed to become Random.urandom. It is now
|
|
|
|
applicable to non-seeding purposes due to [Bug #9569].
|
|
|
|
|
2017-04-18 21:08:16 -04:00
|
|
|
* BasicSocket#read_nonblock and BasicSocket#write_nonblock no
|
|
|
|
longer sets the O_NONBLOCK file description flag as side effect
|
|
|
|
[Feature #13362]
|
|
|
|
|
2016-12-26 07:00:02 -05:00
|
|
|
=== Stdlib compatibility issues (excluding feature bug fixes)
|
|
|
|
|
2017-04-21 02:16:11 -04:00
|
|
|
* mathn.rb
|
|
|
|
Removed from stdlib. [Feature #10169]
|
|
|
|
|
2016-12-26 07:00:02 -05:00
|
|
|
=== C API updates
|
|
|
|
|
|
|
|
=== Supported platform changes
|
|
|
|
|
|
|
|
=== Implementation improvements
|
|
|
|
|
2017-01-21 23:02:42 -05:00
|
|
|
* (This might not be a "user visible feature change" but) Hash class's
|
|
|
|
hash function is now SipHash13. [Feature #13017]
|
|
|
|
|
2017-01-21 23:14:21 -05:00
|
|
|
* SecureRandom now prefers OS-provided sources than OpenSSL. [Bug #9569]
|
|
|
|
|
2016-12-26 07:00:02 -05:00
|
|
|
=== Miscellaneous changes
|
2017-04-21 01:35:34 -04:00
|
|
|
|
|
|
|
* configure option --with-ext now mandates its arguments. So for
|
|
|
|
instance if you run ./configure --with-ext=openssl,+ then the
|
|
|
|
openssl library is guaranteed compiled, otherwise the build fails
|
|
|
|
abnormally.
|
|
|
|
|
|
|
|
Note however to always add the ",+" at the end of the argument.
|
|
|
|
Otherwise nothing but openssl are built. [Feature #13302]
|