
#12052: Split ghc-boot so we have better dependency hygiene -------------------------------------+------------------------------------- Reporter: ezyang | Owner: Type: bug | Status: new Priority: high | Milestone: 8.0.2 Component: Core Libraries | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by hvr): It's not only `bytestring` `template-haskell` started to depend on: In GHC 7.10.3 there were the following deps: {{{ "template-haskell-2.10.0.0" -> "base-4.8.2.0" "template-haskell-2.10.0.0" -> "pretty-1.1.2.0" "pretty-1.1.2.0" -> "base-4.8.2.0" "pretty-1.1.2.0" -> "deepseq-1.4.1.1" "pretty-1.1.2.0" -> "ghc-prim-0.4.0.0" "deepseq-1.4.1.1" -> "array-0.5.1.0" "deepseq-1.4.1.1" -> "base-4.8.2.0" }}} whereas with GHC 8.0 we have now {{{ "template-haskell-2.11.0.0" -> "base-4.9.0.0" "template-haskell-2.11.0.0" -> "ghc-boot-8.0.0.20160511" "template-haskell-2.11.0.0" -> "pretty-1.1.3.3" "pretty-1.1.3.3" -> "base-4.9.0.0" "pretty-1.1.3.3" -> "deepseq-1.4.2.0" "pretty-1.1.3.3" -> "ghc-prim-0.5.0.0" "deepseq-1.4.2.0" -> "array-0.5.1.1" "deepseq-1.4.2.0" -> "base-4.9.0.0" "ghc-boot-8.0.0.20160511" -> "base-4.9.0.0" "ghc-boot-8.0.0.20160511" -> "binary-0.8.3.0" "ghc-boot-8.0.0.20160511" -> "bytestring-0.10.8.0" "ghc-boot-8.0.0.20160511" -> "directory-1.2.6.2" "ghc-boot-8.0.0.20160511" -> "filepath-1.4.1.0" "binary-0.8.3.0" -> "array-0.5.1.1" "binary-0.8.3.0" -> "base-4.9.0.0" "binary-0.8.3.0" -> "bytestring-0.10.8.0" "binary-0.8.3.0" -> "containers-0.5.7.1" "directory-1.2.6.2" -> "base-4.9.0.0" "directory-1.2.6.2" -> "filepath-1.4.1.0" "directory-1.2.6.2" -> "time-1.6.0.1" "directory-1.2.6.2" -> "unix-2.7.2.0" }}} so effectively, `template-haskell` now transitively adds the following dependencies (relative to GHC 7.10.3): - `unix` - `directory` - `filepath` - `containers` - `bytestring` - `binary` this reduces a lot of flexibility from the cabal solver, and makes it impossible to use newer versions of those packages (something I did frequently in GHC 7.10.3) as soon as `template-haskell` enters install- plans. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12052#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler