Build local-gc branch of GHC

Hi, I've been trying to get and build a branch of ghc that includes the new local GC algorithm ( http://www.haskell.org/pipermail/cvs-ghc/2011-June/062748.html), but I haven't been able to build it successfully. Here is what I've done: 1. Got the latest source tree using these commands: $ git clone http://darcs.haskell.org/ghc.git/ $ cd ghc $ ./sync-all --testsuite get 2. Use 'fingerprint' script to get the state of the repository for the branch mentioned in the web page I mentioned above. A fingerprint file based on the announcement above fails due to some problem with binary and haddock change sets not being found. So I modified the fingerprint to use the latest versions for binary and deleted the change for haddock entirely. I ran this command: ./utils/fingerprint/fingerprint.py restore -f local-gc.fp and my local-gc.fp fingerprint file contains this: .|ab5aad587de8e3d9dde539982ae728b33e5bca50 ghc-tarballs|e7b7b152083f7c3e3559e557a239757d41ac02a6 libraries/Cabal|6f01f56a2702b50e2da909566c4a01622cb2ca7f libraries/Win32|0cf603103e9ad3fccd862171ba5e689b87930622 libraries/array|e4b4e2e0a79f4138bdff4f10d263436b0155f449 libraries/base|be2750a0a11b919fb03cc070074e430f88bdfa90 libraries/binary|376797487651cf995bd52458ce1f7d7a283341b3 libraries/bytestring|cab9d8566fba8611598f14fb4f2ac7b8d4aae75b libraries/containers|592f6d9da9090e8d53432f22a01bb117fea2246c libraries/deepseq|91e8a93b15ed32af3941f81e927291a023feb369 libraries/directory|3a0f2e2cb94c3e4f346023acc7201409d2876ed8 libraries/extensible-exceptions|a667b48d0cb6469b6611cb516d16836aa002e782 libraries/filepath|92d211a2752fe8827582ae0d97efd18722ad3d87 libraries/ghc-prim|7fcfc880853fa399c9468049aeb14e6eadb9eae5 libraries/haskeline|125ee5bba59fa9ac2fd77aa3922c30dffc11b7b5 libraries/haskell2010|f90687bee55adfd693fe460f2ab4bc270a7f97e3 libraries/haskell98|eb655b0317665acb9670025480b4af4465bc8f55 libraries/hoopl|0febb7f04ff4326bd120fc75549845e5e9678d72 libraries/hpc|fce8babbc3f60fb195d84545753dc342422ab8e1 libraries/integer-gmp|2567c97aaa467cb676a6ecc2cf840c92ee1cb6ec libraries/integer-simple|c3e9c0268b4d59895829e429d1ac767e6041b06a libraries/mtl|a748dfa2770af1d348dfaa8ad6955b25b4935711 libraries/old-locale|7f09f55ea3011c17c526805f099394a05ec9c3fe libraries/old-time|6aae8dc2f13cef6ab48c5436c6c0e7c1b5ae3f51 libraries/parallel|f82611fac439236e22a057cd555bb9fe393597b0 libraries/pretty|e00aa7e0f82fc6f13ad85f1b3a27f53efe473e60 libraries/process|d1c2999473ba0d4ceafdc6da309debca83f91abe libraries/random|ba8cb1b9fdfddeb29fdfedd8612c8ce85a987af8 libraries/stm|ccc6d74872916e5de7747df4cc61f64de64be591 libraries/template-haskell|acd4c3292d0f7a222a1f4f426054e4732a809fc8 libraries/terminfo|f4476f1881085b74dbe65cf4a4561e8fb34017d4 libraries/unix|c9a0bf119ce343b291bef77828066339e94fb64d libraries/utf8-string|d28cd1fbd4ebaaa0608c070bd02ed72dc9b70399 libraries/xhtml|9a4d7d64d0491a1844d5b5759275b029ccd1e2cd nofib|6d3ea16e56bd99d060e778fab3583aa67a6b50d4 testsuite|6560613138d61afddd0d8d428254370f8dfdb4cd utils/hsc2hs|c46eed44ce96f1719334ffb190eddf63695bc553 3. I then run $perl boot $./configure This succeeds telling me that it will be building ghc version 7.1.20110606. 4. Run make and it fails with this output: + test -f mk/config.mk.old + cp -p mk/config.mk mk/config.mk.old touch -r mk/config.mk.old mk/config.mk + test -f mk/project.mk.old + cp -p mk/project.mk mk/project.mk.old touch -r mk/project.mk.old mk/project.mk + test -f compiler/ghc.cabal.old + cp -p compiler/ghc.cabal compiler/ghc.cabal.old touch -r compiler/ghc.cabal.old compiler/ghc.cabal ===--- building phase 0 make -r --no-print-directory -f ghc.mk phase=0 phase_0_builds libraries/dph/ghc.mk:116: *** dph_th_deps(v,seq): libraries/dph/dph-base_dist-install_GHCI_LIB not defined!. Stop. make: *** [all] Error 2 5. I don't know how to fix this, so I tried deleting libraries/dph. Then I run make again, and get a ways through the build, and then get this error: "inplace/bin/ghc-stage1" -M -dep-makefile libraries/vector/dist-install/build/.depend-v-p-dyn.haskell.tmp -dep-suffix p -dep-suffix dyn -include-pkg-deps -H32m -O -package-name vector-0.8 -hide-all-packages -i -ilibraries/vector/. -ilibraries/vector/dist-install/build -ilibraries/vector/dist-install/build/autogen -Ilibraries/vector/dist-install/build -Ilibraries/vector/dist-install/build/autogen -Ilibraries/vector/include -Ilibraries/vector/internal -optP-DVECTOR_BOUNDS_CHECKS -optP-include -optPlibraries/vector/dist-install/build/autogen/cabal_macros.h -package base-4.3.1.0 -package primitive-0.4.0.1 -O2 -XHaskell98 -XCPP -XDeriveDataTypeable -O2 -no-user-package-conf -rtsopts -odir libraries/vector/dist-install/build -hidir libraries/vector/dist-install/build -stubdir libraries/vector/dist-install/build -hisuf hi -osuf o -hcsuf hc libraries/vector/./Data/Vector/Internal/Check.hs libraries/vector/./Data/Vector/Fusion/Util.hs libraries/vector/./Data/Vector/Fusion/Stream/Size.hs libraries/vector/./Data/Vector/Fusion/Stream/Monadic.hs libraries/vector/./Data/Vector/Fusion/Stream/Monadic/Safe.hs libraries/vector/./Data/Vector/Fusion/Stream.hs libraries/vector/./Data/Vector/Fusion/Stream/Safe.hs libraries/vector/./Data/Vector/Generic/Mutable.hs libraries/vector/./Data/Vector/Generic/Mutable/Safe.hs libraries/vector/./Data/Vector/Generic/Base.hs libraries/vector/./Data/Vector/Generic/New.hs libraries/vector/./Data/Vector/Generic/New/Safe.hs libraries/vector/./Data/Vector/Generic.hs libraries/vector/./Data/Vector/Generic/Safe.hs libraries/vector/./Data/Vector/Primitive/Mutable.hs libraries/vector/./Data/Vector/Primitive/Mutable/Safe.hs libraries/vector/./Data/Vector/Primitive.hs libraries/vector/./Data/Vector/Primitive/Safe.hs libraries/vector/./Data/Vector/Storable/Internal.hs libraries/vector/./Data/Vector/Storable/Mutable.hs libraries/vector/./Data/Vector/Storable.hs libraries/vector/./Data/Vector/Unboxed/Base.hs libraries/vector/./Data/Vector/Unboxed/Mutable.hs libraries/vector/./Data/Vector/Unboxed/Mutable/Safe.hs libraries/vector/./Data/Vector/Unboxed.hs libraries/vector/./Data/Vector/Unboxed/Safe.hs libraries/vector/./Data/Vector/Mutable.hs libraries/vector/./Data/Vector/Mutable/Safe.hs libraries/vector/./Data/Vector.hs libraries/vector/./Data/Vector/Safe.hs libraries/vector/Data/Vector/Fusion/Util.hs:4:14: Unsupported extension: Trustworthy make[1]: *** [libraries/vector/dist-install/build/.depend-v-p-dyn.haskell] Error 1 make: *** [all] Error 2 I deleted this library too, but my build errors just continued. After resolving a bunch of build errors in Haskell libraries, I started getting errors in the C files in the rts directory. While I could go on fixing these problems, it seems likely that I went wrong somewhere early on. Does anyone see where I went wrong? Did I use the various tools (git, sync-all, fingerprint, boot, configure, make) in the right order and way? Regards, Andreas

Thanks to Simon Marlow for helping me resolve this problem. After step 2,
delete the following directories from the source tree:
libraries/dph
libraries/vector
libraries/primitive
then proceed with step 3 and 4 (boot, configure, make). This worked for me.
Regards,
Andreas
On Mon, Sep 26, 2011 at 2:18 PM, Andreas Voellmy
Hi,
I've been trying to get and build a branch of ghc that includes the new local GC algorithm ( http://www.haskell.org/pipermail/cvs-ghc/2011-June/062748.html), but I haven't been able to build it successfully. Here is what I've done:
1. Got the latest source tree using these commands:
$ git clone http://darcs.haskell.org/ghc.git/ $ cd ghc $ ./sync-all --testsuite get
2. Use 'fingerprint' script to get the state of the repository for the branch mentioned in the web page I mentioned above. A fingerprint file based on the announcement above fails due to some problem with binary and haddock change sets not being found. So I modified the fingerprint to use the latest versions for binary and deleted the change for haddock entirely. I ran this command:
./utils/fingerprint/fingerprint.py restore -f local-gc.fp
and my local-gc.fp fingerprint file contains this:
.|ab5aad587de8e3d9dde539982ae728b33e5bca50 ghc-tarballs|e7b7b152083f7c3e3559e557a239757d41ac02a6 libraries/Cabal|6f01f56a2702b50e2da909566c4a01622cb2ca7f libraries/Win32|0cf603103e9ad3fccd862171ba5e689b87930622 libraries/array|e4b4e2e0a79f4138bdff4f10d263436b0155f449 libraries/base|be2750a0a11b919fb03cc070074e430f88bdfa90 libraries/binary|376797487651cf995bd52458ce1f7d7a283341b3 libraries/bytestring|cab9d8566fba8611598f14fb4f2ac7b8d4aae75b libraries/containers|592f6d9da9090e8d53432f22a01bb117fea2246c libraries/deepseq|91e8a93b15ed32af3941f81e927291a023feb369 libraries/directory|3a0f2e2cb94c3e4f346023acc7201409d2876ed8 libraries/extensible-exceptions|a667b48d0cb6469b6611cb516d16836aa002e782 libraries/filepath|92d211a2752fe8827582ae0d97efd18722ad3d87 libraries/ghc-prim|7fcfc880853fa399c9468049aeb14e6eadb9eae5 libraries/haskeline|125ee5bba59fa9ac2fd77aa3922c30dffc11b7b5 libraries/haskell2010|f90687bee55adfd693fe460f2ab4bc270a7f97e3 libraries/haskell98|eb655b0317665acb9670025480b4af4465bc8f55 libraries/hoopl|0febb7f04ff4326bd120fc75549845e5e9678d72 libraries/hpc|fce8babbc3f60fb195d84545753dc342422ab8e1 libraries/integer-gmp|2567c97aaa467cb676a6ecc2cf840c92ee1cb6ec libraries/integer-simple|c3e9c0268b4d59895829e429d1ac767e6041b06a libraries/mtl|a748dfa2770af1d348dfaa8ad6955b25b4935711 libraries/old-locale|7f09f55ea3011c17c526805f099394a05ec9c3fe libraries/old-time|6aae8dc2f13cef6ab48c5436c6c0e7c1b5ae3f51 libraries/parallel|f82611fac439236e22a057cd555bb9fe393597b0 libraries/pretty|e00aa7e0f82fc6f13ad85f1b3a27f53efe473e60 libraries/process|d1c2999473ba0d4ceafdc6da309debca83f91abe libraries/random|ba8cb1b9fdfddeb29fdfedd8612c8ce85a987af8 libraries/stm|ccc6d74872916e5de7747df4cc61f64de64be591 libraries/template-haskell|acd4c3292d0f7a222a1f4f426054e4732a809fc8 libraries/terminfo|f4476f1881085b74dbe65cf4a4561e8fb34017d4 libraries/unix|c9a0bf119ce343b291bef77828066339e94fb64d libraries/utf8-string|d28cd1fbd4ebaaa0608c070bd02ed72dc9b70399 libraries/xhtml|9a4d7d64d0491a1844d5b5759275b029ccd1e2cd nofib|6d3ea16e56bd99d060e778fab3583aa67a6b50d4 testsuite|6560613138d61afddd0d8d428254370f8dfdb4cd utils/hsc2hs|c46eed44ce96f1719334ffb190eddf63695bc553
3. I then run
$perl boot $./configure
This succeeds telling me that it will be building ghc version 7.1.20110606.
4. Run make and it fails with this output:
+ test -f mk/config.mk.old + cp -p mk/config.mk mk/config.mk.old touch -r mk/config.mk.old mk/config.mk + test -f mk/project.mk.old + cp -p mk/project.mk mk/project.mk.old touch -r mk/project.mk.old mk/project.mk + test -f compiler/ghc.cabal.old + cp -p compiler/ghc.cabal compiler/ghc.cabal.old touch -r compiler/ghc.cabal.old compiler/ghc.cabal ===--- building phase 0 make -r --no-print-directory -f ghc.mk phase=0 phase_0_builds libraries/dph/ghc.mk:116: *** dph_th_deps(v,seq): libraries/dph/dph-base_dist-install_GHCI_LIB not defined!. Stop. make: *** [all] Error 2
5. I don't know how to fix this, so I tried deleting libraries/dph. Then I run make again, and get a ways through the build, and then get this error:
"inplace/bin/ghc-stage1" -M -dep-makefile libraries/vector/dist-install/build/.depend-v-p-dyn.haskell.tmp -dep-suffix p -dep-suffix dyn -include-pkg-deps -H32m -O -package-name vector-0.8 -hide-all-packages -i -ilibraries/vector/. -ilibraries/vector/dist-install/build -ilibraries/vector/dist-install/build/autogen -Ilibraries/vector/dist-install/build -Ilibraries/vector/dist-install/build/autogen -Ilibraries/vector/include -Ilibraries/vector/internal -optP-DVECTOR_BOUNDS_CHECKS -optP-include -optPlibraries/vector/dist-install/build/autogen/cabal_macros.h -package base-4.3.1.0 -package primitive-0.4.0.1 -O2 -XHaskell98 -XCPP -XDeriveDataTypeable -O2 -no-user-package-conf -rtsopts -odir libraries/vector/dist-install/build -hidir libraries/vector/dist-install/build -stubdir libraries/vector/dist-install/build -hisuf hi -osuf o -hcsuf hc libraries/vector/./Data/Vector/Internal/Check.hs libraries/vector/./Data/Vector/Fusion/Util.hs libraries/vector/./Data/Vector/Fusion/Stream/Size.hs libraries/vector/./Data/Vector/Fusion/Stream/Monadic.hs libraries/vector/./Data/Vector/Fusion/Stream/Monadic/Safe.hs libraries/vector/./Data/Vector/Fusion/Stream.hs libraries/vector/./Data/Vector/Fusion/Stream/Safe.hs libraries/vector/./Data/Vector/Generic/Mutable.hs libraries/vector/./Data/Vector/Generic/Mutable/Safe.hs libraries/vector/./Data/Vector/Generic/Base.hs libraries/vector/./Data/Vector/Generic/New.hs libraries/vector/./Data/Vector/Generic/New/Safe.hs libraries/vector/./Data/Vector/Generic.hs libraries/vector/./Data/Vector/Generic/Safe.hs libraries/vector/./Data/Vector/Primitive/Mutable.hs libraries/vector/./Data/Vector/Primitive/Mutable/Safe.hs libraries/vector/./Data/Vector/Primitive.hs libraries/vector/./Data/Vector/Primitive/Safe.hs libraries/vector/./Data/Vector/Storable/Internal.hs libraries/vector/./Data/Vector/Storable/Mutable.hs libraries/vector/./Data/Vector/Storable.hs libraries/vector/./Data/Vector/Unboxed/Base.hs libraries/vector/./Data/Vector/Unboxed/Mutable.hs libraries/vector/./Data/Vector/Unboxed/Mutable/Safe.hs libraries/vector/./Data/Vector/Unboxed.hs libraries/vector/./Data/Vector/Unboxed/Safe.hs libraries/vector/./Data/Vector/Mutable.hs libraries/vector/./Data/Vector/Mutable/Safe.hs libraries/vector/./Data/Vector.hs libraries/vector/./Data/Vector/Safe.hs
libraries/vector/Data/Vector/Fusion/Util.hs:4:14: Unsupported extension: Trustworthy make[1]: *** [libraries/vector/dist-install/build/.depend-v-p-dyn.haskell] Error 1 make: *** [all] Error 2
I deleted this library too, but my build errors just continued. After resolving a bunch of build errors in Haskell libraries, I started getting errors in the C files in the rts directory. While I could go on fixing these problems, it seems likely that I went wrong somewhere early on. Does anyone see where I went wrong? Did I use the various tools (git, sync-all, fingerprint, boot, configure, make) in the right order and way?
Regards, Andreas
participants (1)
-
Andreas Voellmy