SBCL is a very interesting compiler. I can only encourage anyone, who is interested in Lisp or dynamic languages in general to check it out. It always compiles to native code, and as the article has shown, you can see what it compiles to. That gives you direct feedback how good the resulting code is.<p>By default, SBCL always generates "correct" code. That of course means for a dynamically typed language, that it has to assume any type. Also, for integer operations, it means, still producing a correct result, even if the integers exceed the values which can be represented by machine-sized integers. As a result, the generated code isn't overly impressive in the beginning. But SBCL has very high abilities to reason about the code, including type inferencing. So, when you add a few type declarations, the generated code gets substantially faster, often matching and sometimes even exceeding what GCC produces for C programs.
Am I the only person that noticed the hover on the lisp code blocks? Surprised me at first. Can't tell if I like the idea or not.<p>Rather, I know I like the idea. I can't decide if I like the execution. I'm leaning towards liking it.
TL;DR: Very interesting article about improving performance in Common Lisp. The author has a 6502 CPU emulator and finds out how to improve his assembly output. Additionally, it shows how the "static" typing facilities of Lisp help for increasing performance.