Best Linux Distro for >>=

Hi List, If my choice of Lunix distro depended 100% on its solidness as a Haskell devel platform (I am), what would you all recommend? Thanks for your time, Tom

On 19 June 2011 13:48, Tom Murphy
Hi List, If my choice of Lunix distro depended 100% on its solidness as a Haskell devel platform (I am), what would you all recommend?
In no particular order, the following seem to have good Linux support: Gentoo, Arch, Fedora and Debian (I think Testing). -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On Sun, Jun 19, 2011 at 00:59, Arlen Cuss
In no particular order, the following seem to have good Linux support: Gentoo, Arch, Fedora and Debian (I think Testing).
Please allow me to register my amusement at the idea of a distribution "with good Linux support". :D
That'd be FreeBSD. :p -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

On 19 June 2011 14:59, Arlen Cuss
In no particular order, the following seem to have good Linux support: Gentoo, Arch, Fedora and Debian (I think Testing).
Please allow me to register my amusement at the idea of a distribution "with good Linux support". :D
Amusement registered :p -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On 6/19/11, Arlen Cuss
In no particular order, the following seem to have good Linux support: Gentoo, Arch, Fedora and Debian (I think Testing).
Please allow me to register my amusement at the idea of a distribution "with good Linux support". :D
I was very surprised when I realized that this is sort of true. I had assumed that most coders are using Linux/BSD, and so the "best" (most recent, most stable) version of the Haskell Platform would be the (a) Linux one.

On Sun, Jun 19, 2011 at 12:59 AM, Ivan Lazar Miljenovic
On 19 June 2011 13:48, Tom Murphy
wrote: Hi List, If my choice of Lunix distro depended 100% on its solidness as a Haskell devel platform (I am), what would you all recommend?
In no particular order, the following seem to have good Linux support: Gentoo, Arch, Fedora and Debian (I think Testing).
It seems that NixOS also has nice support, although I haven't used it myself yet. Cheers, -- Felipe.

On Sat, Jun 18, 2011 at 8:59 PM, Ivan Lazar Miljenovic < ivan.miljenovic@gmail.com> wrote:
On 19 June 2011 13:48, Tom Murphy
wrote: Hi List, If my choice of Lunix distro depended 100% on its solidness as a Haskell devel platform (I am), what would you all recommend?
In no particular order, the following seem to have good Linux support: Gentoo, Arch, Fedora and Debian (I think Testing).
My experience is that OpenSuSE is not quite up-to-date, so I'd recommend going with Ubuntu if you can make the choice now. They seem to have the 2011 platform, http://packages.ubuntu.com/oneiric/haskell-platform For non-Haskell concerns, it seems Ubuntu is nice, since it's built on Debian, but is maybe a little more user-friendly (in community and software choices). I found Gentoo not so user-friendly ... I am not one to enjoy spending time installing operating systems, or building things from source, even if they run faster [wrt. AMD vs. Intel gcc build options] :). cheers, Nicholas — https://ntung.com — 4432-nstung

On Jun 18, 2011, at 8:48 PM, Tom Murphy wrote:
Hi List, If my choice of Lunix distro depended 100% on its solidness as a Haskell devel platform (I am), what would you all recommend?
If you are going to install the haskell platform and then use Cabal it really does not matter. Any of the current distros work just fine. On the other hand if you want to stick to supplied packages then you would be best served looking at the package lists and making your mind up from there.

On Sat, 18 Jun 2011 21:46:53 -0700, Sean Perry
On Jun 18, 2011, at 8:48 PM, Tom Murphy wrote:
Hi List, If my choice of Lunix distro depended 100% on its solidness as a Haskell devel platform (I am), what would you all recommend?
If you are going to install the haskell platform and then use Cabal it really does not matter. Any of the current distros work just fine.
On the other hand if you want to stick to supplied packages then you would be best served looking at the package lists and making your mind up from there.
You don't have to stick to the supplied packages though, you can create your own. Arch linux: The cabal2arch command is used to create the package, then I guess you can submit it to the AUR database. Gentoo: hackport merge pkgname Then often the only thing that is required is to edit the ebuild and either: (1) remove the lower range bound or (2) remove the upper range bound or (3) specify the range check to something like: =dev-haskell/attoparsec-0.9* As gentoo can not handle having more than 1 range check dependency in the ebuild. Your created ebuilds can be installed in your own overlay if you are not ready to publish them yet, say in /usr/local/portage/ or you can fork: https://github.com/gentoo-haskell/gentoo-haskell Use git rebase to rebase your commits into a linear history, and submit a pull request (which might require tweaking to be accepted) The Gentoo haskell overlay is currently on ghc 7.0.4 with the latest haskell platform. When ghc was bumped to 7.0.4 earlier this week, I just ran: haskell-updater and it rebuilt hundreds of Haskell packages with the new ghc. Gentoo supports live ebuilds. For example, to install Cloud Haskell from github: emerge -a dev-haskell/remote Normally there are other considerations on which linux distribution to use, like: (1) Ease of installation and maintenance of the operating system. Gentoo is difficult to install and maintain, it requires learning to be a Linux expert. (2) Gentoo is a source based distribution. This offers more flexibility, however it also means you need a powerful machine. For a notebook I think it should be a games machine or workstation notebook in order to be chunky and have good cooling. Fedora, Debian, FreeBSD: I don't use them, however I think they have very good support for Haskell packaging. For example, Fedora updates the haddock documentation index as pkgs are installed and removed (on Gentoo you need to run your own script manually to update the haddock documentation index. The haddock documentation is built with these use flags: doc hscolour). http://fedoraproject.org/wiki/Packaging:Haskell If the os distribution is missing a package that you need, then I think you can create and pkg it yourself. Regards, Mark

Hi, Am Sonntag, den 19.06.2011, 15:33 +1000 schrieb Mark Wright:
Fedora, Debian, FreeBSD:
I don't use them, however I think they have very good support for Haskell packaging. For example, Fedora updates the haddock documentation index as pkgs are installed and removed
same on Debian, file:///usr/share/doc/ghc-doc/html/libraries/index.html is one of the most-visited locations in my computer :-) For Debian, you can check where we deviate from the Haskell Platform on http://people.debian.org/~nomeata/platform.html and http://people.debian.org/~nomeata/hackagevsdebian.html gives you an idea of our coverage of Hackage. And, something that we are proud of: The dependencies between the Haskell library packages include the ABI hash, so an apt-get upgrade will never break installed Haskell libraries, but only upgrade if all depending packages have been rebuilt. Greetings, Joachim -- Joachim "nomeata" Breitner Debian Developer nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata

On 19 June 2011 20:26, Joachim Breitner
Hi,
Am Sonntag, den 19.06.2011, 15:33 +1000 schrieb Mark Wright:
Fedora, Debian, FreeBSD:
I don't use them, however I think they have very good support for Haskell packaging. For example, Fedora updates the haddock documentation index as pkgs are installed and removed
same on Debian, file:///usr/share/doc/ghc-doc/html/libraries/index.html is one of the most-visited locations in my computer :-)
For Debian, you can check where we deviate from the Haskell Platform on http://people.debian.org/~nomeata/platform.html and http://people.debian.org/~nomeata/hackagevsdebian.html gives you an idea of our coverage of Hackage.
And, something that we are proud of: The dependencies between the Haskell library packages include the ABI hash, so an apt-get upgrade will never break installed Haskell libraries, but only upgrade if all depending packages have been rebuilt.
Are these binary or source packages that you use the ABI hash? Also, how do you manage to update the documentation index on package installation/removal? -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

Hi, Am Sonntag, den 19.06.2011, 20:31 +1000 schrieb Ivan Lazar Miljenovic:
same on Debian, file:///usr/share/doc/ghc-doc/html/libraries/index.html is one of the most-visited locations in my computer :-)
For Debian, you can check where we deviate from the Haskell Platform on http://people.debian.org/~nomeata/platform.html and http://people.debian.org/~nomeata/hackagevsdebian.html gives you an idea of our coverage of Hackage.
And, something that we are proud of: The dependencies between the Haskell library packages include the ABI hash, so an apt-get upgrade will never break installed Haskell libraries, but only upgrade if all depending packages have been rebuilt.
Are these binary or source packages that you use the ABI hash?
The binary packages. Here is an example for how we make sure that an ABI incompatible change to web-routes requires a rebuild of yesod, and that until that happens the user will not get the new web-routes package installed. $ apt-cache show libghc-yesod-dev|grep Depends Depends: libghc-base-dev-4.3.1.0-91c38, libghc-base64-bytestring-dev-0.1.0.2-2bc90, libghc-blaze-builder-dev-0.2.1.4-eb4c4, libghc-bytestring-dev-0.9.1.10-6aa1e, libghc-cereal-dev-0.3.3.0-7fd4a, libghc-clientsession-dev-0.4.1-493f6, libghc-containers-dev-0.4.0.0-b4885, libghc-data-default-dev-0.2.0.1-9411c, libghc-directory-dev-1.1.0.0-393d8, libghc-email-validate-dev-0.2.6-c13c2, libghc-failure-dev-0.1.0.1-1e2c3, libghc-hamlet-dev-0.6.1.2-ec8f2, libghc-neither-dev-0.1.0-0adb6, libghc-network-dev-2.3.0.2-824dd, libghc-old-locale-dev-1.0.0.2-161f7, libghc-parsec-dev-3.1.1-33474, libghc-persistent-dev-0.3.1.3-d494b, libghc-puremd5-dev-2.1.0.3-754be, libghc-random-dev-1.0.0.3-7511f, libghc-template-haskell-dev-2.5.0.0-95716, libghc-text-dev-0.11.0.6-139d7, libghc-time-dev-1.2.0.3-34932, libghc-transformers-dev-0.2.2.0-4bbbf, libghc-wai-dev-0.2.2.1-53001, libghc-wai-extra-dev-0.2.4.2-4646d, libghc-web-routes-dev-0.23.4-ab46a, libghc-web-routes-quasi-dev-0.6.3.1-5c04c, libghc-xss-sanitize-dev-0.2.6-b2c10, libc6 (>= 2.7), libffi5 (>= 3.0.4), libgmp10, zlib1g (>= 1:1.1.4) $ apt-cache show libghc-web-routes-dev|grep Provides Provides: libghc-web-routes-dev-0.23.4-ab46a
Also, how do you manage to update the documentation index on package installation/removal?
The ghc-doc package installs a dpkg trigger that watches certain directories (the directories where library install their package descriptions and .haddock files). If such a change happens, /usr/lib/ghc-doc/gen_contents_index is run, which can be seen here: http://anonscm.debian.org/darcs/pkg-haskell/ghc/gen_contents_index.in Greetings, Joachim -- Joachim "nomeata" Breitner Debian Developer nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata

On 19 June 2011 20:51, Joachim Breitner
The binary packages. Here is an example for how we make sure that an ABI incompatible change to web-routes requires a rebuild of yesod, and that until that happens the user will not get the new web-routes package installed.
$ apt-cache show libghc-yesod-dev|grep Depends Depends: libghc-base-dev-4.3.1.0-91c38, libghc-base64-bytestring-dev-0.1.0.2-2bc90, libghc-blaze-builder-dev-0.2.1.4-eb4c4, libghc-bytestring-dev-0.9.1.10-6aa1e, libghc-cereal-dev-0.3.3.0-7fd4a, libghc-clientsession-dev-0.4.1-493f6, libghc-containers-dev-0.4.0.0-b4885, libghc-data-default-dev-0.2.0.1-9411c, libghc-directory-dev-1.1.0.0-393d8, libghc-email-validate-dev-0.2.6-c13c2, libghc-failure-dev-0.1.0.1-1e2c3, libghc-hamlet-dev-0.6.1.2-ec8f2, libghc-neither-dev-0.1.0-0adb6, libghc-network-dev-2.3.0.2-824dd, libghc-old-locale-dev-1.0.0.2-161f7, libghc-parsec-dev-3.1.1-33474, libghc-persistent-dev-0.3.1.3-d494b, libghc-puremd5-dev-2.1.0.3-754be, libghc-random-dev-1.0.0.3-7511f, libghc-template-haskell-dev-2.5.0.0-95716, libghc-text-dev-0.11.0.6-139d7, libghc-time-dev-1.2.0.3-34932, libghc-transformers-dev-0.2.2.0-4bbbf, libghc-wai-dev-0.2.2.1-53001, libghc-wai-extra-dev-0.2.4.2-4646d, libghc-web-routes-dev-0.23.4-ab46a, libghc-web-routes-quasi-dev-0.6.3.1-5c04c, libghc-xss-sanitize-dev-0.2.6-b2c10, libc6 (>= 2.7), libffi5 (>= 3.0.4), libgmp10, zlib1g (>= 1:1.1.4) $ apt-cache show libghc-web-routes-dev|grep Provides Provides: libghc-web-routes-dev-0.23.4-ab46a
So the Debian Haskell team then has to update the apt package when there's an ABI mismatch (that is, a dependency has been updated or rebuilt with a new ABI)? Or is this done automagically somehow for the user? -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

Hi, Am Sonntag, den 19.06.2011, 20:59 +1000 schrieb Ivan Lazar Miljenovic:
So the Debian Haskell team then has to update the apt package when there's an ABI mismatch (that is, a dependency has been updated or rebuilt with a new ABI)? Or is this done automagically somehow for the user?
we have to semi-manually start a binNMU (Debian slang for: Leave the source untouched, but rebuild the binary package). We have a script that detects which packages need to be rebuilt, which I run occasionally or when I have reasons to assume that it is needed (usually, you know that you broke some depending packages). The user can then not upgrade or install the broken packages for a day or two. We never build something on the users machine. After all, we are not Gentoo ;-). Well, besides the documentation index :-) Greetings, Joachim -- Joachim "nomeata" Breitner Debian Developer nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata
participants (9)
-
Arlen Cuss
-
Brandon Allbery
-
Felipe Almeida Lessa
-
Ivan Lazar Miljenovic
-
Joachim Breitner
-
Mark Wright
-
Nicholas Tung
-
Sean Perry
-
Tom Murphy