GHC不兼容通过cabal安装haskell-src-exts

时间:2014-08-03 11:52:17

标签: installation ghc cabal agda happy

我在Ubuntu 14.04上遇到了使用GHC 7.8.3和Cabal 1.16.0.2尝试cabal install agda的兼容性问题。

问题似乎出现在haskell-src-exts-1.15.0.1,这是Agda所要求的。编译该库会导致well-known problem导致({3}}导致Happy生成的代码 - 生成的代码与版本7.8中的a change to GHC不兼容。

templates/GenericTemplate.hs:104:22:
    Couldn't match expected type ‘Bool’
                with actual type ‘Happy_GHC_Exts.Int#’
    In the expression:
      (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#))
    In a stmt of a pattern guard for
                   a case alternative:
      (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#))
    In a case alternative:
        n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#))
          -> (happyReduceArr Happy_Data_Array.! rule) i tk st
          where
              rule
                = (Happy_GHC_Exts.I#
                     ((Happy_GHC_Exts.negateInt#
                         ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))

article mentioned above描述了如何清理和重建包含不兼容的Happy生成代码的库。但是,我无法为haskell-src-exts-1.15.0.1做这项工作。特别是,尝试

cabal unpack haskell-src-exts-1.15.0.1 
cd haskell-src-exts-1.15.0.1
cabal clean
cabal install

遇到了同样的问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

简短回答: Cabal 1.16。*与GHC 7.8.3不兼容,因此请安装最近版本的cabal-install(例如版本1.20.0.3),删除与GHC 7.8相关的目录。 3来自〜/ .ghc(例如x86_64-linux-7.8.3)并再次安装所有内容。

答案很长:请参阅GHC issue 9060