【问题标题】:Failed to install haskell-src-exts-1.16.0 on OSX 10.9.5无法在 OSX 10.9.5 上安装 haskell-src-exts-1.16.0
【发布时间】:2014-09-29 11:09:13
【问题描述】:

我的环境:

我做了cabal install alexcabal install happy。 cabal 二进制路径已确认添加到我的 $PATH 为$(HOME)/Library/Haskell/bin/

cabal install haskell-src-exts 发出以下编译错误:

[19 of 22] Compiling Language.Haskell.Exts.InternalParser ( dist/build/Language/Haskell/Exts/InternalParser.hs, dist/build/Language/Haskell/Exts/InternalParser.o )

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#))))))

templates/GenericTemplate.hs:115:23:
    Couldn't match expected type ‘Bool’
                with actual type ‘Happy_GHC_Exts.Int#’
    In the expression:
      (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
    In the expression:
      if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#)) then
          (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==# i)
      else
          False
    In an equation for ‘check’:
        check
          = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#)) then
                (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==# i)
            else
                False

templates/GenericTemplate.hs:117:30:
    Couldn't match expected type ‘Happy_GHC_Exts.Int#’
                with actual type ‘Bool’
    In the expression: False
    In the expression:
      if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#)) then
          (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==# i)
      else
          False

templates/GenericTemplate.hs:119:13:
    Couldn't match expected type ‘Bool’
                with actual type ‘Happy_GHC_Exts.Int#’
    In the expression: check
    In a stmt of a pattern guard for
                   a pattern binding:
      check

templates/GenericTemplate.hs:212:14:
    Pattern bindings containing unlifted types should use an outermost bang pattern:
      (sts1@((HappyCons (st1@(action)) (_))))
        = happyDrop k (HappyCons (st) (sts))
    In an equation for ‘happyMonadReduce’:
        happyMonadReduce k nt fn j tk st sts stk
          = happyThen1
              (fn stk tk)
              (\ r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
          where
              (sts1@((HappyCons (st1@(action)) (_))))
                = happyDrop k (HappyCons (st) (sts))
              drop_stk = happyDropStk k stk

templates/GenericTemplate.hs:219:14:
    Pattern bindings containing unlifted types should use an outermost bang pattern:
      (sts1@((HappyCons (st1@(action)) (_))))
        = happyDrop k (HappyCons (st) (sts))
    In an equation for ‘happyMonad2Reduce’:
        happyMonad2Reduce k nt fn j tk st sts stk
          = happyThen1
              (fn stk tk)
              (\ r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
          where
              (sts1@((HappyCons (st1@(action)) (_))))
                = happyDrop k (HappyCons (st) (sts))
              drop_stk = happyDropStk k stk
              (off) = indexShortOffAddr happyGotoOffsets st1
              (off_i) = (off Happy_GHC_Exts.+# nt)
              ....
Failed to install haskell-src-exts-1.16.0
cabal: Error: some packages failed to install:
haskell-src-exts-1.16.0 failed during the building phase. The exception was:
ExitFailure 1

【问题讨论】:

  • 作为记录,这在 ubuntu 15.10 中也影响了我。

标签: macos haskell ghc cabal


【解决方案1】:

好像是knownissue。如果我理解正确,你只需要更新happy

添加:Here是问题的详细描述

【讨论】:

  • 感谢您的完整参考。事实证明,更新快乐成功了。就我而言,有一个软链接 /usr/bin/happy -> /Library/Haskell/bin/happy,这是一个我没有注意到的旧版本。因此,我将我的 PATH 重新排序为 $(HOME)/Library/Haskell/bin : ${PATH} ,一切顺利。
【解决方案2】:

我们为解决这个问题所做的就是分别安装 happyalex,分别在 cabal 沙盒模式下。 然后,我们把二进制文件复制过来,一切都很好......

【讨论】:

  • 嗨。我不确定是否有与我相同的路径问题。我的系统中有一个全局安装的旧版本快乐,它掩盖了我本地安装的最新快乐。不过,我不确定为什么会有一个全球安装的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
相关资源
最近更新 更多