HEAD vs Hackage status report

Bryan O'Sullivan bos at serpentine.com
Mon Sep 30 06:26:10 UTC 2013


I spent a little time the other day building all of Hackage with GHC HEAD.
Here's a quick writeup of what I found.

Total packages: 5564
Succeeded with 7.6.3: 3234
Succeeded with HEAD: 2061
Succeeded with 7.6.3 *but failed with HEAD: 1186*

(A few dozen packages built with HEAD, but not with 7.6.3, which is why the
numbers don't add up.)

I think the condensed version of the story is that we're actually in good
shape, the above numbers notwithstanding. There are only a few categories
of build regression, which I detail below. Except for one genuine bug, the
rest (at least those I've seen so far) are upgrade details that could be
written about in release notes or a blog post.

There currently exists just one panic-related bug, which prevents all 23
packages in the Snap web framework from building:

ghc: panic! (the 'impossible' happened)
  (GHC version 7.7.20130923 for x86_64-unknown-linux):
        dmdTransformDictSelSig: split
failed<http://ghc.haskell.org/trac/ghc/ticket/8329>

Of the 1186 packages that build with 7.6.3 but not HEAD:

311 fail due to cabal being unable to solve dependency constraints. As
usual, most (195) have excessively tight constraints on base.

37 packages fail due to GeneralizedNewtypeDeriving and the new role
infrastructure, due to the following failures in packages upon which they
depend.

12 language-c-0.4.2        the last parameter of ‛Error’ is at role Nominal
11 logfloat-0.12.1         the last parameter of ‛IArray’ is at role Nominal
 5 diagrams-lib-0.7.1.1    the last parameter of ‛Transformable’ is at role
Nominal
 4 smallcheck-1.0.4        the last parameter of ‛MonadLogic’ is at role
Nominal
 2 monadiccp-0.7.6         the last parameter of ‛ReaderM’ is at role
Nominal
 2 histogram-fill-0.8.1.0  the last parameter of ‛BinEq’ is at role Nominal
 1 acme-schoenfinkel-0.1.1 the last parameter of ‛ArrowApply’ is at role
Nominal

There's quite a bit of transitive primop-related breakage.

    364 template-haskell-2.8.0.0    Couldn't match expected type ‛Bool’
with actual type ‛Int#’
     48 primitive-0.4.1    Couldn't match expected type ‛Bool’ with actual
type ‛Int#’
      6 primitive-0.5.0.1    Couldn't match expected type ‛Bool’ with
actual type ‛Int#’

Most of the breakage could be fixed by loosening the dependencies on the
template-haskell and primitive packages, and here are the rest.

     63 uulib-0.9.15    Couldn't match expected type ‛Bool’ with actual
type ‛Int#’
     20 utf8-light-0.4.0.1    Couldn't match expected type ‛Bool’ with
actual type ‛Int#’
     19 safeint-0.5.3    Couldn't match expected type ‛Bool’ with actual
type ‛Int#’
     16 permutation-0.4.1    Couldn't match expected type ‛Bool’ with
actual type ‛Int#’
      9 floatshow-0.2.3    Couldn't match expected type ‛Bool’ with actual
type ‛Int#’
      9 bytestring-show-0.3.5.5    Couldn't match expected type ‛Bool’ with
actual type ‛Int#’
      8 STMonadTrans-0.3.1    Couldn't match expected type ‛Bool’ with
actual type ‛Int#’
      7 hashtables-1.1.0.2    Couldn't match expected type ‛Bool’ with
actual type ‛Int#’
      2 word24-1.0.3    Couldn't match expected type ‛Bool’ with actual
type ‛Int#’
      2 arithmoi-0.4.0.3    Couldn't match expected type ‛Bool’ with actual
type ‛Int#’
      1 word8-0.0.3    Couldn't match expected type ‛Bool’ with actual type
‛Int#’
      1 IORefCAS-0.2.0.1    Couldn't match expected type ‛Bool’ with actual
type ‛Int#’

Roughly 45 packages are broken by changes to Typeable.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130929/71888537/attachment.htm>


More information about the ghc-devs mailing list