high probability of installation problems and quality of the glorious implementation

I'm still learning Haskell and also evaluating whether I want to use the language in my work. It seems like a fascinating language so far (although I don't know if laziness will be a detriment later for me eventually), but I'm a bit worried about the overall quality of its GHC implementation. For example, I tried installing GHC-6.10.2 on my Ubuntu 8.04 machine (probably the most mainstream Linux these days). 1st attempt: binary => failed "the impossible happened, report bug" (I think it's already in bugzilla for an even earlier version) 2nd attempt: source and docs => followed README, but "make" failed while building docs 3rd attempt: source only, no docs => make install succeeded, but ghci now seems to have its "readline" screwed up (no editing, can't quit even with Ctrl-C or Ctrl-D), while Ubuntu-bundled 6.8.* ghci works fine in this regard. If these kinds of issues are common only during installation, I can live with that, but if GHC is flaky overall, having to deal with this may cancel out whatever productivity advantages Haskell provides. If the quality of the installation procedures is different from the compiler itself, can you explain why?

FFT,
I'm still learning Haskell and also evaluating whether I want to use the language in my work.
I've been learning and using GHC in spare hours for several years. I've had challenges installing it on MacOSX-ppc, and on RHEL4; kind folks on irc and the mailing lists have always been very helpful, and if you haven't gone to either for help it's strongly recommended. Bring as much detail as you can about your environment and the errors you're getting. I should add that a lot of the great code available for Haskell is in the form of libraries on the hackage site. It's worth the time to get cabal-install working before doing anything else; many of those libraries will then install without a fuss. But the quality of packages varies (naturally), and the cabal tools, while handy, have their quirks. When in doubt, ask what packages people like, and ask for help before you're frustrated. There's reason to think that installation issues are about to improve somewhat, with the release of "The Haskell Platform" (THP). Take a minute to read about it if you haven't heard of it. THP promises to provide installation packages for common platforms, bundling the compiler, cabal-install, and a set of libraries with compatible versions and with active support. It's a small set for now, THP is in its infancy. Before you give up, consider using GHC 6.8.* for the time being, since it sounds like ubuntu's installer works for that. I think a lot of folks are still using 6.8, and earlier versions, quite happily. If you do end up giving up on Haskell because of installation frustrations, come back in a few months and see if things are better. Once it's installed and working, GHC's a very decent compiler. Naturally, it's not as mature as GCC. There are outstanding bugs and corner cases where performance isn't what it should be. From where I'm sitting, it seems to be improving in all those areas. There are several individuals and companies in this community who are using GHC, in production, with commercial success. Overall, challenges with the toolset have been less of a hurdle for me than mastering the language. I hope you are able to spend some time using it. Regards, John

On Sun, Apr 5, 2009 at 12:35 PM, John Dorsey
Once it's installed and working, GHC's a very decent compiler.
My general null hypothesis is, as Alec Baldwin put it, that a loser is a loser, or a buggy project is buggy. If GHC is robust overall (which I'm yet to find out), why is the installation so broken?

That is strange, I'm using Ubuntu myself, and I come from Windows so know
absolutely nothing about Linux whatsoever, but GHC 6.10.2 binary installed
without problems.
But anyway, in this case, if you're on Windows, installation of GHC works
like a charm: download, install, play. But for most of the packages on
Hackage, Windows is not a good platform :)
On Sun, Apr 5, 2009 at 10:19 PM, FFT
On Sun, Apr 5, 2009 at 12:35 PM, John Dorsey
wrote: Once it's installed and working, GHC's a very decent compiler.
My general null hypothesis is, as Alec Baldwin put it, that a loser is a loser, or a buggy project is buggy.
If GHC is robust overall (which I'm yet to find out), why is the installation so broken? _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Sun, Apr 5, 2009 at 1:41 PM, Peter Verswyvelen
That is strange, I'm using Ubuntu myself, and I come from Windows so know absolutely nothing about Linux whatsoever, but GHC 6.10.2 binary installed without problems.
Are you running 32-bit Ubuntu 8.04 ? /etc/lsb-release and /etc/issue* may contain this info, also $ uname -a It may also be the presence or absence of some packages that the installation requires, but ./configure doesn't check.

FFT wrote:
John Dorsey wrote:
Once it's installed and working, GHC's a very decent compiler.
My general null hypothesis is, as Alec Baldwin put it, that a loser is a loser, or a buggy project is buggy.
If GHC is robust overall (which I'm yet to find out), why is the installation so broken?
Part of the problem is that GHC 6.6 is the last version that supported bootstrapping. Some of the changes in 6.8 broke that, and so the longer it goes the harder bootstrapping/installation becomes. It's a major bug that many people would like fixed; I don't know the details, but I'm sure the GHC mailing lists[1] or #ghc would have more to say about it. There are also some issues about libeditline which is used for the interactive debugger, and has a lot to do with Linux vs BSD nonsense. Once these two issues are dealt with, the rest is smooth sailing. As the flagship Haskell compiler a lot of work has been invested in optimizations and the general running of GHC. Installation is less glorious work, so less academic and corporate investment has been paid to that part of things. Since most of the community already has a GHC installed, the bootstrapping issue isn't devastating to those already in the loop. Consequently, a lot of work has been done on making the post-compiler development cycle more robust with projects like Cabal, Hackage, cabal-install, and the Haskell Platform. These projects are still under rapid development, but they are fairly stable and they make it very friendly to install libraries--- which greatly speeds up development. [1] http://www.haskell.org/ghc/docs/latest/html/users_guide/introduction-GHC.htm... -- Live well, ~wren

Quoth FFT:
My general null hypothesis is, as Alec Baldwin put it, that a loser is a loser, or a buggy project is buggy.
I can't see the world in such black and white terms. GHC has strengths and weaknesses, as do other projects. GHC is changing over time, as are other projects. Formally verified software is still rare. Most of the useful stuff lies somewhere between "buggy" and "bug-free".
If GHC is robust overall (which I'm yet to find out), why is the installation so broken?
History. Limited resources. Complexity and diversity of target environments. Moving targets. Day jobs. Of course, you have to determine what your needs and standards are for any product you use. Regards, John

John Dorsey wrote:
Before you give up, consider using GHC 6.8.* for the time being, since it sounds like ubuntu's installer works for that. I think a lot of folks are still using 6.8, and earlier versions, quite happily. If you do end up giving up on Haskell because of installation frustrations, come back in a few months and see if things are better.
+1. GHC 6.8.2 is mature and stable, but the 6.10 line is still very new. The new line introduced a major refactoring of the code base and a redesign of the compiler backend--- both of which are necessary for progress, but they've introduced some instability in the interim. Version 6.10.1 introduced a number of regressions which would interfere with my work (many have been fixed in 6.10.2), so I'm one of the many still using the older line. For stability and practicality, unless you're doing something that hits a bug in 6.8.2 or requires a new feature in 6.10.*, I'd suggest waiting for 6.10 development to settle down a bit before making the transition. -- Live well, ~wren

What about 6.10.1? Is it failing too? On 5 Apr 2009, at 22:22, FFT wrote:
I'm still learning Haskell and also evaluating whether I want to use the language in my work.
It seems like a fascinating language so far (although I don't know if laziness will be a detriment later for me eventually), but I'm a bit worried about the overall quality of its GHC implementation.
For example, I tried installing GHC-6.10.2 on my Ubuntu 8.04 machine (probably the most mainstream Linux these days).
1st attempt: binary => failed "the impossible happened, report bug" (I think it's already in bugzilla for an even earlier version)
2nd attempt: source and docs => followed README, but "make" failed while building docs
3rd attempt: source only, no docs => make install succeeded, but ghci now seems to have its "readline" screwed up (no editing, can't quit even with Ctrl-C or Ctrl-D), while Ubuntu-bundled 6.8.* ghci works fine in this regard.
If these kinds of issues are common only during installation, I can live with that, but if GHC is flaky overall, having to deal with this may cancel out whatever productivity advantages Haskell provides.
If the quality of the installation procedures is different from the compiler itself, can you explain why? _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

FFT wrote:
I'm still learning Haskell and also evaluating whether I want to use the language in my work.
< snip>
For example, I tried installing GHC-6.10.2 on my Ubuntu 8.04 machine (probably the most mainstream Linux these days).
I'm on Ubuntu 8.10 and soon to move to 9.04 and I agree that the standard 6.8.2 compiler on Debian/Ubuntu is a PITA. I haven't tried 6.10.2 yet, but the way I installed 6.10.1 and a bunch of other packages was by installing them from the Debian unstable source packages. HTH, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/

On Sun, Apr 5, 2009 at 4:13 PM, Erik de Castro Lopo
FFT wrote:
I'm still learning Haskell and also evaluating whether I want to use the language in my work.
< snip>
For example, I tried installing GHC-6.10.2 on my Ubuntu 8.04 machine (probably the most mainstream Linux these days).
I'm on Ubuntu 8.10 and soon to move to 9.04 and I agree that the standard 6.8.2 compiler on Debian/Ubuntu is a PITA.
In particular, I advise my friends not to install GHC from apt on Debian/Ubuntu because of the way the packages are fractured on those distros. Nothing but problems for casual Haskell hackers. If you know your distro and Haskell well, then sure it's easy to install all the packages that constitute a normal ghc install. For everyone else it's just confusing and frustrating. I've heard that from a distro point of view the split packages are nice and that the solution to my complaint is a proper meta or virtual package. I wonder when we'll get a good haskell virtual package on Debian? Just my $0.02, Jason

Jason Dagit wrote:
In particular, I advise my friends not to install GHC from apt on Debian/Ubuntu because of the way the packages are fractured on those distros.
Fractured?
Nothing but problems for casual Haskell hackers. If you know your distro and Haskell well, then sure it's easy to install all the packages that constitute a normal ghc install.
Well I admit that having done a lot of debian packaging in my day job I know the debian packaging system pretty well. I chose to stick to the debian packages because I found cabal to be a pain in the neck in comparison :-).
I've heard that from a distro point of view the split packages are nice and that the solution to my complaint is a proper meta or virtual package.
My overwhelming complaint about the packages in Ubuntu and Debian stable/testing is that they are for ghc-6.8.2.
I wonder when we'll get a good haskell virtual package on Debian?
What would this package do? Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/

On 2009 Apr 5, at 19:47, Erik de Castro Lopo wrote:
Jason Dagit wrote:
I wonder when we'll get a good haskell virtual package on Debian?
What would this package do?
Install ghc + all the little pieces of libghc6-cruft needed to get a sane working environment? -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH

On 6 Apr 2009, at 1:05 pm, Brandon S. Allbery KF8NH wrote:
On 2009 Apr 5, at 19:47, Erik de Castro Lopo wrote:
What would this package do?
Install ghc + all the little pieces of libghc6-cruft needed to get a sane working environment?
I want the Zen package: "Make me one with everything."

I want the Zen package: "Make me one with everything."
But would you find that on hackage?-) If an author had contemplated the perfect package, they wouldn't have put it on hackage, they wouldn't have a hackage account, they wouldn't have written the package, they might not even exist - you would just get the idea. Claus (inspired by the ZenBot entry in the list of programs that play on the computer Go server: http://senseis.xmp.net/?ComputerGoServer )

"Brandon S. Allbery KF8NH"
I wonder when we'll get a good haskell virtual package on Debian?
What would this package do?
Install ghc + all the little pieces of libghc6-cruft needed to get a sane working environment?
Sounds easy to do (after all, it's just an empty package with a bunch of dependencies, right?), but I'm unsure exactly what pieces you want included. This is the current ghc6 package: Provides: ghc, haskell-compiler, libghc6-array-dev, libghc6-base-dev, libghc6-bytestring-dev, libghc6-cabal-dev, libghc6-containers-dev, libghc6-directory-dev, libghc6-filepath-dev, libghc6-haskell98-dev, libghc6-hpc-dev, libghc6-old-locale-dev, libghc6-old-time-dev, libghc6-packedstring-dev, libghc6-pretty-dev, libghc6-process-dev, libghc6-random-dev, libghc6-readline-dev, libghc6-rts-dev, libghc6-template-haskell-dev, libghc6-unix-dev In Ubuntu 8.10, there are 90 separate libghc6.*dev packages, which ones do you think should be added to a GHC meta package? -k -- If I haven't seen further, it is by standing in the footprints of giants

On Sun, Apr 5, 2009 at 4:47 PM, Erik de Castro Lopo
Jason Dagit wrote:
In particular, I advise my friends not to install GHC from apt on Debian/Ubuntu because of the way the packages are fractured on those distros.
Fractured?
In the sense that they split up the things GHC builds. Specifically, you need to install quite a few packages to get everything that GHC would come with.
Nothing but problems for casual Haskell hackers. If you know your distro and Haskell well, then sure it's easy to install all the packages that constitute a normal ghc install.
Well I admit that having done a lot of debian packaging in my day job I know the debian packaging system pretty well.
Nice! Debian is my favorite distro by leaps and bounds.
I chose to stick to the debian packages because I found cabal to be a pain in the neck in comparison :-).
Interesting. I'm glad that Open Source provides enough diversity that people can use the tools they enjoy working with. I like cabal just fine but I'm glad we can both choose different paths to meet a common goal.
I wonder when we'll get a good haskell virtual package on Debian?
What would this package do?
At a minimum it will give you everything that the GHC HQ installer gives you. For the casual haskell hacker, it ideally also gives you the profiled versions of everything thath GHC HQ installer gives you. Perhaps this is the Debian equivalent of the 'batteries included' haskell platform. Thanks, Jason
participants (11)
-
Brandon S. Allbery KF8NH
-
Claus Reinke
-
Erik de Castro Lopo
-
FFT
-
Jason Dagit
-
John Dorsey
-
Ketil Malde
-
Miguel Mitrofanov
-
Peter Verswyvelen
-
Richard O'Keefe
-
wren ng thornton