Hi Gergely, > This is what I wanted to know, that you want to switch after packages > are OK and we're not waiting for a new haskell platform or whatever. > I'd prefer this way too, switch as soon as it works reasonably for > everything.
personally, I believe that Haskell Platform is useful mainly to encourage library writers to retain a certain degree of backwards compatibility even if it's inconvenient. When I tell someone that his library doesn't build with the latest HP release, then they tend to perceive that a significant issue and usually make an effort to remedy the situation. As a Haskell programmer, however, HP feels irrelevant to me. If I have to choose between different versions of the same library, I tend to choose the *latest* version -- regardless of what the latest HP release recommends. HP releases are far too infrequent to be relevant for day-to-day programming, IMHO. > In the current nixpkgs with ghc763, the default is happy 1.18 and alex > 3.0 in the sense that e.g. the pandoc derivation uses these older > versions (through haskell-defaults.nix, I guess). This is a bit > unfortunate for me, because on the other hand modern GHC (head and 7.8) > requires 1.19 and 3.1 to build. For every haskellPackages_ghcXYZ package set, we pick a release of the Haskell Platform that feels "appropriate" for that compiler (i.e. the latest available version when that compiler was released), and then we enforce the package versions recommended by that HP release in the package set. Since we associate GHC 7.6.3 with HP 2013.2.0.0 -- which mandates alex 3.0.5 and happy 1.18.10 -- this is what you get in haskellPackages_ghc763. In fact, this practice has become a serious issue for us: old package sets like haskellPackages_ghc6123 can build virtually nothing, because they provide ancient versions of fundamental libraries like 'network', 'parsec', etc. We've locked these old library versions in because that makes haskellPackages_ghc6123 conform to HP 2009.2.0.2 or something, but what good is that conformance if you can't build anything in that environment? Personally, I'd like to turn our various Haskell Platform environments into 'ghcWithPackages' expressions that live in all-packages.nix and provide exactly what they promise -- a properly installed Haskell Platform X.Y.Z that users can install into their profile. But those configurations should have no affect on the library versions we choose as defaults in haskellPackages_ghcXYZ. The default versions chosen there should always be the latest ones that we can choose without causing serious build failures. > May I ask why nixpkgs still prefers to build tools like pandoc with the > older happy? Will pandoc not build with the newer 1.19 one, or is this > because 1.18 is specified in the current haskell platform? Will this > change with 7.8? It's because 1.18 is specified by the current HP. I would like to change this behavior ASAP, but it's not exactly a trivial change to make and I can't say when I'll have the chance to pull it off. Take care, Peter _______________________________________________ nix-dev mailing list [email protected] http://lists.science.uu.nl/mailman/listinfo/nix-dev
