To make our library for efficient pangenomics more palatable, I made a little Unix shell. It “cheats” when it sees commands that invoke other pangenomic CLI tools and runs built-in functionality instead. The shell is built around an instruction-based IR that can fluidly intermix shell-like I/O (files and pipes) with efficient in-memory data structures. In a debatably fair comparison,…
Verilog is the foundation of all hardware design, and it is fatally flawed. We should all be worried about a glut of hardware bugs caused by Verilog’s unpredictable semantics and simplistic type system.
A special kind of bug exists in code that has to deal with geometric concepts like positions, directions, coordinate systems, and all that. Long ago, in an OOPSLA 2020 paper , we defined geometry bugs and designed a type system to catch them. This post demonstrates the idea through some buggy GLSL shaders.
I created a new intermediate language, called Bril , for teaching my funky open-source, hands-on compilers course. Because it’s for education, Bril prioritizes simplicity and regularity over more typical compiler priorities like performance and concision. This is an overview of Bril’s design, its quirks, and the ecosystem that has grown up around it since 2019.
In a previous post , I used a simple interpreter bug to demonstrate the research skill of manually reducing test cases. This time, I show off the excellent Shrinkray reducer to see how it can automate the same process. The tricky part when using automated test-case reducers is writing an interestingness test that actually does what you want. I list a few tricks that help me write good…