Written by me, proof-read by an LLM. Details at end.
It’s the 25th! Whatever you celebrate this time of year, I wish you the very best and hope you are having a lovely day. For me, this is a family time: I’m not at all religious but was brought up to celebrate Christmas. So, today we’ll be cooking a massive roast dinner and enjoying family time1.
This series was an idea I had around this time last year, and it has been a substantial amount of work. I’ve really enjoyed writing it, and seeing the impact it has had on the compiled language community. I realise now in retrospect I exclusively used C and C++2, and concentrated on x86 a bit too much. If I do this again, I’ll try and widen my horizons!
Speaking of doing it again, I have a number of half-r…
Written by me, proof-read by an LLM. Details at end.
It’s the 25th! Whatever you celebrate this time of year, I wish you the very best and hope you are having a lovely day. For me, this is a family time: I’m not at all religious but was brought up to celebrate Christmas. So, today we’ll be cooking a massive roast dinner and enjoying family time1.
This series was an idea I had around this time last year, and it has been a substantial amount of work. I’ve really enjoyed writing it, and seeing the impact it has had on the compiled language community. I realise now in retrospect I exclusively used C and C++2, and concentrated on x86 a bit too much. If I do this again, I’ll try and widen my horizons!
Speaking of doing it again, I have a number of half-researched, half-written ideas that didn’t make the cut. I may either write a few more non-advent posts exploring them, or keep them for another year. Right now I can’t promise anything: most of the work for this series was done while I was between jobs, and now I am working full time I don’t know if I’ll be able to do this again. Despite the low-budget look of the videos, and the shortness of the posts, it has been a pretty phenomenal amount of work. I don’t know how regular content creators do it! I may post a follow-up on “the making of AoCO”, and go into some details of how I approached this series.
I’d like to thank a number of people:
- Jason Turner for some ideas, feedback and for being such a proponent of Compiler Explorer over the years.
- Malcolm Rowe for his review and encouragement.
- Laurie Kirk for her help and detailed instructions on getting a decent video setup and editing workflow.
- Sean Riley for invaluable video editing tutoring.
- Colin Hoad whose “Advent of Beeb” videos were the inspiration for this series.
- All the folks who work on compilers: GCC, clang, MSVC and the many others. I really only dug into GCC and clang, but without the hard work of compiler maintainers, this series wouldn’t exist.
- All of Compiler Explorer’s Patrons (join them here), GitHub sponsors (join them here), and in particular Greg Barker for his ideas.
- The Compiler Explorer Team - a group of lovely people who very kindly give up their time to help administrate the site, triage and fix bugs, and add new features. Without them, Compiler Explorer wouldn’t be a tenth of the site it is now.
- And of course, my wonderful wife, Ness, for her support over the last few months as I routinely ignored her to write articles and record and edit videos. Thank you - I love you so very much.
And of course, thank you for joining me on this journey. Compilers are amazing: truly one of the quiet modern miracles that makes the modern world possible!
See the video that accompanies this post.
This post is day 25 of Advent of Compiler Optimisations 2025, a 25-day series exploring how compilers transform our code.
This post was written by a human (Matt Godbolt) and reviewed and proof-read by LLMs and humans.
Support Compiler Explorer on Patreon or GitHub, or by buying CE products in the Compiler Explorer Shop.
As much as our teenage children will tolerate, anyway. ↩ 1.
In my notes I had at least a couple of Rust ideas, but never got around to them. ↩