Ruby (programming language): Difference between revisions

Content deleted Content added
Ruby 1.8 and 1.9: missed another uncited claim
Ruby 2: Copy semver info from History of Ruby
Line 66:
=== Ruby 2 ===
 
Ruby 2.0 was intended to be fully backward compatible with Ruby 1.9.3. As of the official 2.0.0 release on February 24, 2013, there were only five known (minor) incompatibilities.<ref name="2-0-release-incompatibilities"/> Ruby 2.0 added several new features, including:
 
Starting with 2.1.0, Ruby's versioning policy changed to be more similar to [[semantic versioning]], although it differs slightly in that minor version increments may be API incompatible.<ref name="semantic-versioning"/>
* [[Method (computer programming)|Method]] keyword arguments
* A new method, <code>Module#prepend</code>, to extend a class
* A new literal to create an array of symbols
* New API for [[lazy evaluation]] of Enumerables
* A new convention of using #to_h to convert objects to Hashes<ref name="Endoh"/>
 
Starting with 2.1.0, Ruby's versioning policy changed to be more similar to [[semantic versioning]].<ref name="semantic-versioning"/>
 
Ruby 2.2.0 includes speed-ups, bugfixes, and library updates and removes some deprecated APIs. Most notably, Ruby 2.2.0 introduces changes to memory handling{{snd}}an incremental garbage collector, support for garbage collection of symbols and the option to compile directly against jemalloc. It also contains experimental support for using [[vfork]](2) with system() and spawn(), and added support for the [[Unicode]] 7.0 specification. Since version 2.2.1,<ref name="2-2-1-release"/> [[Ruby (programming language)#Matz's Ruby interpreter|Ruby MRI]] performance on [[ppc64|PowerPC64]] was improved.<ref name="2-2-1-changelog"/><ref name="Pedrosa-1"/><ref name="Pedrosa-2"/> Features that were made obsolete or removed include callcc, the DL library, Digest::HMAC, lib/rational.rb, lib/complex.rb, GServer, Logger::Application as well as various C API functions.<ref name="obsolete-or-gone-in-2.2"/>