cult of the bound variable
In yet another conversation IRC, someone brought up this really cool project from ICFPC 2006 called the cult of the bound variable - the task was to implement a virtual machine which contains a series of puzzles to solve. Being from ICFPC, the majority of the puzzles involved functional programming and I found that implementing the virtual machine was a lot more engrossing than solving the puzzles.
the spec provides a simple virtual machine using 8 registers and 12 instructions. the amount of work put into creating this puzzle must have been enormous - I also find it really cool that the author was able to compile their puzzles into this custom virtual byte code which the players were able to execute.
My implementation was in Golang and it was a nice opportunity to play with various byte features from Go, but I think writing the answer in C would have been 2 - 5x more performant (based on looking at other people’s implementations).
While developing my implementation, I spent most of my time optimizing how long it took to run the sandmark (the sandstone benchmark) and was able to get it down to ~40 seconds in the end.
I did do some of the initial puzzles and was able to find out 4 or 5 of the logins, but didn’t go much further than that - I was hoping to solve the puzzles with other people, but since I had started 10 years after the contest, there weren’t many other people working on the puzzles.