
On 23 November 2012 21:06, Simon Marlow
On 22/11/2012 19:54, Gábor Lehel wrote:
On Thu, Nov 22, 2012 at 8:41 PM, Henning Thielemann
wrote: On Thu, 22 Nov 2012, Brandon Allbery wrote:
I am wondering if we're trying to solve the problem in the wrong way. The core of the problem is that various things get baked into libraries in the name of optimization, such that a given binary library has dependencies on precise versions of other libraries; it's not like C where anything supporting the ABI can use the same .a/.lib or .so/.dll/.dylib.
Right, I tend to agree. Multiple installs of packages make me feel uncomfortable and sleep less well at night... :)
I would like to see GHC support fixed ABIs, and the work I did with ABI hashing in GHC was aiming towards exactly that.
For fixed ABIs you would need to have the user explicitly declare every inline function, and then hash the definitions as part of the ABI. (also do something about strictness and arity, and other cross-module optimisation hints). It might be painful, but it could be optional, and the gains are quite nice: the ability to upgrade a library in-place without recompiling everything that depends on it. Especially now that we're moving towards shared libraries, this would become more useful.
Yes that would be really wonderful!! The current ABI situation is really very painful for packagers and beyond IMHO. To me it is actually the largest current problem with ghc. Jens