Hardware Memory Models

We’ll look at hardware exposing relaxed (non-intuitive) concurrency behaviour to programmers, and methods to get enforce synchronisation there. We’ll mostly talk about the ARM and POWER architectures. Side aim is to motivate the C++ memory model.

Custom Linux build on Raspberry Pi

I recently built and installed Linux on my Raspberry Pi 4B. This post is a reference with links to tutorials I followed including corrections to what worked and what didn’t, mainly intended for future reference.

Category Theory

In this post, I will talk about the definition of category theory, how I think about it and why it’s relevant (not much of this though).

Multimethods

Multimethods (or multiple dispatch) is something that sort of completes the picture of object-oriented method calling. It’s not something which is found in many modern programming languages, and it’s interesting to look at.

Monads

Monads have been on my mind for about a week now. I got to them when I was going through a bit of Haskell code and reading through the documentation for the methods side by side (how it came to be is a story for another day). Anyway, this is not about Haskell since Monads are just a design pattern that’s used in functional programming.