# Ruby 2.2.0 Released

**URL:** <https://www.ruby-forum.com/t/ruby-2-2-0-released/233570>\
**Category:** Development\
**Created:** [December 25, 2014, 10:43am UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570 "2014-12-25T10:43:48Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [December 25, 2014, 10:43am UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570/1 "2014-12-25T10:43:48Z")

</div>

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](http://weblog.rubyonrails.org/2014/12/19/Rails-4-2-final/) 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](http://weblog.rubyonrails.org/) 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](https://bugs.ruby-lang.org/issues/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](http://www.a-k-r.org/d/2014-09.html#a2014_09_06).  
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](https://bugs.ruby-lang.org/issues/10137) ([YARV  
Maniacs No.12](http://magazine.rubyist.net/?0048-YARVManiacs))
- [Symbol GC](https://bugs.ruby-lang.org/issues/9634) ([presentation  
at RubyKaigi 2014](http://www.slideshare.net/authorNari/symbol-gc))
- configure --with-jemalloc [Feature  
#9113](https://bugs.ruby-lang.org/issues/9113)
- core libraries:
  - Support Unicode 7.0 [#9092](https://bugs.ruby-lang.org/issues/9092)
  - New methods:
    - Enumerable#slice\_after  
[#9071](https://bugs.ruby-lang.org/issues/9071), Enumerable#slice\_when  
[#9826](https://bugs.ruby-lang.org/issues/9826)
    - Float#next\_float, Float#prev\_float  
[#9834](https://bugs.ruby-lang.org/issues/9834)
    - File.birthtime, File#birthtime  
[#9647](https://bugs.ruby-lang.org/issues/9647)
    - String#unicode\_normalize  
[#10084](https://bugs.ruby-lang.org/issues/10084)

- bundled libraries:
  - 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  
(WIP)](https://github.com/ruby/ruby/blob/v2_2_0/NEWS) for details.

With those changes, 1557 files changed, 125039 insertions(+), 74376  
deletions(-) from v2.1.0!

## Download

- [http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.bz2](http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.bz2)
  - SIZE: 13304042 bytes
  - MD5: d03cd4690fec1fff81d096d1c1255fde
  - SHA256:  
1c031137999f832f86be366a71155113675b72420830ce432b777a0ff4942955
  - SHA512:  
04edc53e8cd1732c3ca61ebeb1d6133614beb10f77f9abb80d8d36352fe8aa205112068e460bf600b2c7e81e0ddcc3b311e7e027c320366f1bd992b3e378a6ad

- [http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz](http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz)
  - SIZE: 16494584 bytes
  - MD5: cd03b28fd0b555970f5c4fd481700852
  - SHA256:  
7671e394abfb5d262fbcd3b27a71bf78737c7e9347fa21c39e58b0bb9c4840fc
  - SHA512:  
1ba0c68e1c8d2b60bbd1e218cf36463edbe34cf9418d7593702b631e68d02297465f752e71395f6cfa4104f4cd70a1eb44381ffb74bc7801758b830931fdcfc6

- [http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.xz](http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.xz)
  - SIZE: 10304244 bytes
  - MD5: 54b43c6c6c9dd4c4b08ceb03ad0ded7a
  - SHA256:  
848714e280fc5fb44dbac3b060b206e56c1947006324ee68a174d68b483ef8ca
  - SHA512:  
cd7e52faa464df8aca7ccfa23a5f06248e1ad82bc8c9f1829aa1b51ff37b15973b8caaa68e914d837325b8d59427fda4f3cad82c50925e1c84e688324a2a155d

- [http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.zip](http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.zip)
  - SIZE: 18441027 bytes
  - MD5: f8e1d0cee4f2d9535a9529ed23ae3700
  - SHA256:  
e06c1e2b1248cf881749833084b2bec93f7612676009190ff9bc89b8fd07c29f
  - SHA512:  
364dd927b496520d95a1b06c68e1a265015f4cab08bdf3efaa323d385e7bf075eae47f2e1db78a629db0f3c0c1ed24e086603ba21e2da02ac06dd3c8b716766e

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [December 25, 2014, 10:55am UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570/2 "2014-12-25T10:55:33Z")

</div>

On 2014/12/25 18:42, NARUSE, Yui wrote:

> We are pleased to announce the release of Ruby 2.2.0.

Congrats!

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [December 25, 2014, 12:12pm UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570/3 "2014-12-25T12:12:15Z")

</div>

I can’t install it in any of our Ubuntu servers using rbenv:

relocation R\_X86\_64\_32S against `.rodata’ can not be used when making a  
shared object; recompile with -fPIC

or:

/usr/bin/ld: ./libffi-3.2.1/.libs/libffi.a(raw\_api.o): relocation  
R\_X86\_64\_32S against `.rodata’ can not be used when making a shared  
object; recompile with -fPIC  
./libffi-3.2.1/.libs/libffi.a: error adding symbols: Bad value  
collect2: error: ld returned 1 exit status  
make[2]: \*\*\* […/…/.ext/x86\_64-linux/fiddle.so] Error 1

I couldn’t test in my Debian sid environment since I use RVM and RVM  
tries to install 2.2.0-rc1 when I ask it to install 2.2.0 after rvm get  
head.

Any ideas on what could that be?

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [December 25, 2014, 12:32pm UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570/4 "2014-12-25T12:32:04Z")

</div>

> ./libffi-3.2.1/.libs/libffi.a: error adding symbols: Bad value  
> collect2: error: ld returned 1 exit status  
> make[2]: \*\*\* [../../.ext/x86\_64-linux/fiddle.so] Error 1
> 
> I couldn’t test in my Debian sid environment since I use RVM and RVM tries  
> to install 2.2.0-rc1 when I ask it to install 2.2.0 after rvm get head.
> 
> Any ideas on what could that be?

Please install libffi and libffi-dev via apt-get

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [December 25, 2014, 1:15pm UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570/5 "2014-12-25T13:15:25Z")

</div>

On 25-12-2014 09:31, SHIBATA Hiroshi wrote:

> > ./libffi-3.2.1/.libs/libffi.a: error adding symbols: Bad value  
> > collect2: error: ld returned 1 exit status  
> > make[2]: \*\*\* [../../.ext/x86\_64-linux/fiddle.so] Error 1
> > 
> > I couldn’t test in my Debian sid environment since I use RVM and RVM tries  
> > to install 2.2.0-rc1 when I ask it to install 2.2.0 after rvm get head.
> > 
> > Any ideas on what could that be?  
> > Please install libffi and libffi-dev via apt-get

Thank you! That did the trick 🙂

Have a merry Christmas! 🙂

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [December 25, 2014, 5:31pm UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570/6 "2014-12-25T17:31:17Z")

</div>

Congrats all! Thank you for your hard work and continued support of  
Ruby.

See you all next year \<3 \<3 \<3 \<3  
Happy holidays!!!

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [December 25, 2014, 1:57pm UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570/7 "2014-12-25T13:57:27Z")

</div>

On 2014/12/25 21:14, Rodrigo Rosenfeld R. wrote:

> > Please install libffi and libffi-dev via apt-get
> 
> Thank you! That did the trick 🙂

Or configure with --enable-shared.

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [December 25, 2014, 10:27pm UTC](https://www.ruby-forum.com/t/ruby-2-2-0-released/233570/8 "2014-12-25T22:27:56Z")

</div>

Thanks, good to know 🙂  
Em 25/12/2014 10:57, “Nobuyoshi N.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) escreveu:
