On 27/11/2024 18:59, Oleg Grenrus wrote:
So to repeat: if clients don't care to specify their compatibility correctly, have courage to say it's their fault their code broke.
In the general case, I agree: if a library introduces new exports and correctly bumps the minor version bound per the PVP, then the library author is not responsible for their clients having overly lax bounds. And perhaps it would be better if the language defaulted to encouraging more precise imports.
However for boot libraries specifically, clients may de facto be forced to upgrade to a newer library version in order to use a new GHC release (at least, if lib:ghc is in the install plan or they are using a Stackage-style universal package set). Correctly specified bounds don't help, they just result in a solver failure rather than a build failure. That's why I think GHC should aim to minimize boot library API changes within a single release series, at least until we can relax the coupling of boot libraries.
Adam -- Adam Gundry, Haskell Consultant Well-Typed LLP, https://www.well-typed.com/ Registered in England & Wales, OC335890 27 Old Gloucester Street, London WC1N 3AX, England _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs