What is haskellng? What is the difference between 'haskellPackages' and 'haskellngPackages'?
Asked Answered
C

2

6

I have been reading this StackOverflow post in which we are advised to use the haskellng package set.

I have also read this but I did not understand what haskellng is.

I have read this too, but I still don't know what haskellng is.

Could someone please explain what haskellng is in a simple, clear way?

Why does haskellng matter ? Why is it good ?

I understand that haskellng is replacing something. But what is that something that it replaces ? Why does that something need to be replaced ?

In this post it is written:

So I'll never have to update if I don't want to?

My guess is that 'haskellPackages' and 'haskellngPackages' will co-exist for a while. Personally, I switched to Haskell NG, though, and I won't maintain any packages in the old hierarchy anymore. I suppose other contributors will do the same thing. Once you've converted your setup to 'haskellngPackages', there's no reason to look back, really.

What is the difference between 'haskellPackages' and 'haskellngPackages' ?

What is 'haskellPackages' ? Where does it come from ? What is it used for ?

Also in the same post they write:

Why should I care about this "new infrastructure"?

The new code will break evaluation of any Haskell-related configuration you may have in ~/.nixpkgs/config.nix or /etc/nixos/configuration.nix.

Privately generated cabal2nix expressions will cease to compile.

Installations that rely on ghc-wrapper finding GHC libraries automatically in your ~/.nix-profile are obsolete. If you use this approach, you won't be able to update your profile anymore.

What is the new code ? What was the old code ? Why is the new code breaking what ?

Candycandyce answered 20/6, 2015 at 11:20 Comment(0)
E
8

Could someone please explain what haskellng is in a simple, clear way?

Well, haskellng is the next generation Nix Haskell package set made for Nix. I think most of the work was done by Peter Simons. But note that in the latest master version, haskellngPackages has been renamed back to haskellPackages. So the difference doesn't matter if you are using living in the unstable channel.

Why does haskellng matter ? Why is it good ?

With haskellng, I guess everything is automated. Someone uploads a package to hackage and in around a week, that package derivation is automatically included in the nix haskell package set (undex nixpkgs) by some process (I guess it makes use of cabal2nix).

What is the difference between 'haskellPackages' and 'haskellngPackages' ?

In the latest master branch there is no difference between them as explained above.

What is 'haskellPackages' ? Where does it come from ? What is it used for ?

It was the eariler infrastructure for Haskell nix packages. It was used for, um, creating and building Haskell packages.

What is the new code ? What was the old code ? Why is the new code it breaking what ?

The new code is the haskellngPackages. The old code was haskellPackages. But it doesn't matter now as haskellng has been renamed back to the old name and the old code I guess is removed.

Easterling answered 20/6, 2015 at 11:46 Comment(8)
Many thanks Sibi ! What do you by latest master branch ? Where is it ? You mean git clone git://github.com/nixos/nixpkgs ? Does it matter what channel of nix I am using ?Candycandyce
Yes, that's the one. Yes, It matters what channel you are using.Easterling
Do I need to use the unstable channel ?Candycandyce
@Candycandyce If you want to live on the latest packages.Easterling
"in around a week" — maybe just minutes or hours if you use the latest version (i.e. HEAD) of everything?Wadding
@ErikAllik Does it just take hours now ? Feel free to edit the answer, then.Easterling
I was asking — I haven't tried using Hackage via Nix just yet but thought that was important enough of an aspect to ask here.Wadding
@ErikAllik My guess would be no. But you can ask in the nix IRC just to be sure. (I would be interested to know that as well!). But note that any new Haskell package which is not yet in nixpkgs (or even Hackage!) can be easily tried out using the tool cabal2nix. The manual has more details regarding this.Easterling
C
2

I asked this on the #nix channel :

me: Could someone please explain what haskellng is ? What is haskellng? What is the difference between 'haskellPackages' and 'haskellngPackages'?

Fuuzetsu: it no longer matters, it's the default new architecture and the old one doesn't exist

Fuuzetsu: we had 2 Haskell architectures for a while and -ng was the new one

Candycandyce answered 20/6, 2015 at 11:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.