Changes between Version 26 and Version 27 of SplitBase


Ignore:
Timestamp:
May 10, 2013 2:32:47 PM (11 months ago)
Author:
igloo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SplitBase

    v26 v27  
    2323==== (G4) Allow well-engineered libraries to be used in what is currently base ==== 
    2424 
    25 At the moment we cannot use libraries like `containers` or `bytestring` in code that is in 
    26 the `base` package.  (Why?  Because those libraries in turn depend on `base` and we don't allow mutual recursion between packages.)  If we split `base` up, we could use these libraries, and perhaps others, in at least parts of what is currently `base`.   Two examples: 
     25At the moment we cannot use libraries like `containers`, `bytestring`, `unix` and `Win32` in code that is in 
     26the `base` package.  (Why?  Because those libraries in turn depend on `base` and we don't allow mutual recursion between packages.)  If we split `base` up, we could use these libraries, and perhaps others, in at least parts of what is currently `base`.   Some examples: 
    2727 
    2828 * We would like to be able to use the Text and !ByteString types in the I/O layer. For example, we'd like to have: 
     
    3737 * The I/O manager currently has a copy of !IntMap inside its implementation because base cannot use containers. Why?  Becuase `containers` depends on `base`, so `base` can't depend on `containers`.  Splitting base would let us get rid of this code duplication. For example: 
    3838   * `base-pure` doesn't need `containers` 
    39    * `containser` depends on `base-pure` 
     39   * `containers` depends on `base-pure` 
    4040   * `base-io` depends on `containers` 
     41 
     42 * In #7427, we would like to use functions from the `unix` package in `base:System.Environment` 
    4143 
    4244==== (G5) Installable base ====