Most importantly, converting the custom build-type to a simple build-type, which results in a more robust alex cabal package; and thus breaks up the dependency cycle between lib:Cabal and alex.
Use a fixed cpp implementation for performing the sdist template-preprocessing step (rather than rely on whichever cpp implementation the used Haskell implementation was configured to use). This also has the benefit that everyone gets the exact same template file sinstalled into their package db, rather than each installation having template files which subtly differ thanks to different C system headers, GHC headers/behaviour, or simply because of different cpp implementations.
Encode the intra-package dependency between test-suite and the alex component in the .cabal description, which allows us to simplify the test-logic and have cabal take care of the rest (the current one works with both "old-build" and new-build; the previous one worked only with "old-build")
Add more GHCs to the build-matrix, including GHC 7.4.2 as well as GHC 8.4.1-alpha
(GHC 7.0.4 not added yet, as it would currently fail during the tests due to -Werror)
This PR does a couple of things:
alex
cabal package; and thus breaks up the dependency cycle betweenlib:Cabal
andalex
.cpp
implementation for performing thesdist
template-preprocessing step (rather than rely on whichevercpp
implementation the used Haskell implementation was configured to use). This also has the benefit that everyone gets the exact same template file sinstalled into their package db, rather than each installation having template files which subtly differ thanks to different C system headers, GHC headers/behaviour, or simply because of differentcpp
implementations.alex
component in the .cabal description, which allows us to simplify the test-logic and havecabal
take care of the rest (the current one works with both "old-build" andnew-build
; the previous one worked only with "old-build")-Werror
)