#1338: base package breakup
----------------------------+-----------------------------------------------
 Reporter:  simonmar        |          Owner:  igloo      
     Type:  task            |         Status:  new        
 Priority:  normal          |      Milestone:  6.10 branch
Component:  libraries/base  |        Version:  6.6.1      
 Severity:  normal          |     Resolution:             
 Keywords:                  |     Difficulty:  Unknown    
 Testcase:                  |   Architecture:  Unknown    
       Os:  Unknown         |  
----------------------------+-----------------------------------------------
Comment (by igloo):

 Updated proposal. I'll attach `packagegraph.png` showing the package deps.

 This block is mostly as before, except timeout has to be in its own
 package so that unique can sit in the middle:
 {{{
 timeout:        System.Timeout

 unique:         Data.Unique

 concurrent:     Control.Concurrent
                 Control.Concurrent.Chan
                 Control.Concurrent.MVar
                 Control.Concurrent.QSem
                 Control.Concurrent.QSemN
                 Control.Concurrent.SampleVar
 }}}
 st can be pulled out:
 {{{
 st:             Control.Monad.ST
                 Control.Monad.ST.Lazy
                 Control.Monad.ST.Strict
                 Data.STRef
                 Data.STRef.Lazy
                 Data.STRef.Strict
 }}}
 control should probably actually be merged with containers, but making it
 its own package made my experimenting simpler:
 {{{
 control:        Control.Applicative
                 Data.Foldable
                 Data.Monoid
                 Data.Traversable

 ghc-exts:       GHC.Exts
                 GHC.PArr
 }}}
 The `System.Mem` modules don't really seem to fit here, but I didn't have
 anywhere better to put them, and they are under `System` after all.
 {{{
 system:         System.CPUTime
                 System.Environment
                 System.Exit
                 System.Info
                 System.Mem
                 System.Mem.StableName
                 System.Mem.Weak

 numeric:        Data.Complex
                 Data.Fixed
                 Data.Ratio

 generics:       Data.Generics
                 Data.Generics.Aliases
                 Data.Generics.Basics
                 Data.Generics.Instances
                 Data.Generics.Schemes
                 Data.Generics.Text
                 Data.Generics.Twins

 version:        Data.Version
 }}}
 Little misc packages; we might want to fold some of these back in later,
 but for now I just wanted to get them out of the way:
 {{{
 getopt:         System.Console.GetOpt

 debug:          Debug.Trace

 printf:         Text.Printf
 }}}
 Again, these I was just getting out of the way. They're internal to GHC,
 so where they end up shouldn't much matter:
 {{{
 ghc-bits:       GHC.ConsoleHandler
                 GHC.Desugar
                 GHC.Environment
                 GHC.TopHandler
 }}}
 The rest of base I currently have cut in 2, with a `foreign` package stuck
 in the middle. If things don't improve here then I expect we'll stick them
 all back together for 6.10:
 {{{
 base-top:       Control.Exception
                 Control.OldException
                 Control.Category
                 Control.Arrow
                 Control.Monad.Fix
                 Control.Monad.Instances
                 Text.Show
                 Text.Show.Functions
                 System.IO.Error
                 System.IO
                 System.Posix.Types
                 System.Posix.Internals
                 Data.Ix
                 Data.Function
                 Prelude

 foreign         Foreign
                 Foreign.C
                 Foreign.C.Error
                 Foreign.C.String
                 Foreign.Concurrent (GHC-only)
                 Foreign.ForeignPtr
                 Foreign.Marshal
                 Foreign.Marshal.Alloc
                 Foreign.Marshal.Array
                 Foreign.Marshal.Error
                 Foreign.Marshal.Pool
                 Foreign.Marshal.Utils
                 Foreign.Ptr
                 Foreign.StablePtr

 base:           Control.Monad
                 Data.Bits
                 Data.Bool
                 Data.Char
                 Data.Dynamic
                 Data.Either
                 Data.Eq
                 Data.HashTable
                 Data.IORef
                 Data.Int
                 Data.List
                 Data.Maybe
                 Data.Ord
                 Data.String
                 Data.Tuple
                 Data.Typeable
                 Data.Word
                 Foreign.C.Types
                 Foreign.Storable
                 Numeric
                 System.IO.Unsafe
                 Text.ParserCombinators.ReadP
                 Text.ParserCombinators.ReadPrec
                 Text.Read
                 Text.Read.Lex
                 Unsafe.Coerce
                 (plus a load of GHC-only internal modules)
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1338#comment:14>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to