
On 3/18/07, Bulat Ziganshin
Hello Jeffrey,
Sunday, March 18, 2007, 5:32:21 AM, you wrote:
base isn't compatible between major ghc versions (6.6/6.8). so you may use only base 2.0 with 6.6 or base 3.0 with 6.8.
This seems wrong to me (though I'm quite new at this, so there could be something obvious I'm missing). I understand that ghc-6.6 expects
try to compile base of ghc 6.6 using 6.4 compiler and vice versa. 6.8 is not yet finished, so i guess that differences between base 2.0 and base 3.0 will be much larger that now
That's inconvenient but not a fundamental problem. Say ghc-6.8 gets up to base-3.2 by the time 6.10 is released depending on base-4.0. Then someone wants to add System.ZOMGio to base. They add it to both base-3.3 and base-4.1. Someone who wants to use it needs to specify that they depend on base ">=3.3&&<4.0 || >=4.1", and can probably assume that >=5.0 will also include it.
So, to solve the immediate problem you're complaining about, it might be more practical to pull the "bottom" (GHC/Prim*.hs) out of base into something like ghc-prim for ghc-6.8 rather than to prevent new modules from being added to the top. Then base can be refactored at a more leisurely pace.
look at http://haskell.org/haskellwiki/Library/Core :)
You're depending on the existing base package from these files. You need to pass ghc the -hide-all-packages flag to tell it that you're starting from scratch. Then, even if I copy GHC/* into place, it complains that GhcCore/Base.lhs-boot:16:0: Failed to load interface for `GHC.Prim': it is a member of package base, which is hidden Which is the same problem I ran into. I think you're conflating two different problems: Make ghc-6.8.x support more than ==base-3.0, and make base-3.0 support more than ghc-6.8.x. The second is an admirable goal, but to support upgrading base, you only have to deal with the first. -- Namasté, Jeffrey Yasskin