Skip to content

Split ghc-boot so we have better dependency hygiene

At the moment, template-haskell transitively depends on bytestring. This means that any package which depends on template-haskell has its bytestring version pinned to the version that was shipped with GHC. Which is lame, because template-haskell doesn't actually use bytestring in any interesting way.

This is bad, we should split ghc-boot into two pieces, one which has the binary package database bits, and another which contains the Template Haskell bits, so we can have better dependency hygiene.

We should also have a comment on template-haskell mentioning the importance of dependency hygiene, so this doesn't happen again.

Trac metadata
Trac field Value
Version 8.0.1
Type Bug
TypeOfFailure OtherFailure
Priority high
Resolution Unresolved
Component Core Libraries
Test case
Differential revisions
BlockedBy
Related
Blocking
CC RyanGlScott, bgamari, ekmett, hvr
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information