summaryrefslogtreecommitdiff
path: root/cabal.project-reinstall
diff options
context:
space:
mode:
authorZubin Duggal <zubin.duggal@gmail.com>2021-06-13 16:02:06 +0530
committerMatthew Pickering <matthewtpickering@gmail.com>2022-02-21 11:18:58 +0000
commit7ce1b694f7be7fbf6e2d7b7eb0639e61fbe358c6 (patch)
tree9e6ff5ac7982e9d22987f551a531d0f034ec942c /cabal.project-reinstall
parent2f0ceecc42789558c648c6dcff431d3c8ac3aa46 (diff)
downloadhaskell-7ce1b694f7be7fbf6e2d7b7eb0639e61fbe358c6.tar.gz
Reinstallable GHC
This patch allows ghc and its dependencies to be built using a normal invocation of cabal-install. Each componenent which relied on generated files or additional configuration now has a Setup.hs file. There are also various fixes to the cabal files to satisfy cabal-install. There is a new hadrian command which will build a stage2 compiler and then a stage3 compiler by using cabal. ``` ./hadrian/build build-cabal ``` There is also a new CI job which tests running this command. For the 9.4 release we will upload all the dependent executables to hackage and then end users will be free to build GHC and GHC executables via cabal. There are still some unresolved questions about how to ensure soundness when loading plugins into a reinstalled GHC (#20742) which will be tighted up in due course. Fixes #19896
Diffstat (limited to 'cabal.project-reinstall')
-rw-r--r--cabal.project-reinstall79
1 files changed, 79 insertions, 0 deletions
diff --git a/cabal.project-reinstall b/cabal.project-reinstall
new file mode 100644
index 0000000000..e026e70a5d
--- /dev/null
+++ b/cabal.project-reinstall
@@ -0,0 +1,79 @@
+packages: ./compiler
+ ./utils/genprimopcode/
+ ./utils/deriveConstants/
+ ./ghc/
+ -- ./libraries/array
+ -- ./libraries/base
+ ./libraries/binary
+ ./libraries/bytestring
+ ./libraries/Cabal/Cabal
+ ./libraries/Cabal/Cabal-syntax
+ ./libraries/containers/containers/
+ -- ./libraries/deepseq/
+ ./libraries/directory/
+ ./libraries/exceptions/
+ -- ./libraries/filepath/
+ -- ./libraries/ghc-bignum/
+ ./libraries/ghc-boot/
+ -- ./libraries/ghc-boot-th/
+ ./libraries/ghc-compact
+ ./libraries/ghc-heap
+ ./libraries/ghci
+ -- ./libraries/ghc-prim
+ ./libraries/haskeline
+ ./libraries/directory
+ ./libraries/hpc
+ -- ./libraries/integer-gmp
+ ./libraries/libiserv/
+ ./libraries/mtl/
+ ./libraries/parsec/
+ -- ./libraries/pretty/
+ ./libraries/process/
+ ./libraries/stm
+ -- ./libraries/template-haskell/
+ ./libraries/terminfo/
+ ./libraries/text
+ ./libraries/time
+ ./libraries/transformers/
+ ./libraries/unix/
+ ./libraries/Win32/
+ ./libraries/xhtml/
+ ./utils/ghc-pkg
+ ./utils/haddock
+ ./utils/hp2ps
+ ./utils/hpc
+ ./utils/hsc2hs
+ ./utils/runghc
+ ./utils/unlit
+ ./utils/iserv
+
+constraints: ghc +internal-interpreter +dynamic-system-linke +terminfo,
+ ghc-bin +internal-interpreter +threaded,
+ ghci +internal-interpreter,
+ haddock +in-ghc-tree,
+ any.array installed,
+ any.base installed,
+ any.deepseq installed,
+ any.filepath installed,
+ any.ghc-bignum installed,
+ any.ghc-boot-th installed,
+ any.integer-gmp installed,
+ any.pretty installed,
+ any.template-haskell installed
+
+allow-newer:
+ ghc-paths:Cabal,
+ *:base,
+ *:ghc-prim,
+ tree-diff:time
+
+benchmarks: False
+tests: False
+allow-boot-library-installs: False
+
+-- Workaround for https://github.com/haskell/cabal/issues/7297
+package *
+ library-vanilla: True
+ shared: True
+ executable-profiling: False
+ executable-dynamic: True