问题
My env:
- ghc 7.8.3 from http://ghcformacosx.github.io/
- OSX 10.9.5
- cabal 1.20.0.3 (directly from ghc for mac osx)
I did cabal install alex
and cabal install happy
. cabal binary path was confirmed to be added to my $PATH as $(HOME)/Library/Haskell/bin/
.
cabal install haskell-src-exts
emitted the following compiling error:
[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
回答1:
It seems to be known issue. If I understand it correctly, you just need to update happy
ADD: Here is detailed description of the issue
回答2:
What we did to counter this issue was to install happy
and alex
each, separately in cabal sandboxed mode.
Then, we took the binaries and copied them over and everything was cool....
来源:https://stackoverflow.com/questions/26098486/failed-to-install-haskell-src-exts-1-16-0-on-osx-10-9-5