Planning for the 7.12 release

Simon Peyton Jones simonpj at
Fri Aug 28 12:24:05 UTC 2015

|  If this is intended to be an immediate wholesale switch to Shake I
|  would be very skeptical of merging for 7.12 as three months is, in my
|  opinion, very little time to test such a sweeping change.

No there is no chance that we switch over to Shake for 7.12. At the moment it's nowhere near ready for prime time.

But I do hope that we'll have material progress on a side-by-side build system before 7.12 comes out.  It probably won't do everything but it should do some things well.  I hope.


|  However, a long transition time is also not terribly desirable as
|  maintaining two largely independent build systems potentially carries
|  significant cost.
|  Can we in principle expect the Shake build system to build all of the
|  configurations GHC currently supports from day-one (including, for
|  instance, cross compilation)? The batch files in the repository
|  suggest that it has been used on Windows but has it been tested on our
|  other Tier 1 platforms?
|  I just attempted to use the current state of the repository and sadly
|  found that things fell apart pretty quickly [1].
|  I would love to see this happen, but obviously we need to tread
|  carefully when performing such a major overhaul to code so central to
|  the project. Moreover, I would really like to minimize the probability
|  that we increase the maintenance burden of our build infrastructure.
|  I think if there is clear communication regarding what remains to be
|  done and motivation to quickly finish these items then Shakification
|  is still an possibility for 7.12.
|  Otherwise I personally think we may want to be a bit conservative. End
|  users can always check out the shaking-up-ghc repository into their
|  GHC trees themselves if they want to try using it. I'm certainly
|  willing to consider other opinions, however.
|  Cheers,
|  - Ben
|  [1] After I manually ran ./boot,
|      $ _shake/build --lint --directory ".." $@
|      ...  # various output from ./configure
|      Reading shake/cfg/system.config...
|      Reading package dependencies...
|      Error when running Shake build system:
|      * OracleQ (PackageDataKey ("libraries/bin-package-db/dist-
|  boot/","libraries_bin-package-db_dist-boot_LIB_NAME"))
|      * libraries/bin-package-db/dist-boot/
|      * libraries/bin-package-db/dist-boot/
|  libraries/bin-package-db/dist-boot/haddock-prologue.txt libraries/bin-
|  package-db/dist-boot/inplace-pkg-config libraries/bin-package-db/dist-
|  boot/setup-config libraries/bin-package-db/dist-
|  boot/build/autogen/cabal_macros.h
|      * libraries/binary/dist-boot/
|      * libraries/binary/dist-boot/
|  libraries/binary/dist-boot/haddock-prologue.txt libraries/binary/dist-
|  boot/inplace-pkg-config libraries/binary/dist-boot/setup-config
|  libraries/binary/dist-boot/build/autogen/cabal_macros.h
|      * /mnt/work/ghc/ghc-shake/inplace/bin/ghc-cabal
|      Error, file does not exist and no rule available:
|        /mnt/work/ghc/ghc-shake/inplace/bin/ghc-cabal

More information about the ghc-devs mailing list