Exposed module still hidden, why?

Using GHC 6.8.1 on Windows XP, after having used ghc-pkg to expose ' directory-1.0.0.0', I am getting an error when I build haddock that says the package is hidden. When I type "ghc-pkg list", the package is not in parenthesis. Typing "ghc -v" says that it is using the file from "C:\ghc\ghc-6.8.1\package.conf". That package.conf file has the 'exposed' set to True for that file. Why does GHC still think the package is hidden? ...\haddock-0.8>runhaskell Setup.lhs configure Configuring haddock-0.8... ...\haddock-0.8>runhaskell Setup.lhs build Preprocessing executables for haddock-0.8... shift/reduce conflicts: 5 Building haddock-0.8... src/Main.hs:49:7: Could not find module `System.Directory': it is a member of package directory-1.0.0.0, which is hidden ...\haddock-0.8>ghc-pkg list C:/ghc/ghc-6.8.1\package.conf: Cabal-1.2.2.0, HUnit-1.2.0.0, OpenGL-2.2.1.1, QuickCheck-1.1.0.0, Win32-2.1.0.0, array-0.1.0.0, base-3.0.0.0, bytestring-0.9.0.1, cgi-3001.1.5.1, containers-0.1.0.0, directory-1.0.0.0, fgl-5.4.1.1, filepath-1.1.0.0, (ghc-6.8.1), haskell-src-1.0.1.1, haskell98-1.0.1.0, hpc-0.5.0.0, html-1.0.1.1, mtl-1.1.0.0, network-2.1.0.0, old-locale-1.0.0.0, old-time-1.0.0.0, packedstring-0.1.0.0, parallel-1.0.0.0, parsec-2.1.0.0, pretty-1.0.0.0, process-1.0.0.0, random-1.0.0.0, regex-base-0.72.0.1, regex-compat-0.71.0.1, regex-posix-0.72.0.1, rts-1.0, stm-2.1.1.0, template-haskell-2.2.0.0, time-1.1.2.0, xhtml-3000.0.2.1 Thanks, Greg

As I understand it, Cabal hides all packages by default. If a package
is not in your dependencies, it won't be available to the build, no
matter the status in ghc-pkg.
(Incidentally, this had neat consequences in the past, since it means
that packages being hidden in ghc-pkg also does not make them
unavailable to cabal. I spent some time at a previous employer
attempt to debug a build failure where it turned out that the
developer experiencing the failure had not pulled all the changes. In
particular, we had packages A, B, and C, where C depended on A and B,
and B depended on A. The developer had pulled updates to A and C, but
not B. A built and installed a new version, hiding B (which was based
on an old version). The developer the build C. Cabal started with
everything hidden, then revealed A and B as specified by C's cabal
file, and the predictable build failures resulted. I have not tried
this with GHC/Cabal builds since 6.4.2, so this is probably no longer
possible.)
/g
On Nov 20, 2007 2:18 PM, Greg Fitzgerald
Using GHC 6.8.1 on Windows XP, after having used ghc-pkg to expose 'directory-1.0.0.0', I am getting an error when I build haddock that says the package is hidden. When I type "ghc-pkg list", the package is not in parenthesis. Typing "ghc -v" says that it is using the file from "C:\ghc\ghc- 6.8.1\package.conf". That package.conf file has the 'exposed' set to True for that file. Why does GHC still think the package is hidden?
...\haddock-0.8>runhaskell Setup.lhs configure Configuring haddock-0.8...
...\haddock-0.8>runhaskell Setup.lhs build Preprocessing executables for haddock-0.8... shift/reduce conflicts: 5 Building haddock-0.8...
src/Main.hs:49:7: Could not find module `System.Directory': it is a member of package directory-1.0.0.0, which is hidden
...\haddock-0.8>ghc-pkg list C:/ghc/ghc-6.8.1\package.conf: Cabal-1.2.2.0, HUnit-1.2.0.0, OpenGL-2.2.1.1, QuickCheck-1.1.0.0, Win32-2.1.0.0, array-0.1.0.0, base-3.0.0.0, bytestring-0.9.0.1, cgi-3001.1.5.1, containers-0.1.0.0, directory-1.0.0.0, fgl-5.4.1.1, filepath-1.1.0.0, (ghc-6.8.1), haskell-src-1.0.1.1, haskell98-1.0.1.0 , hpc-0.5.0.0, html-1.0.1.1, mtl-1.1.0.0, network-2.1.0.0, old-locale-1.0.0.0, old-time-1.0.0.0, packedstring-0.1.0.0, parallel-1.0.0.0, parsec-2.1.0.0, pretty-1.0.0.0, process-1.0.0.0, random-1.0.0.0 , regex-base-0.72.0.1, regex-compat-0.71.0.1, regex-posix-0.72.0.1, rts-1.0, stm-2.1.1.0, template-haskell-2.2.0.0, time-1.1.2.0, xhtml-3000.0.2.1
Thanks, Greg
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
-- The man who'd introduced them didn't much like either of them, though he acted as if he did, anxious as he was to preserve good relations at all times. One never knew, after all, now did one now did one now did one.

On Tue, Nov 20, 2007 at 12:18:57PM -0800, Greg Fitzgerald wrote:
Using GHC 6.8.1 on Windows XP, after having used ghc-pkg to expose ' directory-1.0.0.0', I am getting an error when I build haddock that says the package is hidden. When I type "ghc-pkg list", the package is not in parenthesis. Typing "ghc -v" says that it is using the file from "C:\ghc\ghc-6.8.1\package.conf". That package.conf file has the 'exposed' set to True for that file. Why does GHC still think the package is hidden?
...\haddock-0.8>runhaskell Setup.lhs configure Configuring haddock-0.8...
...\haddock-0.8>runhaskell Setup.lhs build Preprocessing executables for haddock-0.8... shift/reduce conflicts: 5 Building haddock-0.8...
src/Main.hs:49:7: Could not find module `System.Directory': it is a member of package directory-1.0.0.0, which is hidden
...\haddock-0.8>ghc-pkg list C:/ghc/ghc-6.8.1\package.conf: Cabal-1.2.2.0, HUnit-1.2.0.0, OpenGL-2.2.1.1, QuickCheck-1.1.0.0, Win32-2.1.0.0, array-0.1.0.0, base-3.0.0.0, bytestring-0.9.0.1, cgi-3001.1.5.1, containers-0.1.0.0, directory-1.0.0.0, fgl-5.4.1.1, filepath-1.1.0.0, (ghc-6.8.1), haskell-src-1.0.1.1, haskell98-1.0.1.0, hpc-0.5.0.0, html-1.0.1.1, mtl-1.1.0.0, network-2.1.0.0, old-locale-1.0.0.0, old-time-1.0.0.0, packedstring-0.1.0.0, parallel-1.0.0.0, parsec-2.1.0.0, pretty-1.0.0.0, process-1.0.0.0, random-1.0.0.0, regex-base-0.72.0.1, regex-compat-0.71.0.1, regex-posix-0.72.0.1, rts-1.0, stm-2.1.1.0, template-haskell-2.2.0.0, time-1.1.2.0, xhtml-3000.0.2.1
This is a Cabal FAQ. Cabal passes -hide-all-packages to GHC to prevent undeclared dependancied from creeping in; so you have to explicitly depend on all used packages. (Would someone who is involved with the cabal web site PLEASE put this up somewhere? FAQs do no good if they have to be typed by humans!) Stefan
participants (4)
-
Duncan Coutts
-
Greg Fitzgerald
-
J. Garrett Morris
-
Stefan O'Rear