Pugs.hs build fails on latest haskell platform (2012.2.0.0 with GHC 7.4.1). The OS is windows 7 64 bit.
Downloading the latest package list from hackage.haskell.org
C:\>cabal install Pugs
Preprocessing library pugs-compat-0.0.6.20120717.204800...
Could not find module `IO'
It is a member of the hidden package `haskell98-22.214.171.124'.
Perhaps you need to add `haskell98' to the build-depends in your .cabal file
Use -v to see a list of the files searched for.
cabal: Error: some packages failed to install:
Pugs-126.96.36.19920717 depends on pugs-compat-0.0.6.20120717.204800 which failed
pugs-compat-0.0.6.20120717.204800 failed during the building phase. The
The Glorious Glasgow Haskell Compilation System, version 7.4.1
A more verbose output can be found here: https://gist.github.com/3810975#file_cabal.issue_verbose.txt
I tried to fix that with moving IO to System.IO - admittedly, it seems to be more involved than that. Unless I'm very much mistaken, this would involve moving any dependencies from haskell98 to base (that's bundled along with GHC, as is the case since GHC 7.0.1)
It's probably to do with base now being Haskell 2010, and thus not having Haskell 98's library set visible. There's a way to get GHC to use the Haskell 98 set, which is more of a stopgap but might help get things up and running for a while (i.e. until they stop shipping Haskell 98's core libraries). As http://stackoverflow.com/questions/9555671/ghc-7-4-update-breaks-haskell98 answers explain:
ghc -package haskell98 -hide-package base
Because base is now Haskell 2012, you have to hide it and bring Haskell 98 in instead.
* Try addressing #25.
Still downloading Haskell Platform on Windows 8 here, so not
exactly sure if it's the right fix... Will follow up soon.
Hiding base package doesn't quite seem to be the right solution, since Compat.hs in pugs-compat uses System.Mem.Weak which is part of base. Using both haskell98 and base doesn't cut it either, since it leads to ambiguous Prelude errors.
Is there a better way of specifiying exact modules on a per-file basis?
Revert "* Try addressing #25."
OK, that doesn't work. It appears to be a tricky problem...
Maybe we will end up splitting the "base" pugs-compat part
with the "haskell98" part.
This reverts commit 3ee7e28.
* Workaround #25 by disabling opendir() on Windows.