Recent Posts

Easy SAE to Metric socket size conversion

1 minute read

There are approximately 25.6 millimeters per inch. What’s that? You say there are only 25.4 millimeters per inch? You’d be right in saying that 25.4 is a ...

Build template

1 minute read

I don’t like make. The syntax is clunky, the semantics are unintuitive, it’s hard to get parallel builds to work well, and there are a million ways to shoot...

Stupid vim trick

1 minute read

I decided yesterday to play with autocmd: function EditFileLine(file_line) let file = substitute(a:file_line, '\(.*\):\(.*\)', '', '') let line = substi...

Color wiring diagrams

2 minute read

Whenever I look at a car wiring diagram, I tend to get cross-eyed. The entire thing is usually black-and-white with labels to indicate wire color. When I s...

A new project

1 minute read

A difficult and unfortunate truth for any hobbyist is that there is only so much time in a single human lifespan. I have wanted to continue to play with JIT...

Converting stack-to-register

1 minute read

Like many other virtual machines, the YARV machine is stack-based.  Because most modern CPUs are register-based, to compile YARV bytecode to efficient native...

Why libjit?

2 minute read

One question I’ve been asked quite a bit over the last two years is why I decided to use libjit for Ludcirous. Evan Phoenix had considered it for Rubinius a...

A faster stack

1 minute read

I’m back in the country now and starting to work on Ludicrous again. A number of YARV instructions have now been implemented and very simple methods can be ...

Ludicrous on YARV

less than 1 minute read

Last night I was tinkering with Ludicrous and I decided to see how hard it would be to get it to run on YARV. After modifying the extension to compile again...

Ludicrous release is on the way

2 minute read

A number of months ago I began working on a just-in-time compiler for Ruby 1.8. What started as an experiment is actually now a reality – Ludicrous is now a...