When pigs fly: optimising bytecode interpreters

Vladimir Kazanov
Feb 20, 2019 · 16 min read

“No matter how hard you try, you can’t make a racehorse out of a pig. You can, however, make a faster pig.”
— A comment in the Emacs source code.

Everyone knows that pigs can’t fly — just like everyone thinks they know that bytecode interpreters, as a technology for executing…