[GHC] #2555: Template Haskell does not respect -package and -hide
constraints
GHC
trac at galois.com
Sat Aug 30 08:41:09 EDT 2008
#2555: Template Haskell does not respect -package and -hide constraints
------------------------+---------------------------------------------------
Reporter: guest | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 6.8.2 | Severity: normal
Keywords: | Testcase:
Architecture: Unknown | Os: Linux
------------------------+---------------------------------------------------
(I am using 6.8.2-2ubuntu1, packaged for Ubuntu Hardy Heron, on amd64.)
Recently sjanssen added some patches to the Lambdabot darcs repository
which replace a preprocessor, BotPP, with some Template Haskell. This
seems to work well, however I ran into a problem with it - everytime TH
was called, it would error out with a message about Bytestring 0.9.1.0.
This is far from the first time I've run into this problem, but it was not
fixed by forcibly removing 0.9.1.0 & recompiling affected packages against
bytestring 09.0.1!
After even more debugging, I finally figured it out:
The module TH was erroring out on has an 'import Text.Regex'. Text.Regex
is installed by the regex-compat package. I had two regex-compats
installed. regex-compat-0.91 was linked against bytestring0.9.0.1. regex-
compat-0.92 was linked against (the removed) bytestring-0.9.1.0.
Now, normally Cabal detects that using 0.92 would lead to errors, and it
selects 0.91, and it adds to the GHC options '-hide-all-package -package
regex-compat-0.91', and everything compiles fine and the user is happy.
But! in this case, Template Haskell ignores the flags, and it uses the
most recent regex-compat. And it is this that breaks the build. I
ultimately resolved this issue by removing regex-compat-0.92 and
reinstalling and linking it against 0.9.0.1, although I fear this may yet
lead to bugs in the future.
Short summary: Cabal is smarter than TH and picks better package versions
to compile against, and yet TH ignores Cabal's picks. This leads to
unnecessary & difficult to figure out compile failures.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2555>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list