mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			171 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # -*- rdoc -*-
 | |
| 
 | |
| = NEWS for Ruby 2.7.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.6.0 release
 | |
| 
 | |
| === Language changes
 | |
| 
 | |
| * Pattern matching is introduced as an experimental feature. [Feature #14912]
 | |
| 
 | |
| * Method reference operator, <code>.:</code> is introduced as an
 | |
|   experimental feature.  [Feature #12125] [Feature #13581]
 | |
| 
 | |
| * Proc.new and proc with no block in a method called with a block is warned
 | |
|   now.
 | |
| 
 | |
| * lambda with no block in a method called with a block errs.
 | |
| 
 | |
| * Non-Symbol keys in a keyword arguments hash were prohibited in 2.6.0,
 | |
|   but are now allowed again.  [Bug #15658]
 | |
| 
 | |
| * Numbered parameter as the default block parameter is introduced as an
 | |
|   experimental feature.  [Feature #4475]
 | |
| 
 | |
| * A beginless range is experimentally introduced.  It might not be as useful
 | |
|   as an endless range, but would be good for DSL purpose.  [Feature #14799]
 | |
| 
 | |
|      ary[..3]  # identical to ary[0..3]
 | |
|      where(sales: ..100)
 | |
| 
 | |
| * Setting <code>$;</code> to non-nil value is warned now.  Use of it in
 | |
|   String#split is warned too.
 | |
| 
 | |
| * Setting <code>$,</code> to non-nil value is warned now.  Use of it in
 | |
|   Array#join is warned too.
 | |
| 
 | |
| * Quoted here-document identifier must end within the same line.
 | |
| 
 | |
|      <<"EOS
 | |
|      " # This has been warned since 2.4
 | |
|      EOS
 | |
| 
 | |
| === Core classes updates (outstanding ones only)
 | |
| 
 | |
| Enumerable::
 | |
| 
 | |
|   New method::
 | |
| 
 | |
|     * Added Enumerable#tally.  [Feature #11076]
 | |
| 
 | |
| Enumerator::
 | |
| 
 | |
|   New method::
 | |
| 
 | |
|     * Added Enumerator::Yielder#to_proc so that a Yielder object
 | |
|       can be directly passed to another method as a block
 | |
|       argument.  [Feature #15618]
 | |
| 
 | |
| Integer::
 | |
| 
 | |
|   Modified method::
 | |
| 
 | |
|     * Integer#[] now supports range operation.  [Feature #8842]
 | |
| 
 | |
|          0b01001101[2, 4]  #=> 0b0011
 | |
|          0b01001100[2..5]  #=> 0b0011
 | |
|          0b01001100[2...6] #=> 0b0011
 | |
|              ^^^^
 | |
| 
 | |
| Regexp/String::
 | |
| 
 | |
|     * Update Unicode version and Emoji version from 11.0.0 to
 | |
|       12.0.0.  [Feature #15321]
 | |
| 
 | |
|     * Update Unicode version to 12.1.0, adding support for
 | |
|       U+32FF SQUARE ERA NAME REIWA.  [Feature #15195]
 | |
| 
 | |
| === Stdlib updates (outstanding ones only)
 | |
| 
 | |
| Bundler::
 | |
| 
 | |
|   * Upgrade to Bundler 2.1.0.pre.1
 | |
|     Bundled from https://github.com/bundler/bundler/commit/a53709556b95a914e874b22ed2116a46b0528852
 | |
| 
 | |
| CSV::
 | |
| 
 | |
|   * Upgrade to 3.0.9.
 | |
|     See https://github.com/ruby/csv/blob/master/NEWS.md.
 | |
| 
 | |
| Date::
 | |
| 
 | |
|   * Date.jisx0301, Date#jisx0301, and Date.parse provisionally support the
 | |
|     new Japanese era as an informal extension, until the new JIS X 0301 is
 | |
|     issued.  [Feature #15742]
 | |
| 
 | |
| ERB::
 | |
| 
 | |
|   * Prohibit marshaling ERB instance.
 | |
| 
 | |
| IRB::
 | |
| 
 | |
|   * Introduce syntax highlight inspired by pry.gem to inspect output for some
 | |
|     core-class objects and binding.irb source lines if $TERM is set and not dumb.
 | |
| 
 | |
| Net::IMAP::
 | |
| 
 | |
|   * Add Server Name Indication (SNI) support.  [Feature #15594]
 | |
| 
 | |
| RSS::
 | |
| 
 | |
|   * Upgrade to RSS 0.2.8.
 | |
|     See https://github.com/ruby/rss/blob/master/NEWS.md.
 | |
| 
 | |
| RubyGems::
 | |
| 
 | |
|   * Upgrade to RubyGems 3.1.0.pre1
 | |
|     Bundled from https://github.com/rubygems/rubygems/commit/97b264f0fa248c864b6ee9a23d3ff1cdd217dddb
 | |
| 
 | |
| === Compatibility issues (excluding feature bug fixes)
 | |
| 
 | |
| === Stdlib compatibility issues (excluding feature bug fixes)
 | |
| 
 | |
| profile.rb, Profiler__::
 | |
| 
 | |
|   * Removed from standard library. No one maintains it from Ruby 2.0.0.
 | |
| 
 | |
| === C API updates
 | |
| 
 | |
| === Implementation improvements
 | |
| 
 | |
| JIT::
 | |
| 
 | |
|   * JIT-ed code is recompiled to less-optimized code when an optimization assumption is invalidated.
 | |
| 
 | |
|   * Method inlining is performed when a method is considered as pure.
 | |
|     This optimization is still experimental and many methods are NOT considered as pure yet.
 | |
| 
 | |
|   * Default value of +--jit-max-cache+ is changed from 1,000 to 100
 | |
| 
 | |
|   * Default value of +--jit-min-calls+ is changed from 5 to 10,000
 | |
| 
 | |
| GC::
 | |
| 
 | |
|   * New `GC.compact` method for compacting the heap.
 | |
|     This function compacts live objects in the heap so that fewer pages may
 | |
|     be used, and the heap may be more CoW friendly. [Feature #15626]
 | |
| 
 | |
|     Details on the algorithm and caveats can be found here:
 | |
|     https://bugs.ruby-lang.org/issues/15626
 | |
| 
 | |
| === Miscellaneous changes
 | |
| 
 | |
| * Require compilers to support C99 [Misc #15347]
 | |
| 
 | |
|   * Details of our dialect: https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/C99
 | |
| 
 | |
| * Upstream repository is changed from Subversion to Git.
 | |
| 
 | |
|   * https://git.ruby-lang.org/ruby.git
 | |
| 
 | |
|   * RUBY_REVISION class is changed from Integer to String.
 | |
| 
 | |
|   * RUBY_DESCRIPTION includes Git revision instead of Subversion's one.
 | 
