first of all thanks for the help you can bring me to solve my disaster with cabal xD...
I'm working with OS X El Capitan 10.11.3, 64 bits.
I installed Haskell platform from https://www.haskell.org/platform/prior.html of 2013.2.0.0, May 2013, specially because i need to work with ghc 7.6.3
Then when I execute cabal update... my headache starts...
Resolving dependencies...
Configuring binary-0.8.2.0...
/var/folders/3l/wflf71t55t92rrvt8lhx_8700000gn/T/10157.c:1:12:
warning: control reaches end of non-void function [-Wreturn-type]
int foo() {}
^
1 warning generated.
Building binary-0.8.2.0...
Preprocessing library binary-0.8.2.0...
src/Data/Binary.hs:198:43:
warning: missing terminating ' character [-Winvalid-pp-token]
-- This is just a convenience function, it's defined simply as:
^
src/Data/Binary.hs:253:35:
warning: missing terminating ' character [-Winvalid-pp-token]
-- This mechanism makes use of GHC's efficient built-in generics
^
2 warnings generated.
src/Data/Binary/Put.hs:110:26:
warning: missing terminating ' character [-Winvalid-pp-token]
PairS x w' = unPut k
^
src/Data/Binary/Put.hs:111:42:
warning: missing terminating ' character [-Winvalid-pp-token]
in PairS (f x) (w `mappend` w')
^
src/Data/Binary/Put.hs:115:26:
warning: missing terminating ' character [-Winvalid-pp-token]
PairS b w' = unPut k
^
src/Data/Binary/Put.hs:116:38:
warning: missing terminating ' character [-Winvalid-pp-token]
in PairS b (w `mappend` w')
^
src/Data/Binary/Put.hs:123:22:
warning: missing terminating ' character [-Winvalid-pp-token]
PairS b w' = unPut (k a)
^
src/Data/Binary/Put.hs:124:34:
warning: missing terminating ' character [-Winvalid-pp-token]
in PairS b (w `mappend` w')
^
src/Data/Binary/Put.hs:257:64:
warning: missing terminating ' character [-Winvalid-pp-token]
-- written in host order, host endian form, for the machine you're on.
^
src/Data/Binary/Put.hs:286:64:
warning: missing terminating ' character [-Winvalid-pp-token]
-- written in host order, host endian form, for the machine you're on.
^
8 warnings generated.
src/Data/Binary/Get.hs:26:7:
warning: missing terminating ' character [-Winvalid-pp-token]
-- Let's decode binary data representing illustrated here.
^
src/Data/Binary/Get.hs:43:71:
warning: missing terminating ' character [-Winvalid-pp-token]
-- The fields in @Trade@ are marked as strict (using @!@) since we don't need
^
src/Data/Binary/Get.hs:48:12:
warning: missing terminating ' character [-Winvalid-pp-token]
-- Now, let's have a look at a decoder for this format.
^
src/Data/Binary/Get.hs:62:20:
warning: missing terminating ' character [-Winvalid-pp-token]
--getTrade' :: 'Get' Trade
^
src/Data/Binary/Get.hs:63:79:
warning: missing terminating ' character [-Winvalid-pp-token]
--getTrade' = Trade '<$>' 'getWord32le' '<*>' 'getWord32le' '<*>' 'getWord16le'
^
src/Data/Binary/Get.hs:70:7:
warning: missing terminating ' character [-Winvalid-pp-token]
-- Let's first define a function that decodes many @Trade@s.
^
src/Data/Binary/Get.hs:88:27:
warning: missing terminating '"' character [-Winvalid-pp-token]
-- input <- BL.readFile \"trades.bin\"
^
src/Data/Binary/Get.hs:235:64:
warning: missing terminating ' character [-Winvalid-pp-token]
-- The lazy interface consumes a single lazy 'L.ByteString'. It's the easiest
^
src/Data/Binary/Get.hs:236:47:
warning: missing terminating ' character [-Winvalid-pp-token]
-- interface to get started with, but it doesn't support interleaving I\/O and
^
src/Data/Binary/Get.hs:298:23:
warning: missing terminating ' character [-Winvalid-pp-token]
runGetState g lbs0 pos' = go (runGetIncremental g) lbs0
^
src/Data/Binary/Get.hs:300:53:
warning: missing terminating ' character [-Winvalid-pp-token]
go (Done s pos a) lbs = (a, L.chunk s lbs, pos+pos')
^
src/Data/Binary/Get.hs:570:53:
warning: missing terminating ' character [-Winvalid-pp-token]
-- host order, host endian form, for the machine you're on. On a 64 bit
^
12 warnings generated.
src/Data/Binary/Get/Internal.hs:157:22:
warning: missing terminating ' character [-Winvalid-pp-token]
-- | Make sure we don't have to pass Nothing to a Partial twice.
^
src/Data/Binary/Get/Internal.hs:158:19:
warning: missing terminating ' character [-Winvalid-pp-token]
-- This way we don't need to pass around an EOF value in the Get monad, it
^
src/Data/Binary/Get/Internal.hs:180:63:
warning: missing terminating ' character [-Winvalid-pp-token]
prompt inp kf ks = prompt' kf (\inp' -> ks (inp `B.append` inp'))
^
src/Data/Binary/Get/Internal.hs:182:7:
warning: missing terminating ' character [-Winvalid-pp-token]
prompt' :: Decoder a -> (B.ByteString -> Decoder a) -> Decoder a
^
src/Data/Binary/Get/Internal.hs:183:7:
warning: missing terminating ' character [-Winvalid-pp-token]
prompt' kf ks =
^
src/Data/Binary/Get/Internal.hs:221:21:
warning: missing terminating ' character [-Winvalid-pp-token]
let (inp', out) = B.splitAt n str
^
src/Data/Binary/Get/Internal.hs:222:31:
warning: missing terminating ' character [-Winvalid-pp-token]
in k out (Just inp')
^
src/Data/Binary/Get/Internal.hs:240:17:
warning: missing terminating ' character [-Winvalid-pp-token]
Left state' -> do
^
src/Data/Binary/Get/Internal.hs:241:16:
warning: missing terminating ' character [-Winvalid-pp-token]
let acc' = inp : acc
^
src/Data/Binary/Get/Internal.hs:242:15:
warning: missing terminating ' character [-Winvalid-pp-token]
prompt'
^
src/Data/Binary/Get/Internal.hs:243:40:
warning: missing terminating ' character [-Winvalid-pp-token]
(runCont (onFail (reverse acc')) B.empty ks)
^
src/Data/Binary/Get/Internal.hs:284:72:
warning: missing terminating ' character [-Winvalid-pp-token]
-- Once it's finished, return the final decoder (always 'Done' or 'Fail'),
^
src/Data/Binary/Get/Internal.hs:327:8:
warning: missing terminating ' character [-Winvalid-pp-token]
let g' = maybe (Left ()) Right <$> g
^
src/Data/Binary/Get/Internal.hs:328:47:
warning: missing terminating ' character [-Winvalid-pp-token]
either (const Nothing) Just <$> lookAheadE g'
^
src/Data/Binary/Get/Internal.hs:403:3:
error: invalid preprocessing directive
#-}
^
src/Data/Binary/Get/Internal.hs:412:64:
warning: missing terminating ' character [-Winvalid-pp-token]
where -- might look a bit funny, but plays very well with GHC's inliner.
^
src/Data/Binary/Get/Internal.hs:413:19:
warning: missing terminating ' character [-Winvalid-pp-token]
-- GHC won't inline recursive functions, so we make ensureN non-recursive
^
16 warnings and 1 error generated.
Failed to install binary-0.8.2.0
cabal: Error: some packages failed to install:
Cabal-1.22.7.0 depends on binary-0.8.2.0 which failed to install.
binary-0.8.2.0 failed during the building phase. The exception was:
ExitFailure 1
cabal-install-1.22.8.0 depends on binary-0.8.2.0 which failed to install.
and then... I try install binary and...
Resolving dependencies...
Configuring binary-0.8.2.0...
/var/folders/3l/wflf71t55t92rrvt8lhx_8700000gn/T/10204.c:1:12:
warning: control reaches end of non-void function [-Wreturn-type]
int foo() {}
^
1 warning generated.
Building binary-0.8.2.0...
Preprocessing library binary-0.8.2.0...
src/Data/Binary.hs:198:43:
warning: missing terminating ' character [-Winvalid-pp-token]
-- This is just a convenience function, it's defined simply as:
^
src/Data/Binary.hs:253:35:
warning: missing terminating ' character [-Winvalid-pp-token]
-- This mechanism makes use of GHC's efficient built-in generics
^
2 warnings generated.
src/Data/Binary/Put.hs:110:26:
warning: missing terminating ' character [-Winvalid-pp-token]
PairS x w' = unPut k
^
src/Data/Binary/Put.hs:111:42:
warning: missing terminating ' character [-Winvalid-pp-token]
in PairS (f x) (w `mappend` w')
^
src/Data/Binary/Put.hs:115:26:
warning: missing terminating ' character [-Winvalid-pp-token]
PairS b w' = unPut k
^
src/Data/Binary/Put.hs:116:38:
warning: missing terminating ' character [-Winvalid-pp-token]
in PairS b (w `mappend` w')
^
src/Data/Binary/Put.hs:123:22:
warning: missing terminating ' character [-Winvalid-pp-token]
PairS b w' = unPut (k a)
^
src/Data/Binary/Put.hs:124:34:
warning: missing terminating ' character [-Winvalid-pp-token]
in PairS b (w `mappend` w')
^
src/Data/Binary/Put.hs:257:64:
warning: missing terminating ' character [-Winvalid-pp-token]
-- written in host order, host endian form, for the machine you're on.
^
src/Data/Binary/Put.hs:286:64:
warning: missing terminating ' character [-Winvalid-pp-token]
-- written in host order, host endian form, for the machine you're on.
^
8 warnings generated.
src/Data/Binary/Get.hs:26:7:
warning: missing terminating ' character [-Winvalid-pp-token]
-- Let's decode binary data representing illustrated here.
^
src/Data/Binary/Get.hs:43:71:
warning: missing terminating ' character [-Winvalid-pp-token]
-- The fields in @Trade@ are marked as strict (using @!@) since we don't need
^
src/Data/Binary/Get.hs:48:12:
warning: missing terminating ' character [-Winvalid-pp-token]
-- Now, let's have a look at a decoder for this format.
^
src/Data/Binary/Get.hs:62:20:
warning: missing terminating ' character [-Winvalid-pp-token]
--getTrade' :: 'Get' Trade
^
src/Data/Binary/Get.hs:63:79:
warning: missing terminating ' character [-Winvalid-pp-token]
--getTrade' = Trade '<$>' 'getWord32le' '<*>' 'getWord32le' '<*>' 'getWord16le'
^
src/Data/Binary/Get.hs:70:7:
warning: missing terminating ' character [-Winvalid-pp-token]
-- Let's first define a function that decodes many @Trade@s.
^
src/Data/Binary/Get.hs:88:27:
warning: missing terminating '"' character [-Winvalid-pp-token]
-- input <- BL.readFile \"trades.bin\"
^
src/Data/Binary/Get.hs:235:64:
warning: missing terminating ' character [-Winvalid-pp-token]
-- The lazy interface consumes a single lazy 'L.ByteString'. It's the easiest
^
src/Data/Binary/Get.hs:236:47:
warning: missing terminating ' character [-Winvalid-pp-token]
-- interface to get started with, but it doesn't support interleaving I\/O and
^
src/Data/Binary/Get.hs:298:23:
warning: missing terminating ' character [-Winvalid-pp-token]
runGetState g lbs0 pos' = go (runGetIncremental g) lbs0
^
src/Data/Binary/Get.hs:300:53:
warning: missing terminating ' character [-Winvalid-pp-token]
go (Done s pos a) lbs = (a, L.chunk s lbs, pos+pos')
^
src/Data/Binary/Get.hs:570:53:
warning: missing terminating ' character [-Winvalid-pp-token]
-- host order, host endian form, for the machine you're on. On a 64 bit
^
12 warnings generated.
src/Data/Binary/Get/Internal.hs:157:22:
warning: missing terminating ' character [-Winvalid-pp-token]
-- | Make sure we don't have to pass Nothing to a Partial twice.
^
src/Data/Binary/Get/Internal.hs:158:19:
warning: missing terminating ' character [-Winvalid-pp-token]
-- This way we don't need to pass around an EOF value in the Get monad, it
^
src/Data/Binary/Get/Internal.hs:180:63:
warning: missing terminating ' character [-Winvalid-pp-token]
prompt inp kf ks = prompt' kf (\inp' -> ks (inp `B.append` inp'))
^
src/Data/Binary/Get/Internal.hs:182:7:
warning: missing terminating ' character [-Winvalid-pp-token]
prompt' :: Decoder a -> (B.ByteString -> Decoder a) -> Decoder a
^
src/Data/Binary/Get/Internal.hs:183:7:
warning: missing terminating ' character [-Winvalid-pp-token]
prompt' kf ks =
^
src/Data/Binary/Get/Internal.hs:221:21:
warning: missing terminating ' character [-Winvalid-pp-token]
let (inp', out) = B.splitAt n str
^
src/Data/Binary/Get/Internal.hs:222:31:
warning: missing terminating ' character [-Winvalid-pp-token]
in k out (Just inp')
^
src/Data/Binary/Get/Internal.hs:240:17:
warning: missing terminating ' character [-Winvalid-pp-token]
Left state' -> do
^
src/Data/Binary/Get/Internal.hs:241:16:
warning: missing terminating ' character [-Winvalid-pp-token]
let acc' = inp : acc
^
src/Data/Binary/Get/Internal.hs:242:15:
warning: missing terminating ' character [-Winvalid-pp-token]
prompt'
^
src/Data/Binary/Get/Internal.hs:243:40:
warning: missing terminating ' character [-Winvalid-pp-token]
(runCont (onFail (reverse acc')) B.empty ks)
^
src/Data/Binary/Get/Internal.hs:284:72:
warning: missing terminating ' character [-Winvalid-pp-token]
-- Once it's finished, return the final decoder (always 'Done' or 'Fail'),
^
src/Data/Binary/Get/Internal.hs:327:8:
warning: missing terminating ' character [-Winvalid-pp-token]
let g' = maybe (Left ()) Right <$> g
^
src/Data/Binary/Get/Internal.hs:328:47:
warning: missing terminating ' character [-Winvalid-pp-token]
either (const Nothing) Just <$> lookAheadE g'
^
src/Data/Binary/Get/Internal.hs:403:3:
error: invalid preprocessing directive
#-}
^
src/Data/Binary/Get/Internal.hs:412:64:
warning: missing terminating ' character [-Winvalid-pp-token]
where -- might look a bit funny, but plays very well with GHC's inliner.
^
src/Data/Binary/Get/Internal.hs:413:19:
warning: missing terminating ' character [-Winvalid-pp-token]
-- GHC won't inline recursive functions, so we make ensureN non-recursive
^
16 warnings and 1 error generated.
Failed to install binary-0.8.2.0
cabal: Error: some packages failed to install:
binary-0.8.2.0 failed during the building phase. The exception was:
ExitFailure 1
my ghc --version is The Glorious Glasgow Haskell Compilation System, version 7.6.3
my cabal --version is cabal-install version 1.16.0.2 using version 1.16.0 of the Cabal library
Thanks for the attention.
It's just a bug in binary-0.8.2.0.
src/Data/Binary/Get/Internal.hs:403:3:
error: invalid preprocessing directive
#-}
^
src/Data/Binary/Get/Internal.hs
has a line that starts with #
, which clang's C preprocessor doesn't like. gcc is fine with it, but on a Mac Apple's gcc is really clang.
That line is new in binary-0.8.0.0, which was released Dec 20. Still odd that apparently no one else encountered this yet.
I filed an issue.