What’s new in Ruby 2.5

The dynamic web language gets faster, has quicker documentation
Ruby, one of the more venerable dynamic languages, has just gained in performance with the new 2.5 release.
Arriving on Christmas Day 2017, Ruby 2.5.0 is the first stable release in the 2.5 series.
New performance features in Ruby 2.5
It boosts performance by 5 to 10 percent by removing trace instructions from bytecode that has been found to be overhead. A dynamic instrumentation technique is used instead. Also, block passing by a block parameter has been made three times faster than it was in Ruby 2.4, through use of the Lazy Proc allocation technique.
Other features that improve performance include:
- Document generation has been boosted by switching from the legacy lexical analyzer from IRB to Ripper.
- The
Mutex
class has been rewritten to make it smaller and faster.Mutex
can be used to manage access to shared data from concurrent threads. - ERB generates code from a template at twice the speed as version 2.4.
- Performance has been improved in built-in methods including
Array#concat
,Enumerable#sort_by
, andString#concat
.
Other new Ruby 2.5 features
Other improvements in Ruby 2.5 include:
Struct/new
can create classes that accept keyword arguments.Do/end
blocks will now work directly withensure/rescue/else
.- The pp.rb library loads automatically.
- An option has been added to print backtrace in reverse order. The intent is to get the main error message without needing to scroll.
- To improve testing, support is offered for branch and method coverage measurement. Branch coverage reveals which branches are executed, while method coverage indicates which methods are invoked.
Ruby 2.5 also features a bug fix in which the SecureRandom library, for generating random numbers, which now prefers OS-provided sources over OpenSSL. Also, standard libraries such as cmath, csv, date, dbm, and ipaddr have been promoted to gems.
Where to download Ruby 2.5
You can download version 2.5 by opening this tar.gz file or this Zip file.