Busy month…

It’s been quite a month for me. I’ll start with the ACCU conference in Bristol, April 21st to 25th.

The ACCU is the Association of C and C++ Users, an international body with largely European membership dedicated to professionalism in programming as well as the discussion of C++. Each year the conference collects some of the best names in the field for a five day exposition of what’s new and useful in the field. I went for the first time last year and found it a truly valuable experience. This year I decided to present: I took my colleague Tom Miles (@teknogrebo) with me and we discussed how we ported Total War: Rome 2 to OS X on the Mac. We spent quite a lot of time polishing this beast for a 90 minute slot but we ran out of time during delivery: we still had another 20 minutes of material when the session expired. View it here.

I didn’t attend the first day: this is set aside for tutorials and I didn’t see anything I could justify leaving my work for. In the remaining four days my notes list four keynotes and 11 talks. Here are my top five.

Marshall Clow told us all about hardening your code and introduced a series of sanitisers for Clang which I would like to wind in to the TW continuous integration process. In summary, he repeated the familiar mantra of version control, testing, compiler warnings, static and dynamic analysis and fuzzing. He also mentioned The Game Outcomes Project, which is well worth a read and you can find on Gamasutra. Marshall has posted slides for his talk here.

Olve Maudal didn’t do a C++ pub quiz this year (awwww…) (one day I’ll tell you how I made an utter buffoon of myself with Howard Hinnant, whom I didn’t recognise, on my team) but he did give an excellent talk on the History and Spirit of C and C++, which was a fine piece of industrial archaeology. His slides are here (and an alt is here).

David Sackstein gave a talk on coroutines. This is a hot topic right now, with several proposals making their stately and sedate way through the standardisation process. C# and Python have had this sort of thing for a while now, and it’s about time this paradigm was formally introduced to C++. David crammed a massive amount of content into 90 minutes and I recommend grabbing his powerpoint slides here. I tweeted about the richness of the talk at the time.

Chandler Carruth gave a talk on efficiency and performance through data structures and algorithms, carefully describing the difference between efficiency and performance and looking at power consumption and computation per Watt. The issue of discontiguous data structures being the root of all evil was covered (it’s the cache that kills it). We’ve known this in game dev for ever but it’s good to get it out beyond our little coding ghetto. No slides I’m afraid, but there is a version of this talk available on YouTube.

Dietmahr Kuehl addressed asynchronous operations, providing an interesting contrast to David Sackstein’s talk. He went into some detail about the multiple proposals on the table, N4397, N4398N4402 and N4453; described continuation functions, callbacks, completion tokens, all manner of coroutines; and left me feeling that this is a massive area of progress waiting to be made. Slides here.

Honourable mentions to Kevlin Henney’s many ways to write FizzBuzz, and Jonathan Wakely for an absorbing talk on ABIs.

See you next year!