mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* error.c: new method KeyError#receiver and KeyError#key. [Feature #12063] * hash.c: make KeyError object with receiver and key. * sprintf.c: ditto. Author: ksss <co000ri@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			204 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			204 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# -*- 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
 | 
						|
 | 
						|
* Top-level constant look-up is removed.  [Feature #11547]
 | 
						|
 | 
						|
* rescue/else/ensure are allowed inside do/end blocks.  [Feature #12906]
 | 
						|
 | 
						|
* refinements take place in string interpolations.  [Feature #13812]
 | 
						|
 | 
						|
=== Core classes updates (outstanding ones only)
 | 
						|
 | 
						|
* Array
 | 
						|
 | 
						|
  * Array#append  [Feature #12746]
 | 
						|
  * Array#prepend  [Feature #12746]
 | 
						|
 | 
						|
* Dir
 | 
						|
 | 
						|
  * Dir.glob provides new optional keyword argument, :base.
 | 
						|
    [Feature #13056]
 | 
						|
  * Dir.children  [Feature #11302]
 | 
						|
  * Dir.each_child  [Feature #11302]
 | 
						|
 | 
						|
* File
 | 
						|
 | 
						|
  * :newline option to File.open implies text mode now.  [Bug #13350]
 | 
						|
  * File#path now raises an IOError for files opened with
 | 
						|
    File::Constants::TMPFILE option. [Feature #13568]
 | 
						|
 | 
						|
* Hash
 | 
						|
 | 
						|
  * Hash#transform_keys  [Feature #13583]
 | 
						|
  * Hash#transform_keys!  [Feature #13583]
 | 
						|
 | 
						|
* IO
 | 
						|
 | 
						|
  * IO#pread  [Feature #4532]
 | 
						|
  * IO#pwrite  [Feature #4532]
 | 
						|
 | 
						|
* IOError
 | 
						|
 | 
						|
  * exception message "stream closed" is changed  [Bug #13405]
 | 
						|
 | 
						|
* Integer
 | 
						|
 | 
						|
  * Integer.sqrt  [Feature #13219]
 | 
						|
  * Integer#step does no longer rescue exceptions when given
 | 
						|
    a step value which cannot be compared with #> to 0. [Feature #7688]
 | 
						|
  * Integer#{round,floor,ceil,truncate} now always return an Integer.
 | 
						|
    [Bug #13420]
 | 
						|
 | 
						|
* Kernel
 | 
						|
 | 
						|
  * Kernel#yield_self  [Feature #6721]
 | 
						|
 | 
						|
* Numeric
 | 
						|
 | 
						|
  * Numerical comparison operators (<,<=,>=,>) no longer rescue exceptions
 | 
						|
    of #coerce. Return nil in #coerce if the coercion is impossible.
 | 
						|
    [Feature #7688]
 | 
						|
 | 
						|
* Process
 | 
						|
 | 
						|
  * Precision of Process.times is improved if getrusage(2) exists. [Feature #11952]
 | 
						|
 | 
						|
* 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]
 | 
						|
 | 
						|
* Regexp
 | 
						|
  * Update to Onigmo 6.1.1.
 | 
						|
    * Support absent operator https://github.com/k-takata/Onigmo/issues/82
 | 
						|
 | 
						|
* String
 | 
						|
 | 
						|
  * String#-@ deduplicates unfrozen strings.  Already-frozen
 | 
						|
    strings remain unchanged for compatibility.  [Feature #13077]
 | 
						|
  * -"literal" (String#-@) optimized to return the same object
 | 
						|
    (same as "literal".freeze in Ruby 2.1+) [Feature #13295]
 | 
						|
  * String#{casecmp,casecmp?} now return nil for non-string arguments
 | 
						|
    instead of raising a TypeError. [Bug #13312]
 | 
						|
  * String#delete_prefix is added to remove prefix [Feature #12694]
 | 
						|
  * String#delete_prefix! is added to remove prefix destructively [Feature #12694]
 | 
						|
  * String#delete_suffix is added to remove suffix [Feature #13665]
 | 
						|
  * String#delete_suffix! is added to remove suffix destructively [Feature #13665]
 | 
						|
  * String#each_grapheme_cluster and String#grapheme_clusters is added to
 | 
						|
    enumerate grapheme clusters [Feature #13780]
 | 
						|
 | 
						|
* Regexp/String: Updated Unicode version from 9.0.0 to 10.0.0 [Feature #13685]
 | 
						|
 | 
						|
* Thread
 | 
						|
 | 
						|
  * Thread#fetch  [Feature #13009]
 | 
						|
 | 
						|
  * Description set by Thread#name= is now visible on Windows 10.
 | 
						|
 | 
						|
* KeyError
 | 
						|
 | 
						|
  * KeyError#receiver [Feature #12063]
 | 
						|
  * KeyError#key      [Feature #12063]
 | 
						|
 | 
						|
=== Stdlib updates (outstanding ones only)
 | 
						|
 | 
						|
* Bundler
 | 
						|
 | 
						|
  * Add Bundler to Standard Library. [Feature #12733]
 | 
						|
 | 
						|
* ERB
 | 
						|
  * Add ERB#result_with_hash to render a template with local variables passed
 | 
						|
    with a Hash object. [Feature #8631]
 | 
						|
 | 
						|
  * Carriage returns are changed to be trimmed properly if trim_mode is specified
 | 
						|
    and used. Duplicated newlines will be removed on Windows. [Bug #5339] [Bug #11464]
 | 
						|
 | 
						|
* Net::HTTP
 | 
						|
  * Add more HTTP status classes
 | 
						|
 | 
						|
  * Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]
 | 
						|
 | 
						|
  * 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]
 | 
						|
 | 
						|
* RbConfig
 | 
						|
  * New constants:
 | 
						|
    * RbConfig::LIMITS is added to provide the limits of C types.
 | 
						|
 | 
						|
* Ripper
 | 
						|
  * New method:
 | 
						|
    * Ripper#state is added to tell the state of scanner. [Feature #13686]
 | 
						|
 | 
						|
  * New constants:
 | 
						|
    * Ripper::EXPR_BEG and so on for Ripper#state.
 | 
						|
 | 
						|
* Set
 | 
						|
  * Add Set#to_s as alias to #inspect [Feature #13676]
 | 
						|
 | 
						|
* WEBrick
 | 
						|
 | 
						|
  * Add Server Name Indication (SNI) support [Feature #13729]
 | 
						|
 | 
						|
=== Compatibility issues (excluding feature bug fixes)
 | 
						|
 | 
						|
* BasicSocket#read_nonblock and BasicSocket#write_nonblock no
 | 
						|
  longer sets the O_NONBLOCK file description flag as side effect
 | 
						|
  (on Linux only) [Feature #13362]
 | 
						|
 | 
						|
* Net::HTTP
 | 
						|
  * Net::HTTP#start now pass :ENV to p_addr by default. [Bug #13351]
 | 
						|
    To avoid this, pass nil explicitly.
 | 
						|
 | 
						|
* Random.raw_seed renamed to become Random.urandom.  It is now
 | 
						|
  applicable to non-seeding purposes due to [Bug #9569].
 | 
						|
 | 
						|
* Socket::Ifaddr#vhid is added [Feature #13803]
 | 
						|
 | 
						|
* ConditionVariable, Queue and SizedQueue reimplemented for speed.
 | 
						|
  They no longer subclass Struct. [Feature #13552]
 | 
						|
 | 
						|
=== Stdlib compatibility issues (excluding feature bug fixes)
 | 
						|
 | 
						|
* mathn.rb
 | 
						|
  Removed from stdlib. [Feature #10169]
 | 
						|
 | 
						|
=== C API updates
 | 
						|
 | 
						|
=== Supported platform changes
 | 
						|
 | 
						|
=== Implementation improvements
 | 
						|
 | 
						|
* (This might not be a "user visible feature change" but) Hash class's
 | 
						|
  hash function is now SipHash13. [Feature #13017]
 | 
						|
 | 
						|
* SecureRandom now prefers OS-provided sources than OpenSSL. [Bug #9569]
 | 
						|
 | 
						|
* Mutex rewritten to be smaller and faster [Feature #13517]
 | 
						|
 | 
						|
=== Miscellaneous changes
 | 
						|
 | 
						|
* Print backtrace and error message in reverse order if STDERR is unchanged and a tty.
 | 
						|
  [Feature #8661] [experimental]
 | 
						|
 | 
						|
* 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]
 |