On Sat, Apr 26, 2025 at 12:23:25PM -0400, David Collier-Brown via talk wrote:
They keep trying to fix an NP-complete program with a hack. Alas, it's a popular hack, and when the perpetrators are told it won't work, they go "nah, nah, can't hear you".
TL:DR? Do it with shared libraries as Hugh suggests, or die in agony (:-))
I have a whole series on this: I used to work in/Binary Stability/ at Sun, where David J. Brown (which see!) solved it in Solaris.
The original Go paper was Russ Cox's https://research.swtch.com/version-sat He proposed using a "sat solver" to find particular combinations that would work... or timeout and say "can't find one".
Sun used a sat solver to make sure we hadn't screwed up the general case
In rough order, I wrote
* https://leaflessca.wordpress.com/2017/02/12/dll-hell-and-avoiding-an-np-comp... * https://leaflessca.wordpress.com/2018/10/28/how-about-a-stable-kernel-api/ * https://leaflessca.wordpress.com/2018/09/03/avoiding-an-np-complete-problem-...
The last one was an "experience report" submitted to the Go team.
Seems people keep repeating past mistakes. Shared libraries were invented for good reasons. But golang and some other modern languages seem to have decided static linking is so much better so they can move their code in a single piece around in containers. Security and efficiency are apparently not something they have heard of or at least they don't care. flatpaks and company cause a similar problem. -- Len Sorensen