For Christmas, please make a donation to the ACLU

I’ve had a multi-year tradition now of asking all gifts to me be in the form of a donation to charity.  This year, I am continuing that trend, but with a specific immediate reason.  As all of you know, President-Elect Trump is a proud racist, misogynist, and homophobe.  Regardless of your politics*, we can all …

Continue reading ‘For Christmas, please make a donation to the ACLU’ »

crazy idea: how off the beaten path is your usage?

Warning: This is a potentially crazy idea, it may not work, and is something I’m probably not going to have time to investigate further.   Feel free to take it and run with it if you’re interested. Given a set of integration tests, a library which is used by the system under test, and a set …

Continue reading ‘crazy idea: how off the beaten path is your usage?’ »

Quick thoughts on WebKit’s B3

I just finished reading Introducing the B3 JIT Compiler and wanted to jot down some thoughts.  Fair warning, this post is being written in a hurry.  I’m focusing on getting down my initial reactions rather than trying for a really well thought out post.  That may follow at a later time or it may not. …

Continue reading ‘Quick thoughts on WebKit’s B3’ »

A perspective on friendly C

I was talking about John Regehr’s Friendly C proposal and recent follow-on post tonight with a friend, and decide to jot down some thoughts in a sharable format. I believe the idea of a friendly C variant is entirely feasible, but it posses an incredibly challenging design problem.  Every change considered needs to be validated …

Continue reading ‘A perspective on friendly C’ »

Remembering the Christmas spirit

Merry Christmas!  I hope you’re spending the day with family whether it be by blood, choice, or both. This year, I’ve continued the tradition I’ve made over the last few years and made almost all of my gifts for friends and family in the form of a charitable donation.  I have also made a donation …

Continue reading ‘Remembering the Christmas spirit’ »

Deoptimization terminology

Since I find myself talking about such things a good amount recently, I want to take a moment and define some depotimization terminology as I use it.  There doesn’t seem to be a common lexicon for this stuff; every compiler community has developed it’s own vocabulary. deoptimization – The event or process by which speculative …

Continue reading ‘Deoptimization terminology’ »

Observations on fuzzing in practice

I’ve been watching with interest over the last few months as first afl-fuzz, and more recently, llvm-fuzz have come into existence and gained – in some circles at least – prominence.  The interesting part to me is not the technology per se – fuzzing is pretty old news in academic circles – but the fact …

Continue reading ‘Observations on fuzzing in practice’ »

How much does it cost to maintain LLVM?

In early October of 2014, I started collecting changes that I saw fly by on llvm-commits that I thought would be straight-forward to automate.  I was trying to be pretty conservative, so these tend to be pretty basic things: fixing deceptive white space around an if clause, removing the name of a method from it’s …

Continue reading ‘How much does it cost to maintain LLVM?’ »

A thought on the correctness of refactoring

The hard part about writing a refactoring tool isn’t the actual code transformation; it’s establishing that the code transformation you wrote didn’t break your code. The traditional approach to validating the transform is to make it correct by construction.  The focus is on the correctness of the transformation in general, rather than a particular instance …

Continue reading ‘A thought on the correctness of refactoring’ »

Statepoint patches have landed

Early this week, I was able to submit the majority of the changes to support Statepoints in LLVM.  Before anyone gets too excited, let me note a few things: This is the less interesting part of our GC work.  The more interesting parts of late safepoint insertion have not landed yet and are likely a …

Continue reading ‘Statepoint patches have landed’ »