▲ | int_19h 4 days ago | |
It works just fine in C land because modifying a struct in any way is an ABI breaking change, so in practice any struct type that is exported has to be automatically deemed frozen (except for major version upgrades where compat is explicitly not a goal). Alternatively, it's a pointer to an opaque data structure. But then that fact (that it's a pointer) is frozen. Either way, you can rely on dependencies not just pulling the rug from under you. | ||
▲ | shadowgovt 4 days ago | parent [-] | |
I like this answer. "It works just fine in C land because this is a completely impossible story in C land." (I remember, ages ago, trying to wrap my head around Component Object Model. It took me awhile to grasp it in the abstract because, I finally realized, it was trying to solve a problem I'd never needed to solve before: ABI compatibility across closed-source binaries with different compilation architectures). |