I am interested to have references and comment about pro/cons of the various methods that are used to implement complete gateset in a fault tolerant manner.
Usually the Clifford operations have a standard way to be implemented fault-tolerantly, at least in concatenated code (which I know best), by implementing them transversally. But it has been shown that it is not possible to have a complete gateset only based on transversal gates implementation. For this reason, for the non-clifford operations, other techniques are usually required. There is for what I know:
I have heard about other techniques like
- Code switching techniques (two codes $A$ and $B$ are able to implement different transversal gate such that the union of those gates form a complete gateset. You then decode the state from $A$ to encode it to $B$ when you need to perform a transversal gate allowed by $B$)
- Some codes admit a nice construction for a complete fault-tolerant gateset.
In the answer, I would be interested to know why magic state distillation is so popular those days, given the number of publications in this topic (because there are many other techniques). There is probably some clear advantage over other techniques that I don't see.