<div dir="ltr">Perhaps looking at what base-compat has to offer (&quot;<i>A compatibility layer for base</i>&quot;)<span style="font-size:13px;color:rgb(102,102,102);font-family:Helvetica,arial,freesans,clean,sans-serif;line-height:18px;background-color:rgb(250,250,250)"> </span>is relevant to this discussion. See: <div style>

<br></div><div style><a href="https://github.com/sol/base-compat#readme">https://github.com/sol/base-compat#readme</a><br></div><div style><a href="http://hackage.haskell.org/package/base-compat">http://hackage.haskell.org/package/base-compat</a><br>

</div><div style><br></div><div style>I didn&#39;t use it but it looks as promising approach to base API stability.</div><div style><br></div><div style>All best,</div><div style>Krzysztof Skrzętnicki</div><div style><br>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 13, 2013 at 10:00 AM, Simon Marlow <span dir="ltr">&lt;<a href="mailto:marlowsd@gmail.com" target="_blank">marlowsd@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 13/02/13 07:06, wren ng thornton wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 2/12/13 3:37 AM, Simon Marlow wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
One reason for the major version bumps is that base is a big<br>
conglomeration of modules, ranging from those that hardly ever change<br>
(Prelude) to those that change frequently (GHC.*). For example, the new<br>
IO manager that is about to get merged in will force a major bump of<br>
base, because it changes GHC.Event.  The unicode support in the IO<br>
library was similar: although it only added to the external APIs that<br>
most people use, it also changed stuff inside GHC.* that we expose for a<br>
few clients.<br>
<br>
The solution to this would be to split up base further, but of course<br>
doing that is itself a major upheaval.  However, having done that, it<br>
might be more feasible to have non-API-breaking releases.<br>
</blockquote>
<br>
While it will lead to much wailing and gnashing of teeth in the short<br>
term, if it&#39;s feasible to break GHC.* off into its own package, then I<br>
think we should. The vast majority of base seems quite stable or else is<br>
rolling along at a reasonable pace. And yet, every time a new GHC comes<br>
out, there&#39;s a new wave of fiddling the knobs on cabal files because<br>
nothing really changed. On the other hand, GHC.* moves rather quickly.<br>
Nevertheless, GHC.* is nice to have around, so we don&#39;t want to just<br>
hide that churning. The impedance mismatch here suggests that they<br>
really should be separate packages. I wonder whether GHC.* should be<br>
moved in with ghc-prim, or whether they should remain separate...<br>
<br>
But again, this depends on how feasible it would be to actually split<br>
the packages apart. Is it feasible?<br>
</blockquote>
<br></div></div>
So I think we&#39;d need to add another package, call it ghc-base perhaps. The reason is that ghc-prim sits below the integer package (integer-simple or integer-gmp).<br>
<br>
It&#39;s feasible to split base, but to a first approximation what you end up with is base renamed to ghc-base, and then the new base contains just stub modules that re-export stuff from ghc-base.  In fact, maybe you want to do it exactly like this for simplicity - all the code goes in ghc-base.  There would be some impact on compilation time, as we&#39;d have twice as many interfaces to read.<br>


<br>
I believe Ian has done some experiments with splitting base further, so he might have more to add here.<br>
<br>
Cheers,<br>
        Simon<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
______________________________<u></u>_________________<br>
Glasgow-haskell-users mailing list<br>
<a href="mailto:Glasgow-haskell-users@haskell.org" target="_blank">Glasgow-haskell-users@haskell.<u></u>org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/glasgow-haskell-users" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/glasgow-<u></u>haskell-users</a><br>
</div></div></blockquote></div><br></div>