Last week the Burst team shook up our day-to-day schedules with the opposite of a Unity classic - the hackweek. Unity has a strong culture around taking a week or two a year (once with the whole company, maybe once with your team), to hack on something that you think might be an interesting avenue for the future of Unity. These projects have often been spun out into products or parts of products in their own right.
One thing that has always bugged me with Rust is when you are interacting with complex non-Rust software. Yes LLVM, I’m looking at you! LLVM nearly always requires you to either a) have llvm-config on the path already, or b) find an LLVM install in some random place on the filesystem. I generally like to have a version of LLVM built myself (using RelWithDebInfo and forcing asserts on) that will naturally live at some arbitrary point in the filesystem - and then I want to somehow point my Rust code that is using LLVM at that folder.
The last four years of my coding life have been incredibly stressful. In this time I’ve: Started a job at AMD in the GPU compiler team. Left a job at AMD for Unity in the Burst compiler team. Wrapped up my involvement as a creator of Vulkan and SPIR-V. Learnt the C# and Rust programming languages. You couple this with the absolute trainwreck that was 2020 (COVID yay) and now it looks like 2021 might be mostly a write-off too, and the fact that my dog Benji has progressively worsening epilepsy that is horrific to witness - it is safe to say that I’m probably at the highest level of stress I’ve ever been under.
The more I’ve delved into the darkest corners of optimizing compilers, the more that incessant urge to optimize things has leeched out into my day to day life. I’ve found myself ever more obsessed over what the most optimal method to do things is. A few examples: While brushing my teeth twice a day I know I have a full two minutes where I can make use of my spare hand to do things.
I’ve always wanted to do the Advent of Code 2020 puzzles as a way to wind down in the run up to Christmas, but never quite got my act in gear to do it. This year I’ve changed that, and I’ve pushed all my solutions to my AOC 2020 repository on GitHub. I thought that now that I’ve completed the challenge, I’d do a review mostly of how I used Rust to complete the challenges and what I found.