Features/Ruby 2.0.0

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(Release Notes)
Line 70: Line 70:
 
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
*
+
 
 +
* The Ruby 2.0.0 breaks ABI compatibility with previous version of Ruby, therefore soname was bumped. All RubyGems which use binary extensions should be rebuilt. All applications which use Ruby binding should be rebuilt. Nevertheless, since upstream payed great attention to source compatibility, no changes to your code are needed.
 +
* RubyGems with binary extensions now use different directory structure, to provide better compatibility with JRuby and other interpreters. All libraries need to be adjusted to this change. This change is reflected in new [[User:Bkabrda/Packaging_Ruby_JRuby| packaging guidelines draft]].
 +
 
 +
* http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_371/NEWS
 +
* http://svn.ruby-lang.org/repos/ruby/tags/v1_9_1_431/NEWS
 +
* http://svn.ruby-lang.org/repos/ruby/tags/v1_9_2_320/NEWS
 +
* http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_327/NEWS
 +
* http://svn.ruby-lang.org/repos/ruby/tags/v2_0_0_preview2/NEWS
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==

Revision as of 16:07, 18 December 2012

Contents

Ruby 2.0.0

Summary

Ruby 2.0.0 is the latest stable version of Ruby, with major increases in speed and reliability. With this major update from Ruby 1.9.3 in Fedora 18 to Ruby 2.0. in Fedora 19, alongside JRuby, Fedora becomes the superior Ruby development platform.

Owner

  • Email: vondruch@redhat.com

Current status

  • Targeted release: Fedora 19
  • Last updated: 2012-12-18
  • Percentage of completion: 10%


Detailed Description

Ruby 2.0.0 is upstream's new major release of Ruby. It caries new features such as:

  • Refinements
  • Keyword arguments
  • Enumerable#lazy
  • Module#prepend
  • #to_h: Convention for conversion to Hash
  •  %i: a literal for symbol array
  • regexp engine was changed to Onigmo
  • DTrace support
  • TracePoint

Yet, it is source level backward compatible with Ruby 1.9.3, so you will continue to work.

The updated Ruby also provides better integration with Fedora, especially JRuby. But not only JRuyb, it is also one step closer to be prepared for other interpreters, such as Rubinius. Providing of custom Ruby loader with working name "multiruby" [1] will allow to easily switch interpreters executing your script, provides fallback to whatever Ruby interpreter is available on you system, yet still keeps backward compatibility with all your Ruby scripts.

[1] https://github.com/bkabrda/multiruby

Benefit to Fedora

Scope

How To Test

User Experience

Dependencies

Contingency Plan

Documentation

Release Notes

  • The Ruby 2.0.0 breaks ABI compatibility with previous version of Ruby, therefore soname was bumped. All RubyGems which use binary extensions should be rebuilt. All applications which use Ruby binding should be rebuilt. Nevertheless, since upstream payed great attention to source compatibility, no changes to your code are needed.
  • RubyGems with binary extensions now use different directory structure, to provide better compatibility with JRuby and other interpreters. All libraries need to be adjusted to this change. This change is reflected in new packaging guidelines draft.

Comments and Discussion