Ticket #710 (closed task: fixed)
library reorganisation
| Reported by: | simonmar | Owned by: | igloo |
|---|---|---|---|
| Priority: | normal | Milestone: | 6.8.1 |
| Component: | libraries/base | Version: | 6.4.1 |
| Keywords: | Cc: | ||
| Operating System: | Unknown/Multiple | Architecture: | Unknown/Multiple |
| Type of failure: | Difficulty: | Unknown | |
| Test Case: | N/A | Blocked By: | |
| Blocking: | Related Tickets: |
Description (last modified by ross) (diff)
This is the place I'm going to record the planned reorganisations to the packages we ship with GHC. Some of this may happen for 6.6. Please comment.
Goals
- make the base package less monolithic by extracting parts into separate packages
- hence reduce the amount of library code that needs to be built to bootstrap GHC.
- make it possible to build and ship GHC with a minimal set of libraries, without removing the possibility of delivering it with a more comprehensive set too.
- packages provided with a GHC installation should be upgradable.
Activities
- GHC's libraries need to be built using Cabal. Some of the things we need to do before this can happen:
- Cabal needs support for using a specific package database
- we need to support -split-objs with --make
- Abstract away from the particular packages that are built in the GHC tree. Make It possible to populate libraries with any Cabal packages you like, which are built and installed with GHC. (subject to the minimum requirements: base, haskell98, unix, template-haskell, readline, ...).
Library reorganisation
The following modules could be removed from base (perhaps not exhaustive, and there may be dependencies I haven't considered):
- Control.Applicative
- Data.Array.*
- Data.Foldable
- Data.Graph
- Data.HashTable (replace with Jan-Willem Maessen's version)
- Data.IntMap
- Data.IntSet
- Data.Map
- Data.Monoid
- Data.Sequence
- Data.Set
- Data.Traversable
- Data.Tree
- Text.Html (to network package?)
- Text.PrettyPrint.*
- Text.Printf
- Text.Regex (integrate with, or replace by, JRegex?)
Some libraries we want to add:
- FastPackedStrings (replace Data.PackedString)
These were deprecated in 6.4, and can be removed now:
- Data.FiniteMap
- old interface in Data.Set
- withObject in Foreign.Marshal.Utils
These are deprecated now, and can be removed later:
- Data.FunctorM
- Data.Queue
Change History
Note: See
TracTickets for help on using
tickets.
