We are pleased to announce the release of Ruby 2.2.0.
Ruby 2.2 includes many new features and improvements for the increasingly diverse and expanding demands for Ruby.
For example, Ruby’s Garbage Collector is now able to collect Symbol type objects. This reduces memory usage of Symbols; because GC was previously unable to collect them before 2.2. Since Rails 5.0 will require Symbol GC, it will support only Ruby 2.2 or later. (See Rails 4.2 release post for details.)
Also, a reduced pause time thanks to the new Incremental Garbage Collector will be helpful for running Rails applications. Recent developments mentioned on the Rails blog suggest that Rails 5.0 will take advantage of Incremental GC as well as Symbol GC.
Another feature related to memory management is an additional option for configure.in to use jemalloc Feature #9113. This feature is still experimental and currently disabled by default until we gather performance data and more use cases. When we are convinced of the benefits, this feature will be enabled by default.
Experimental support for using vfork(2) with system() and spawn() have also been added. You can read more detail on tanaka-san’s blog in Japanese. This could potentially bring huge speed-up when a large process executes external commands many times. However vfork(2) is still not well understood and a potentially harmful system call. We would like to experiment to find out how much benefit can be gained by gathering performance data and use cases.
Try and enjoy programming with Ruby 2.2.0, and report us your findings!
Notable Changes since 2.1
- Incremental GC (YARV Maniacs No.12)
- Symbol GC (presentation at RubyKaigi 2014)
- configure –with-jemalloc Feature #9113
- core libraries:
- Support Unicode 7.0 #9092
- Enumerable#slice_after #9071, Enumerable#slice_when #9826
- Float#next_float, Float#prev_float #9834
- File.birthtime, File#birthtime #9647
- String#unicode_normalize #10084
- Update Psych 2.0.8
- Update Rake 10.4.2
- Update RDoc 4.2.0
- Update RubyGems 2.4.5
- Update test-unit 3.0.8 (removed from repository but bundled in tarball)
- Update minitest 5.4.3 (removed from repository but bundled in tarball)
- Deprecate mathn
- C API
- Remove deprecated APIs
See NEWS in Ruby repository for details.
With those changes, 1557 files changed, 125039 insertions(+), 74376 deletions(-) from v2.1.0!