Happy 10th Birthday Compiler Explorer!

Today is Compiler Explorer’s 10th Birthday:

commit 15ea5e164b55c2b5ee0d3b432e3984b8f361afd2
Author: Matt Godbolt <matt@godbolt.org>
Date:   Tue May 22 21:07:40 2012 -0500

    Initial import of GCC-Explorer

Ten years ago I got permission to open source a little tool called GCC Explorer. I’d developed it over a week or so of spare time at my then-employer DRW in node.js, and the rest, as they say, is history.

Screen capture of the GCC Explorer website as of its first commit
The site as it looked back in the day - amazingly if you check out the first commit from GitHub and run it, this is what you get!

After a few years it became clear that GCC Explorer was more than just GCC, and on 30th April 2014 the site became “Compiler Explorer” for the first time.

Since that time we’ve gone from supporting only C++ to supporting over 30 other languages including C#, Fortran, Ada, ispc, Rust, Kotlin, Java and even Python! We even have several super experimental language variants, like Herb Sutter’s metaclasses extensions for C++.

We perform around 3,000,000 compilations a week, and have done around 410 million compilations in total since I started keeping stats in 2015. C++ is our most popular language, racking up over 300,000 compilations a day during the week. In total we have 1.4 terabytes of built compilers and libraries, and to date we’ve stored just under a million short links totalling 5.3 GB of saved state.

Compiler Explorer's overall compilation statistics
Our stats - I'm trying to find a way to make our dashboards publicly available so you can see more. But so far have failed to do so; this is the best I have for now.

I’m extremely proud of how well received the site has been, and how it seems to have become part of the daily life for a number of developers, particularly those whose work the site absolutely builds on: the compiler authors themselves.

While Compiler Explorer was always a “scratch my own itch” site for answering questions about compiler optimizations, I’m delighted to see it gets used by some as a scratchpad for ideas, or to test out ideas on a variety of compilers quickly. In particular I’m so happy it’s being used to help teach people how to program, and to help the next generation of compiler developers hone their skills.

I take the responsibility and trust the community has placed in the site, and by extension me and the team of folks that run the site, very seriously. I’m very proud of our high uptime and our privacy policy and openness. Almost every line of code, infrastructure, installation script, shell script, tooling, AWS administration, terraform configuration, library and compiler binary we use or build is freely available on GitHub.

It takes a village to run a site like Compiler Explorer, and without the more than 278 contributors over the years, we wouldn’t be in the position we are now. I want to extend a huge thanks to anyone who’s contributed a PR, or filed an issue, or asked a question on Twitter, Slack or our Discord server, or even emailed me directly. Thank you: interacting with such lovely people is part of what makes this something I still enjoy doing.

I want to give a special thanks to a few individuals who have been absolutely core in the development of Compiler Explorer:

I’d also like to thank all the folks who support Compiler Explorer financially. I’m very grateful to those who support me on Patreon and GitHub Sponsors - for a long time your contributions were the only thing keeping the infrastructure paid for! Recently I was fortunate enough to add some corporate sponsors too: thank you all!

On a personal note, Compiler Explorer has brought me a number of amazing opportunities: I’ve attended lots of C++ conferences; started public speaking; I’ve become friends with a number of luminaries in the community (!); and in some circles my last name is used as a verb! That last one takes a while to get used to…

What does the future bring for Compiler Explorer? Well, right now I feel a bit like we’re drowning a little in issues and so our forward progress has stalled a little. If I had all the time in the world I’d love to add things like:

Of course - all those are pie-in-the-sky ideas. Maybe one day we’ll get them. Perhaps, if something on that list inspires you, you’ll consider joining us in contributing!

Once again - thanks to you all! Happy 10th Birthday, Compiler Explorer!

Filed under: Personal Coding Blog
Posted at 15:45:00 BST on 22nd June 2022.

About Matt Godbolt

Matt Godbolt is a C++ developer working in Chicago for Aquatic. Follow him on Mastodon.