Changes between Version 14 and Version 15 of SplitBase


Ignore:
Timestamp:
Feb 25, 2013 1:13:16 PM (2 years 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.