bjth
2
Cool, any guesses as to why it has to go through so many hashing and compressing? I’m curious to the historical reasoning behind it.
It could definitely be simpler. But the basic motivation for why the normalization is so changing fixed-output derivations don’t cause mass-rebuilds.
Demystifying Nix is pretty fun but there is definitely a lack of documentation beyond the thesis for how it all works.
We know! I started writing it up already:
Anyone that wants to write docs is high encouraged to beat me to finishing that 
@Ericson2314 probably the fingerprint pre-hashing, and compress is finally enough.
All that’s needed for mass rebuilds afaik, is replacing the path with either the CA path (for FOD) or the input path modulo FOD.
I think having gone through this the multiple hashes (hash of hash) and compress to 20 bytes seem unnecessary … I think 
I just wrote this and all it did was open up more questions
I’d be interested to see a followup explaining how the content-addressed experimental feature plays into all this!
3 Likes