Changes between Version 25 and Version 26 of SplitBase


Ignore:
Timestamp:
Mar 13, 2013 2:47:16 PM (2 years ago)
Author:
nomeata
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SplitBase

    v25 v26  
    5353=== Approaches ===
    5454
    55 ==== Large base, re-exporting API packages ====
     55==== (A) Large base, re-exporting API packages ====
    5656
    5757Here we would keep one large `base` package, as now, with a number of wrapper packages that selectively expose stable sub-APIs.
     
    6666 * Alternative compilers/targets can provide these APIs with totally independent implementations
    6767
    68 ==== Actual base split ====
     68==== (B) Actual base split ====
    6969
    7070Here we genuinely split the code in `base` into sub-packages.
     
    9292 * (P1) Prelude stays in base, packages wanting to use the shim packages exclusively have to use `{-# LANGUAGE NoImplicitPrelude #-}` everywhere and import stuff explicitly. base-pure would probably provide its subset of the Prelude in Prelude.Pure, to be imported explicitly.
    9393 * (P2) Prelude goes to the first shim package that has everything required for Haskell98 (probably something like base-io-file). Packages that want to only use base-io have no Prelude to use (see (P1)).
    94  * (P2) Prelude goes to a separate shim package, base-prelude. Packages that want to only use base-io have no Prelude to use (see (P1)). Allows packages to mix the shim-packages easily with other, non-standard Prelude providing packages, e.g. classy-prelude.
     94 * (P3) Prelude goes to a separate shim package, base-prelude. Packages that want to only use base-io have no Prelude to use (see (P1)). Allows packages to mix the shim-packages easily with other, non-standard Prelude providing packages, e.g. classy-prelude.
    9595 * (P4) Multiple shim packages have a Prelude module, providing the part of the Prelude that belongs to that shim package.. Good for those who depend on base-pure, but those who require both base-pure and base-io have now an ambiguous import.
    9696 * (P5) Separate packages base-io-prelude and base-pure-prelude providing Prelude’s containing stuff of base-* (+ dependencies). Packages can pull in precisely the Prelude they want, but yet more packages.