problems installing and building Haskell Platform 2014.2

solrize solrize at solrize.net
Sat Apr 18 05:13:56 BST 2015


Hi, I tried to upgrade from an older version of Haskell Platform (I'm
not sure which but it used GHC 7.4.3) to the current 2014.2.  What I'm
actually trying to do is get gitit working for an unrelated purpose on a
separate machine, which has led to a bunch of yak shaving of which
upgrading HP on my build machine is a part.

Anyway, I'm running Debian 7 and I first tried the binary install,
involving (shudder) unpacking the tarball in my root dir, but that hit
some snag because the binary was built on Ubuntu, which uses a newer
version of glibc than Debian 7, creating runtime errors.  Some web
search found suggestions to upgrade glibc to the Debian test release,
but that sounded scary and I decided to try building Haskell Platform
from source, which is more conceptually to my liking than running a
binary anyway.  Unfortunately after compiling for a while, I got this
compilation error ( also at http://lpaste.net/130892 ):

[25 of 28] Compiling GhcDist          ( src/GhcDist.hs,
dist/build/hptool/hptoo\
l-tmp/GhcDist.o )

src/GhcDist.hs:104:38:
    No instance for (CmdString t0) arising from a use of `command'
    The type variable `t0' is ambiguous
    Note: there are several potential instances:
      instance CmdString () -- Defined in `Development.Shake.Command'
      instance CmdString Data.ByteString.Lazy.Internal.ByteString
        -- Defined in `Development.Shake.Command'
      instance CmdString Data.ByteString.Internal.ByteString
        -- Defined in `Development.Shake.Command'
      ...plus one other
    In a stmt of a 'do' block:
      (Stdout cppVersion, Stderr _) <- command
                                         [] cppCommand ["--version"]
    In the expression:
      do { let cppCommand
                 = fromMaybe
                     (error $ "Haskell CPP command not found in " ++
                     settingsFi\
le)
                     (lookup "Haskell CPP command" settings);
           (Stdout cppVersion, Stderr _) <- command
                                              [] cppCommand
                                              ["--version"];
           return . listToMaybe
           $ filter
               ((`isInfixOf` cppVersion) . cppCommandName)
               [minBound .. maxBound] }
    In an equation for `getCppCommand':
        getCppCommand settings settingsFile
          = do { let cppCommand = ...;
                 (Stdout cppVersion, Stderr _) <- command
                                                    [] cppCommand
                                                    ["--version"]\
;
                 return . listToMaybe
                 $ filter
                     ((`isInfixOf` cppVersion) . cppCommandName)
                     [minBound .. maxBound] }

======

Any advice?  It's not even obvious to me how to find this source file,
though I haven't tried chasing it very hard, on the theory that I should
report the issue here anyway.  Thanks.




More information about the Haskell-platform mailing list