On one of these less forgiving architectures, how does one write programs that read some bytes off the network, bitcast them into a struct, and do something based on that?
On x86 you would use a packed struct that matches the wire protocol.
Wouldn’t this require extra copying if member reads were forced to be aligned?
To add, the set of observable mutations (beneficial or not) that occur as a result of a single point mutation is in all likelihood an extremely tiny subset of the set of all observable mutations - even after “deduping” for the observed effect.
To simplify, It’s saying, if the genome were a string of some length, for any possible byte b and byte position i, there exists a person whose genome has b at position i. Unlike normal character strings, there are only 20 or so valid characters (proteins) encoded by 3 “bytes” (nucleotides) each. So you’re looking at O(10 billion) values of (i, b) that would still keep the string well-formed in its 3-bytes-per-character encoding.
Most importantly, it’s not saying anything about having some bytes b1 and b2 at the ith and jth positions or any generalization thereof.
> CMake doesn't fetch your dependencies for you and ensure they're the version that your code is compatible with.
That’s a little too harsh. You can certainly make it do that via a combination of git tags (to build from source) and CMake modules/Find*, but yes, it’s much more cumbersome than cargo/npm/go