
Ruby language upgrade improves garbage collection, pattern matching
Ruby 2.7, the latest upgrade of the Ruby programming language, is now in a preview release. Ruby 2.7 brings improvements in garbage collection, pattern matching, and REPL (read-eval-print-loop).
The general release is planned for December 2019. New in the Ruby
preview release is compaction garbage collection, which is used to
defragment a fragmented memory space. The GC.compact
method
compacts the objects in the heap so that fewer pages are used. Members
of the Ruby development team explained that some multi-threaded Ruby
programs may cause memory fragmentation, which leads to high memory
utilization and speed degradation.
Other improvements in Ruby 2.7.0 include:
- An experimental pattern matching capability, which can traverse a
given object and assign a value if it matches a pattern. Pattern
matching is widely used in functional programming languages. - Multi-line editing is now supported in
irb
, the interactive Ruby shell. Integration with rdoc, the Ruby documentation system, also is provided. Withirb
, developers can display the reference for a class, method, or module. Also, source lines shown atbinding.irb
and inspect results for core-class objects now are colorized. - For the still-experimental just-in-time (JIT) compiler, first introduced in Ruby 2.6,
JIT-ed code is recompiled to less-optimized code when an optimization
has been invalidated. Further, method inlining is performed when a
method is considered pure. However, many methods are not yet considered
pure. - An
Enumerable#tally
counts the occurrence of each element. - A method reference operator,
.:
, is included on an experimental basis. - Also introduced as an experimental feature is a numbered parameter as the default block parameter.
You can download the preview release of Ruby 2.7 as well as stable releases of Ruby from ruby-lang.org.
IDG News Service
Subscribers 0
Fans 0
Followers 0
Followers