[Haskell-cafe] GHC 6.12 on OS X 10.5

Tom Tobin korpios at korpios.com
Mon Dec 21 16:43:00 EST 2009

On Mon, Dec 21, 2009 at 1:38 PM, Tom Tobin <korpios at korpios.com> wrote:
> On Mon, Dec 21, 2009 at 4:32 AM, Conor McBride
> <conor at strictlypositive.org> wrote:
>> I thought I'd record my upgrade exerience (so far) in case anyone else
>> finds it useful, and (more selfishly) in case anyone has some helpful
>> advice. Summary of situation
> You just described what I went through last night with GHC 6.12 before
> giving up and going to bed, except that I'm on Snow Leopard (OS X
> 10.6).  I got the "undefined symbols" errors when trying to compile
> cpphs, which came up at some point in the build process when trying to
> install Happstack via cabal 0.8.0.  I was wondering if if something
> was getting confused between my MacPorts libraries and OS X, and your
> experience certainly makes it seem that way; I have the MacPorts paths
> set up in my .cabal/config file as extra-include-dirs and
> extra-lib-dirs, otherwise I can't get particular libraries (e.g.,
> pcre-lite) to compile.
> I'm going to wipe my .cabal and .ghc and try from scratch to build as
> much as possible without the MacPorts paths, only re-adding them for
> single builds as necessary; I'll write back after I see how that goes.

This time, after wiping .ghc and .cabal, I immediately did "cabal
update" followed by "cabal install happstack" (without going and
changing the extra-include-* settings in .cabal/config to point at the
MacPorts dirs).  cpphs compiled fine this time, but I got a failure
due to haskell-src-exts not building; haskell-src-exts in turn
complained that happy wasn't installed.  I went and installed happy,
then haskell-src-exts (which installed v1.3.4), and then did "cabal
install happstack" again which installed haskell-src-exts v1.0.1 (I
guess GHC understands how to deal with two different installed library

This time the install died on HJScript:

[ 2 of 26] Compiling HJScript.Monad   ( src/HJScript/Monad.hs,
dist/build/HJScript/Monad.o )

    A pattern match on a GADT requires -XGADTs
    In the pattern: EmptyBlock
    In the definition of `mappend': mappend EmptyBlock b = b
    In the instance declaration for `Monoid (Block ())'
cabal: Error: some packages failed to install:
HJScript-0.4.5 failed during the building phase. The exception was:
ExitFailure 1

I have no idea what to do next, so I'll probably bring this particular
issue up on the Happstack list next.

My questions at this point:

1) The original problem definitely looks like it's related to library
confusion between the system libs and the MacPorts libs.  Is there any
way of sanely handling this when I need a library that's available
through MacPorts but not OS X's system libs?  (MacPorts' insistence on
maintaining an entirely separate library stack from the OS X system
libraries is starting to make me crazy.  ::sigh::)

2) Regarding haskell-src-exts: why wasn't happy wasn't pulled into the
dependency graph in the first place?

More information about the Haskell-Cafe mailing list