From 4c2127c4837d7e2588399c06b56b45b2d4c2f9b0 Mon Sep 17 00:00:00 2001
From: Ben Gamari <ben@smart-cactus.org>
Date: Wed, 12 Jun 2019 11:53:57 -0400
Subject: [PATCH] Bump containers submodule to v0.6.2.1

---
 boot                                                | 10 +++++++++-
 docs/users_guide/8.10.1-notes.rst                   |  2 +-
 docs/users_guide/8.6.1-notes.rst                    |  2 +-
 docs/users_guide/8.8.1-notes.rst                    |  2 +-
 ghc.mk                                              |  2 +-
 hadrian/src/Packages.hs                             |  2 +-
 libraries/containers                                |  2 +-
 testsuite/tests/backpack/should_run/bkprun05.bkp    |  2 +-
 testsuite/tests/backpack/should_run/bkprun05.stderr |  6 ++----
 testsuite/tests/driver/T10970.stdout                |  2 +-
 utils/ghc-cabal/Main.hs                             |  9 +++++----
 11 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/boot b/boot
index 1d7a01f3dbf..fc5dd29336e 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 dfbb8f9224a..ea9a5d85086 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 13f5b4df5d8..341f3b8955c 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 972e4c04461..59b8bf6b747 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 7cddfa76d7c..21cb0a2397e 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 8bb86a63332..53ecb6897e4 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 03dcb287c96..aaeda192b34 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 de2374f5693..6db2daa9635 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 12d7d92d2d5..7f5f1a544f6 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 bf26c89bd81..697781145f5 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 0782ead535b..7f2cf91bb8d 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
-- 
GitLab