Weekly notes #11
Proposal for improving performance in MRI Ruby using RTL+JIT, on mruby, and fuzzing.
Ruby, systems, performance, and programming links from last week.
Ruby
Feature #12589: VM performance improvement proposal - Vladimir Makarov, who previously improved Hash table performance, wrote a RTL (basically a switch to register-based from stack-based VM), which promises a more performant and easier-to-optimize intermediate representation of Ruby code, and MJIT (a MRI Ruby JIT). The initial implementation is up on GitHub for testing and evaluation.
Partial Downloads with Enumerators and Fibers - On implementing resumable downloads.
mruby archive - An archive of news about mruby - the lightweight, embeddable Ruby implementation.
Bug #13234: Infinite recursion (stack overflow) in parse_char_class() - a CVE-2017-6181 in Ruby - uncovered by fuzzing miniruby.
Fuzzing
The last two links made me want to find out more about using fuzzing to
discover bugs. Here are some links on using American Fuzzy Lop (with
interpreted languages). I’m planning to write a walk-through about
fuzzing mruby
.
A fuzz job from start to finish
Advanced usage of American Fuzzy Lop