Paul Krill
Editor at Large

Rubinius Ruby language variant gets an upgrade

news
Sep 24, 20102 mins

Improvements offered in debugging, memory usage, and performance

Rubinius, an implementation of the Ruby programming language featuring enhancements for JIT (Just In Time) compilation and garbage collection, is being upgraded Friday, gaining improvements in debugging, memory usage, and performance.

Version 1.1 of Rubinius was released by Rubinius developers and is accessible at the Rubinius Web page. Rubinius is an open source project.

“We’re really fast under unique workloads” such as numerical performance applications, said Evan Phoenix, lead Rubinius developer at Rubinius at Engine Yard, which also employs lead developers for JRuby, a version of Ruby for the Java Virtual Machine.

“Rubinius is much easier to use in terms of its startup [than JRuby],” Phoenix said in an interview on Friday. “It’s much more lightweight than JRuby can be. We’ve got better memory utilization overall.”

Written in C++, the Rubinius bytecode virtual machine incorporates LLVM (Low Level Virtual Machine) bytecode to machine code. The bytecode compiler and most core classes are written in pure Ruby.

Features of 1.1 include a debugger API and reference CLI (Command Line Interface).  Although a debugger is provided, developers also can write their own debugger with version 1.1. “When we first did the first release, we didn’t have a good debugger story for people to use,” Phoenix said. This situation is corrected in Rubinius 1.1.

Developers can integrate their debuggers with IDEs. Aslo, a heap dump memory debugging tool is featured for writing out contents of a program, enabling analysis for bugs.

Performance improvements are featured, such as boosts involving for the Array#pack and String#unpack methods for converting data. “We spent a lot of time on this release improving those,” said Phoenix.

Memory usage is improved via instance variable packing. Developers to do not have to declare how classes are going to work for memory purposes.

JIT performance is improved via block inlining. “Our JIT is able to see through a lot of the complicated semantics of Ruby and generate fast machine code for high-level concepts,” Phoenix said.

A query agent is featured as well for getting low-level information out of the virtual machine.

Rubinius supports the Ruby on Rails Web development framework, Phoenix said.

This article, “Rubinius Ruby language variant gets an upgrade,” was originally published at InfoWorld.com. Follow the latest developments in business technology news and get a digest of the key stories each day in the InfoWorld Daily newsletter.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author