Changes between Version 14 and Version 15 of SplitBase


Ignore:
Timestamp:
Feb 25, 2013 1:13:16 PM (14 months ago)
Author:
nomeata
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SplitBase

    v14 v15  
    44 
    55This has been discussed before, e.g. in [2008 http://www.haskell.org/pipermail/libraries/2008-August/010543.html]. 
     6 
     7=== Goals === 
     8 
     9Structural changes to the base package can be attempted towards the following goals: 
     10 
     11==== To allow changes to internals without forcing a version-bump on ‘base’, on which every package depends ==== 
     12 
     13SPJ: But that goal needs a bit of unpacking. Suppose we divided base into six, base1, base2, base3, etc, but each was a vertical silo and every other package depended on all six.  Then nothing would be gained; bumping any of them would cause a ripple of bumps down the line. 
     14 
     15==== To allow packages to be explictly about what they need ==== 
     16 
     17A library that does not use the IO monad could communicate that just by not depending on some base-io package. Similar with the Foreign Function Interface or unsafe operations. 
     18 
     19==== To allow alternative implementations/targets ==== 
     20 
     21A Haskell-to-Javascript compiler will not support File IO, or maybe not even IO at all. It would be desirable such an implementation has a chance to at least provide a complete and API compatible base-pure package, and that one can hence reasonably assume that packages and libraries depending only on `base-pure` will indeed work without modification. 
     22 
     23==== Split base into as FEW packages as possible, consistent with meeting the other goals ==== 
     24 
     25In contrast to the non-goal of splitting base as much as possible. Johan points out, a split now could paint us into a corner later, so we should not gratuitously split things up. 
     26 
    627 
    728=== Non-Obvious interdependencies === 
     
    2950=== First attempt === 
    3051 
    31 Joachim has started a first attempt to pull stuff out of the bottom of base. See [https://github.com/nomeata/packages-base/blob/base-split/README.md] for an overview of progress and a description of changes. Use `git clone git://github.com/nomeata/packages-base.git; git checkout base-split` to experiment. 
     52Joachim has started a first attempt to pull stuff out of the bottom of base. See [https://github.com/nomeata/packages-base/blob/base-split/README.md] for an overview of progress and a description of changes. Use `git clone git://github.com/nomeata/packages-base.git; git checkout base-split` to experiment. This *does* try to split out as many packages as possible, just to see what is possible.