diff --git a/boot b/boot index 1d7a01f3dbfbe6b91be64151120bfabbaa9a97cd..fc5dd29336ee76002089a2a3f0695af089b5b375 100755 --- a/boot +++ b/boot @@ -16,6 +16,11 @@ parser.add_argument('--validate', action='store_true', help='Run in validate mod parser.add_argument('--hadrian', action='store_true', help='Do not assume the make base build system') args = parser.parse_args() +# Packages whose libraries aren't in the submodule root +EXCEPTIONS = { + 'libraries/containers/': 'libraries/containers/containers/' +} + def print_err(s): print(dedent(s), file=sys.stderr) @@ -78,7 +83,7 @@ def check_boot_packages(): # but in an lndir tree we avoid making .git directories, # so it doesn't exist. We therefore require that every repo # has a LICENSE file instead. - license_path = os.path.join(dir_, 'LICENSE') + license_path = os.path.join(EXCEPTIONS.get(dir_+'/', dir_), 'LICENSE') if not os.path.isfile(license_path): die("""\ Error: %s doesn't exist @@ -91,9 +96,12 @@ def boot_pkgs(): for package in glob.glob("libraries/*/"): packages_file = os.path.join(package, 'ghc-packages') + print(package) if os.path.isfile(packages_file): for subpkg in open(packages_file, 'r'): library_dirs.append(os.path.join(package, subpkg.strip())) + elif package in EXCEPTIONS: + library_dirs.append(EXCEPTIONS[package]) else: library_dirs.append(package) diff --git a/docs/users_guide/8.10.1-notes.rst b/docs/users_guide/8.10.1-notes.rst index dfbb8f9224a832d3c6191cf79ab0fbcd5b5a3a5e..ea9a5d850863f720848014a4bcf7cbf1db3fe07c 100644 --- a/docs/users_guide/8.10.1-notes.rst +++ b/docs/users_guide/8.10.1-notes.rst @@ -164,7 +164,7 @@ for further change information. libraries/binary/binary.cabal: Dependency of ``ghc`` library libraries/bytestring/bytestring.cabal: Dependency of ``ghc`` library libraries/Cabal/Cabal/Cabal.cabal: Dependency of ``ghc-pkg`` utility - libraries/containers/containers.cabal: Dependency of ``ghc`` library + libraries/containers/containers/containers.cabal: Dependency of ``ghc`` library libraries/deepseq/deepseq.cabal: Dependency of ``ghc`` library libraries/directory/directory.cabal: Dependency of ``ghc`` library libraries/filepath/filepath.cabal: Dependency of ``ghc`` library diff --git a/docs/users_guide/8.6.1-notes.rst b/docs/users_guide/8.6.1-notes.rst index 13f5b4df5d8595ad12f31d3abc60a65e2c04fa6f..341f3b8955c74d10c8b0d9818961e9baa6adb1ff 100644 --- a/docs/users_guide/8.6.1-notes.rst +++ b/docs/users_guide/8.6.1-notes.rst @@ -268,7 +268,7 @@ for further change information. libraries/binary/binary.cabal: Dependency of ``ghc`` library libraries/bytestring/bytestring.cabal: Dependency of ``ghc`` library libraries/Cabal/Cabal/Cabal.cabal: Dependency of ``ghc-pkg`` utility - libraries/containers/containers.cabal: Dependency of ``ghc`` library + libraries/containers/containers/containers.cabal: Dependency of ``ghc`` library libraries/deepseq/deepseq.cabal: Dependency of ``ghc`` library libraries/directory/directory.cabal: Dependency of ``ghc`` library libraries/filepath/filepath.cabal: Dependency of ``ghc`` library diff --git a/docs/users_guide/8.8.1-notes.rst b/docs/users_guide/8.8.1-notes.rst index 972e4c04461185df82361e0af74559c1fe4a43da..59b8bf6b747774139abff398f9f96b25b49aa61a 100644 --- a/docs/users_guide/8.8.1-notes.rst +++ b/docs/users_guide/8.8.1-notes.rst @@ -241,7 +241,7 @@ for further change information. libraries/binary/binary.cabal: Dependency of ``ghc`` library libraries/bytestring/bytestring.cabal: Dependency of ``ghc`` library libraries/Cabal/Cabal/Cabal.cabal: Dependency of ``ghc-pkg`` utility - libraries/containers/containers.cabal: Dependency of ``ghc`` library + libraries/containers/containers/containers.cabal: Dependency of ``ghc`` library libraries/deepseq/deepseq.cabal: Dependency of ``ghc`` library libraries/directory/directory.cabal: Dependency of ``ghc`` library libraries/filepath/filepath.cabal: Dependency of ``ghc`` library diff --git a/ghc.mk b/ghc.mk index 7cddfa76d7cf6b77e707ef7bea3e092f9969f7f6..21cb0a2397e7835773b4398179e61d047fa5eb81 100644 --- a/ghc.mk +++ b/ghc.mk @@ -426,7 +426,7 @@ PACKAGES_STAGE1 += filepath PACKAGES_STAGE1 += array PACKAGES_STAGE1 += deepseq PACKAGES_STAGE1 += bytestring -PACKAGES_STAGE1 += containers +PACKAGES_STAGE1 += containers/containers ifeq "$(Windows_Target)" "YES" PACKAGES_STAGE1 += Win32 diff --git a/hadrian/src/Packages.hs b/hadrian/src/Packages.hs index 8bb86a63332825191fdc617ad1891a8de3146782..53ecb6897e48a307fd8a3abf568f05e929877664 100644 --- a/hadrian/src/Packages.hs +++ b/hadrian/src/Packages.hs @@ -54,7 +54,7 @@ checkApiAnnotations = util "check-api-annotations" checkPpr = util "check-ppr" compareSizes = util "compareSizes" `setPath` "utils/compare_sizes" compiler = top "ghc" `setPath` "compiler" -containers = lib "containers" +containers = lib "containers" `setPath` "libraries/containers/containers" deepseq = lib "deepseq" deriveConstants = util "deriveConstants" directory = lib "directory" diff --git a/libraries/containers b/libraries/containers index 03dcb287c96613ceb1f64d5d5a82f7b94b879268..aaeda192b34a66b1c5359a85271adf8fed26dd12 160000 --- a/libraries/containers +++ b/libraries/containers @@ -1 +1 @@ -Subproject commit 03dcb287c96613ceb1f64d5d5a82f7b94b879268 +Subproject commit aaeda192b34a66b1c5359a85271adf8fed26dd12 diff --git a/testsuite/tests/backpack/should_run/bkprun05.bkp b/testsuite/tests/backpack/should_run/bkprun05.bkp index de2374f5693a9f9c8210572381b2bb3734556403..6db2daa9635816f42012c0de0ef7cab2c4fa1fda 100644 --- a/testsuite/tests/backpack/should_run/bkprun05.bkp +++ b/testsuite/tests/backpack/should_run/bkprun05.bkp @@ -133,7 +133,7 @@ unit app where app = do let x = insert 0 "foo" . delete 1 - . insert 1 undefined + . insert 1 (errorWithoutStackTrace "this is an error") . insert (6 :: Int) "foo" $ empty print (member 1 x) diff --git a/testsuite/tests/backpack/should_run/bkprun05.stderr b/testsuite/tests/backpack/should_run/bkprun05.stderr index 12d7d92d2d55e201361dc57d8ac1dec0b097284d..7f5f1a544f63f4c38079786b1413ff5739738bbb 100644 --- a/testsuite/tests/backpack/should_run/bkprun05.stderr +++ b/testsuite/tests/backpack/should_run/bkprun05.stderr @@ -1,4 +1,2 @@ -bkprun05: Prelude.undefined -CallStack (from HasCallStack): - error, called at libraries/base/GHC/Err.hs:78:14 in base:GHC.Err - undefined, called at bkprun05.bkp:136:30 in app+app-18HBpsO5TPxCVSTvBQxSrq:App +bkprun05: this is an error + diff --git a/testsuite/tests/driver/T10970.stdout b/testsuite/tests/driver/T10970.stdout index bf26c89bd81c1448952fcf9f367880457046240d..697781145f5c255e08550a84f60b651b866bfe90 100644 --- a/testsuite/tests/driver/T10970.stdout +++ b/testsuite/tests/driver/T10970.stdout @@ -1,2 +1,2 @@ -0.6.0.1 +0.6.2.1 OK diff --git a/utils/ghc-cabal/Main.hs b/utils/ghc-cabal/Main.hs index 0782ead535bfef291ceb138c91a2f20f7941660f..7f2cf91bb8df1575ba76972047c51dab3780f7fe 100644 --- a/utils/ghc-cabal/Main.hs +++ b/utils/ghc-cabal/Main.hs @@ -388,10 +388,11 @@ generate directory distdir config_args libraryDirs = forDeps Installed.libraryDirs -- The mkLibraryRelDir function is a bit of a hack. -- Ideally it should be handled in the makefiles instead. - mkLibraryRelDir "rts" = "rts/dist/build" - mkLibraryRelDir "ghc" = "compiler/stage2/build" - mkLibraryRelDir "Cabal" = "libraries/Cabal/Cabal/dist-install/build" - mkLibraryRelDir l = "libraries/" ++ l ++ "/dist-install/build" + mkLibraryRelDir "rts" = "rts/dist/build" + mkLibraryRelDir "ghc" = "compiler/stage2/build" + mkLibraryRelDir "Cabal" = "libraries/Cabal/Cabal/dist-install/build" + mkLibraryRelDir "containers" = "libraries/containers/containers/dist-install/build" + mkLibraryRelDir l = "libraries/" ++ l ++ "/dist-install/build" libraryRelDirs = map mkLibraryRelDir transitiveDepNames -- this is a hack to accommodate Cabal 2.2+ more hygenic