TIL: a solid CL implementation can provide safe maps from high-level intrinsic types to low-level implementation types at run-time. Also, SBCL has at least two IRs with each able to provide optimization hints to the code generator and compiler. So cool.<p>I love reading Paul's posts. His bit on Tobasco sort[0] was amazing.<p>[0] <a href="http://www.pvk.ca/Blog/2012/08/27/tabasco-sort-super-optimal-merge-sort/" rel="nofollow">http://www.pvk.ca/Blog/2012/08/27/tabasco-sort-super-optimal...</a><p><i>update: link</i>
In certain ways, the difference between (Common) Lisp and other languages is the difference between Linux and Windows. When you have a fundamental problem in Windows, your only solution is to wait for a fix then reformat/reinstall. Similarly, when there's a problem in, say, a C compiler, all you can do is code around it, open an issue and wait for a fix in the next release.<p>In Common Lisp? Well, the compiler's right there under these floorboards. Have a long-running web application that's affected by this bug, and don't want to restart it? Just run this in the REPL.
Does the SBCL compiler use a separate third-party assembler? Otherwise, how does it know the POPCNT opcode/encoding? I didn't see the author specify it in the post.