[Haskell-cafe] Hackage being too strict?
Hans van Thiel
hthiel.char at zonnet.nl
Tue Apr 22 07:40:34 EDT 2008
> > The current a priori check, which said there were no fatal errors, while the
> > a posteriori check failed, is misleading. Wouldn't it be better to warn potential
> > uploaders that this first check is not complete?
> I'm not sure I see what you're getting at. We can't do a full build
> check synchronously at upload time.
Yes, I thought something like that would probably be the reason. What I
meant is that not everybody will realize this immediately, and will
think everything is OK because the message was that there are no fatal
errors (even though there's another message on the page that uploaders
should test their builds first...)
> > I'd also like the warning about the -O2 optimization flag to go
> > away...I'd guess this is a leftover from an earlier time in GHC.
> It's not a leftover, it was added recently. The intention is that user
> gets to set the optimisation level (cabal configure -O or -O2 or -O0).
> It's not really great when packages override that choice. From
> experience packaging haskell libraries for gentoo we found that most
> packages that do set -O2 do so out of habit without any particular
> justification and it significantly increases compile times and memory
Compile time was negligible in my case, but I didn't think about memory
usage. That does not seem an issue either right now, but it's useful to
know, for the future...
> It's not banned though as there are some cases where it's perfectly
Oh, all right. So it's recommended to leave that as a user option when
configuring the installation.
> > More importantly, if Cabal is sort of an rpm for Haskell programs, shouldn't
> > the uploader use version numbers of the libraries in the Cabal file? For example,
> > I believe in my case at least gtk2hs 0.9.12 is needed, while Ubuntu seems to have
> > only 0.9.11 (until a few months ago, at least). So, if an uploader knows such
> > dependencies, how to express them?
> build-depends: gtk >= 0.9.12 && < 0.10
Thanks, that's clear now.
More information about the Haskell-Cafe