Vladimir Makarov

Vladimir Makarov is a software developer. His major interests lay in algorithms, programming languages, compilers and JITs. Vladimir finished Moscow Institute of Physics and Technology and got his PhD in computer science in Russian Academy of Sciences.
Last 20 years he has been working on GCC at RedHat. Vladimir started his work on Ruby MRI in 2015. His MRI projects are new hash tables and ongoing implementation of new VM instructions and MJIT.
Vladimir lives in Toronto, Canada.

Vladimir Makarov's contributions

Featured image for: Mostly harmless: An account of pseudo-normal floating point numbers.
Article

An MIR-based JIT prototype for Ruby

Vladimir Makarov

Get insights for improving JIT (just-in-time) compiler performance for Ruby based on a GCC engineer's experience developing an MIR-based JIT prototype.

Featured image for: Mostly harmless: An account of pseudo-normal floating point numbers.
Article

How I developed a faster Ruby interpreter

Vladimir Makarov

Learn about 8 optimization techniques for a faster interpreter in Ruby which I developed using a dynamically specialized internal representation (IR).

ossible future development directions for the MIR project.
Article

MIR: A lightweight JIT compiler project

Vladimir Makarov

Take an in-depth look at the MIR lightweight JIT compiler project's goals and state of development, such as the addition of support for CRuby.

Ruby logo
Article

Register Transfer Language for CRuby

Vladimir Makarov

This post shows the advantages and disadvantages of using register transfer language (RTL) for CRuby, and it compares the performance of RTL CRuby with that of trunk CRuby.

Ruby logo
Article

Towards The Ruby 3x3 Performance Goal

Vladimir Makarov

This blog post is about my work to improve CRuby performance by introducing new virtual machine instructions and a JIT. It is loosely based on my presentation at RubyKaigi 2017 in Hiroshima, Japan. Version 3 of Ruby should be 3 times faster than version 2.

Ruby logo
Article

Towards Faster Ruby Hash Tables

Vladimir Makarov

Hash tables are an important part of dynamic programming languages. They are widely used because of their flexibility, and their performance is important for the overall performance of numerous programs. Ruby is not an exception. In brief, Ruby hash tables provide the following API: insert an element with given key if it is not yet on the table or update the element value if it is on the table delete an element with given key from the table get the...