Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,310
    • Issues 4,310
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 382
    • Merge Requests 382
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #710

Closed
Open
Opened Mar 02, 2006 by Simon Marlow@simonmarDeveloper

library reorganisation

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
Edited Mar 09, 2019 by ross
Assignee
Assign to
6.8.1
Milestone
6.8.1
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#710