[Git][ghc/ghc][ghc-8.8] 8 commits: configure.ac: add --enable-numa switch

Ben Gamari gitlab at gitlab.haskell.org
Fri Jun 26 16:57:13 UTC 2020



Ben Gamari pushed to branch ghc-8.8 at Glasgow Haskell Compiler / GHC


Commits:
d1630685 by Sergei Trofimovich at 2020-05-31T12:27:36-04:00
configure.ac: add --enable-numa switch

Before the change ./configure detected numa support automatically
withoun a nice way to disable autodetection.

The change adds `--enable-numa` / `--disable-numa` switch to
override the default. If `--enable-numa` is passed and `libnuma`
is not present then configure will fail.

Reported-by: Sergey Alirzaev
Bug: https://github.com/gentoo-haskell/gentoo-haskell/issues/955
Signed-off-by: Sergei Trofimovich <slyfox at gentoo.org>
(cherry picked from commit 78afc2c92f94c7bbb94d774adc577aa039119172)

- - - - -
a7771ec6 by Ben Gamari at 2020-06-20T17:36:54-04:00
hsc2hs: Bump submodule to 0.68.7

Fixes #17995.

- - - - -
bee002a5 by Ben Gamari at 2020-06-20T17:54:49-04:00
users-guide: Add 8.8.4 release notes

- - - - -
14ce264c by Ben Gamari at 2020-06-20T21:31:42-04:00
gitlab-ci: Introduce DWARF release jobs for Deb10 and Fedora 27

(cherry picked from commit 481e31740672a37c5b3a8924bba7e15c4080bc2e)

- - - - -
c6e97663 by Ben Gamari at 2020-06-23T15:48:38-04:00
Bump Cabal submodule to 3.0.2.0

- - - - -
e9f2b43c by Ben Gamari at 2020-06-24T14:18:12-04:00
gitlab-ci: Bump docker images

- - - - -
ffa3e128 by Ben Gamari at 2020-06-24T14:47:43-04:00
hadrian: Widen QuickCheck upper bound

- - - - -
dbe8a594 by Ben Gamari at 2020-06-24T18:55:28-04:00
gitlab-ci: Bump bootstrap compiler version

- - - - -


7 changed files:

- .gitlab-ci.yml
- configure.ac
- + docs/users_guide/8.8.4-notes.rst
- docs/users_guide/index.rst
- hadrian/hadrian.cabal
- libraries/Cabal
- utils/hsc2hs


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -2,7 +2,7 @@ variables:
   GIT_SSL_NO_VERIFY: "1"
 
   # Commit of ghc/ci-images repository from which to pull Docker images
-  DOCKER_REV: e517150438cd9df9564fb91adc4b42e2667b2bc1
+  DOCKER_REV: 1ac7f435c9312f10422a82d304194778378e2a1a
 
   # Sequential version number capturing the versions of all tools fetched by
   # .gitlab/win32-init.sh.
@@ -25,11 +25,12 @@ stages:
   - deploy     # push documentation
 
 .only-default: &only-default
-  only:
-    - master
-    - /ghc-[0-9]+\.[0-9]+/
-    - merge_requests
-    - tags
+  rules:
+    - if: $CI_MERGE_REQUEST_ID
+    - if: $CI_COMMIT_TAG
+    - if: '$CI_COMMIT_BRANCH == "master"'
+    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
+    - if: '$CI_PIPELINE_SOURCE == "web"'
 
 ############################################################
 # Runner Tags
@@ -42,6 +43,20 @@ stages:
 #         x86_64-linux to ensure low-latency availability.
 #
 
+.nightly: &nightly
+  rules:
+    - if: $NIGHTLY
+
+.release: &release
+  variables:
+    BUILD_FLAVOUR: "perf"
+    FLAVOUR: "perf"
+  artifacts:
+    when: always
+    expire_in: 1 year
+  rules:
+    - if: '$RELEASE == "yes"'
+
 
 ############################################################
 # Linting
@@ -62,9 +77,8 @@ ghc-linters:
   dependencies: []
   tags:
     - lint
-  only:
-    refs:
-      - merge_requests
+  rules:
+    - if: $CI_MERGE_REQUEST_ID
 
 # We allow the submodule checker to fail when run on merge requests (to
 # accomodate, e.g., haddock changes not yet upstream) but not on `master` or
@@ -80,18 +94,16 @@ ghc-linters:
 
 lint-submods:
   extends: .lint-submods
-  only:
-    refs:
-      - master
-      - /ghc-[0-9]+\.[0-9]+/
-      - wip/marge_bot_batch_merge_job
+  rules:
+    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/'
+      allow_failure: false
+    - allow_failure: true
 
 lint-submods-mr:
   extends: .lint-submods
   allow_failure: true
-  only:
-    refs:
-      - merge_requests
+  rules:
+    - if: $CI_MERGE_REQUEST_ID
 
 .lint-changelogs:
   stage: lint
@@ -105,15 +117,13 @@ lint-submods-mr:
 lint-changelogs:
   extends: .lint-changelogs
   allow_failure: true
-  only:
-    refs:
-      - /ghc-[0-9]+\.[0-9]+/
+  rules:
+    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
 
 lint-release-changelogs:
   extends: .lint-changelogs
-  only:
-    refs:
-      - /ghc-[0-9]+\.[0-9]+\.[0-9]+-.*-release/
+  rules:
+    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
 
 
 ############################################################
@@ -197,7 +207,7 @@ validate-x86_64-darwin:
   tags:
     - x86_64-darwin
   variables:
-    GHC_VERSION: 8.6.3
+    GHC_VERSION: "8.8.3"
     CABAL_INSTALL_VERSION: 2.4.1.0
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-apple-darwin.tar.xz"
     MACOSX_DEPLOYMENT_TARGET: "10.7"
@@ -281,14 +291,12 @@ validate-aarch64-linux-deb9:
     expire_in: 2 week
 
 nightly-aarch64-linux-deb9:
+  <<: *nightly
   extends: .build-aarch64-linux-deb9
   artifacts:
     expire_in: 2 year
   variables:
     TEST_TYPE: slowtest
-  only:
-    variables:
-      - $NIGHTLY
 
 #################################
 # i386-linux-deb9
@@ -311,15 +319,27 @@ validate-i386-linux-deb9:
     expire_in: 2 week
 
 nightly-i386-linux-deb9:
+  <<: *nightly
   extends: .build-i386-linux-deb9
   variables:
     TEST_TYPE: slowtest
   artifacts:
     when: always
     expire_in: 2 week
-  only:
-    variables:
-      - $NIGHTLY
+
+#################################
+# x86_64-linux-deb10
+#################################
+
+.build-x86_64-linux-deb10:
+  extends: .validate-linux
+  stage: full-build
+  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+  variables:
+    TEST_ENV: "x86_64-linux-deb10"
+    BIN_DIST_PREP_TAR_COMP: "./ghc-x86_64-deb10-linux.tar.xz"
+  cache:
+    key: linux-x86_64-deb10
 
 #################################
 # x86_64-linux-deb9
@@ -342,14 +362,12 @@ validate-x86_64-linux-deb9:
     expire_in: 2 week
 
 nightly-x86_64-linux-deb9:
+  <<: *nightly
   extends: .build-x86_64-linux-deb9
   artifacts:
     expire_in: 2 year
   variables:
     TEST_TYPE: slowtest
-  only:
-    variables:
-      - $NIGHTLY
 
 # N.B. Has DEBUG assertions enabled in stage2
 validate-x86_64-linux-deb9-debug:
@@ -377,6 +395,7 @@ validate-x86_64-linux-deb9-integer-simple:
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-deb9-linux-integer-simple.tar.xz"
 
 nightly-x86_64-linux-deb9-integer-simple:
+  <<: *nightly
   extends: .build-x86_64-linux-deb9
   stage: full-build
   variables:
@@ -385,9 +404,6 @@ nightly-x86_64-linux-deb9-integer-simple:
     TEST_TYPE: slowtest
   artifacts:
     expire_in: 2 year
-  only:
-    variables:
-      - $NIGHTLY
 
 validate-x86_64-linux-deb9-unreg:
   extends: .build-x86_64-linux-deb9
@@ -413,11 +429,21 @@ release-x86_64-linux-deb9-dwarf:
     key: linux-x86_64-deb9
 
 
+release-x86_64-linux-deb10-dwarf:
+  <<: *release
+  extends: .build-x86_64-linux-deb10
+  variables:
+    CONFIGURE_ARGS: "--enable-dwarf-unwind"
+    BUILD_FLAVOUR: dwarf
+    TEST_ENV: "x86_64-linux-deb10-dwarf"
+    BIN_DIST_PREP_TAR_COMP: "ghc-x86_64-deb10-linux-dwarf.tar.xz"
+
 #################################
 # x86_64-linux-deb8
 #################################
 
 release-x86_64-linux-deb8:
+  <<: *release
   extends: .validate-linux
   stage: full-build
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb8:$DOCKER_REV"
@@ -426,8 +452,6 @@ release-x86_64-linux-deb8:
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-deb8-linux.tar.xz"
     # Disable sphinx PDF output as our Debian image doesn't have the requisite packages
     BUILD_SPHINX_PDF: "NO"
-  only:
-    - tags
   cache:
     key: linux-x86_64-deb8
   artifacts:
@@ -439,6 +463,7 @@ release-x86_64-linux-deb8:
 #################################
 
 release-x86_64-linux-centos7:
+  <<: *release
   extends: .validate-linux
   stage: full-build
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV"
@@ -451,8 +476,6 @@ release-x86_64-linux-centos7:
     TEST_ENV: "x86_64-linux-centos7"
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-centos7-linux.tar.xz"
   allow_failure: true
-  only:
-    - tags
   cache:
     key: linux-x86_64-centos7
   artifacts:
@@ -463,7 +486,7 @@ release-x86_64-linux-centos7:
 # x86_64-linux-fedora27
 #################################
 
-validate-x86_64-linux-fedora27:
+.build-x86_64-linux-fedora27:
   extends: .validate-linux
   stage: full-build
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora27:$DOCKER_REV"
@@ -472,12 +495,28 @@ validate-x86_64-linux-fedora27:
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-fedora27-linux.tar.xz"
   cache:
     key: linux-x86_64-fedora27
+
+validate-x86_64-linux-fedora27:
+  extends: .build-x86_64-linux-fedora27
   artifacts:
     when: always
     # These are used for head.hackage jobs therefore we keep them around for
     # longer.
     expire_in: 8 week
 
+release-x86_64-linux-fedora27:
+  <<: *release
+  extends: .build-x86_64-linux-fedora27
+
+release-x86_64-linux-fedora27-dwarf:
+  <<: *release
+  extends: .build-x86_64-linux-fedora27
+  variables:
+    CONFIGURE_ARGS: "--enable-dwarf-unwind"
+    BUILD_FLAVOUR: dwarf
+    TEST_ENV: "x86_64-linux-fedora27-dwarf"
+    BIN_DIST_PREP_TAR_COMP: "ghc-x86_64-fedora27-linux-dwarf.tar.xz"
+
 ############################################################
 # Validation via Pipelines (Windows)
 ############################################################
@@ -522,7 +561,7 @@ validate-x86_64-linux-fedora27:
   stage: full-build
   allow_failure: true
   variables:
-    GHC_VERSION: "8.6.2"
+    GHC_VERSION: "8.8.3"
   script:
     - |
       python boot
@@ -546,12 +585,10 @@ validate-x86_64-windows-hadrian:
     key: "x86_64-windows-hadrian-$WINDOWS_TOOLCHAIN_VERSION"
 
 nightly-i386-windows-hadrian:
+  <<: *nightly
   extends: .build-windows-hadrian
   variables:
     MSYSTEM: MINGW32
-  only:
-    variables:
-      - $NIGHTLY
   cache:
     key: "i386-windows-hadrian-$WINDOWS_TOOLCHAIN_VERSION"
 
@@ -562,7 +599,7 @@ nightly-i386-windows-hadrian:
   allow_failure: true
   variables:
     BUILD_FLAVOUR: "UNSET"
-    GHC_VERSION: "8.6.2"
+    GHC_VERSION: "8.8.3"
     BUILD_PROF_LIBS: "YES"
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-mingw32.tar.xz"
   script:
@@ -597,18 +634,16 @@ validate-x86_64-windows:
 
 # Normal Windows validate builds are profiled; that won't do for releases.
 release-x86_64-windows:
+  <<: *release
   extends: validate-x86_64-windows
   variables:
     MSYSTEM: MINGW64
     BUILD_FLAVOUR: "perf"
     CONFIGURE_ARGS: "--target=x86_64-unknown-mingw32"
-  only:
-    - tags
 
 release-i386-windows:
+  <<: *release
   extends: .build-windows-make
-  only:
-    - tags
   variables:
     MSYSTEM: MINGW32
     BUILD_FLAVOUR: "perf"
@@ -619,10 +654,8 @@ release-i386-windows:
     key: "i386-windows-$WINDOWS_TOOLCHAIN_VERSION"
 
 nightly-i386-windows:
+  <<: *nightly
   extends: .build-windows-make
-  only:
-    variables:
-      - $NIGHTLY
   variables:
     MSYSTEM: MINGW32
     CONFIGURE_ARGS: "--target=i386-unknown-mingw32"
@@ -653,7 +686,6 @@ cleanup-windows:
   stage: cleanup
   tags:
     - x86_64-windows
-  when: always
   dependencies: []
   before_script:
     - echo "Time to clean up"
@@ -676,7 +708,6 @@ cleanup-darwin:
   stage: cleanup
   tags:
     - x86_64-darwin
-  when: always
   dependencies: []
   before_script:
     - echo "Time to clean up"
@@ -694,13 +725,12 @@ cleanup-darwin:
 ############################################################
 
 source-tarball:
+  <<: *release
   stage: packaging
   tags:
     - x86_64-linux
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
   dependencies: []
-  only:
-    - tags
   artifacts:
     paths:
       - ghc-*.tar.xz
@@ -738,19 +768,12 @@ source-tarball:
   script:
     - bash .gitlab/start-head.hackage.sh
 
-hackage:
-  extends: .hackage
-  when: manual
-
 hackage-label:
   extends: .hackage
-  only:
-    variables:
-      - $CI_MERGE_REQUEST_LABELS =~ /.*user-facing.*/
+  rules:
+    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*user-facing.*/'
 
 nightly-hackage:
+  <<: *nightly
   extends: .hackage
-  only:
-    variables:
-      - $NIGHTLY
 


=====================================
configure.ac
=====================================
@@ -1259,11 +1259,22 @@ AC_DEFINE_UNQUOTED([USE_LIBDW], [$USE_LIBDW], [Set to 1 to use libdw])
 dnl ** Have libnuma?
 dnl --------------------------------------------------------------
 HaveLibNuma=0
-AC_CHECK_HEADERS([numa.h numaif.h])
+AC_ARG_ENABLE(numa,
+    [AC_HELP_STRING([--enable-numa],
+        [Enable NUMA memory policy and thread affinity support in the
+         runtime system via numactl's libnuma [default=auto]])])
 
-if test "$ac_cv_header_numa_h$ac_cv_header_numaif_h" = "yesyes" ; then
+if test "$enable_numa" != "no" ; then
+  AC_CHECK_HEADERS([numa.h numaif.h])
+
+  if test "$ac_cv_header_numa_h$ac_cv_header_numaif_h" = "yesyes" ; then
     AC_CHECK_LIB(numa, numa_available,HaveLibNuma=1)
+  fi
+  if test "$enable_numa:$HaveLibNuma" = "yes:0" ; then
+      AC_MSG_ERROR([Cannot find system libnuma (required by --enable-numa)])]
+  fi
 fi
+
 AC_DEFINE_UNQUOTED([HAVE_LIBNUMA], [$HaveLibNuma], [Define to 1 if you have libnuma])
 if test $HaveLibNuma = "1" ; then
   AC_SUBST([CabalHaveLibNuma],[True])


=====================================
docs/users_guide/8.8.4-notes.rst
=====================================
@@ -0,0 +1,80 @@
+.. _release-8-8-4:
+
+Release notes for version 8.8.4
+===============================
+
+GHC 8.8.4 is a minor release intended to fix regressions and minor bugs in the
+8.8.1, 8.8.2 and 8.8.3 releases.
+
+Highlights
+----------
+
+- Fix a bug in process creation on Windows (:ghc-ticket:`17926`).
+
+- Workaround a Linux kernel bug in the implementation of ``timerfd``\s (:ghc-ticket:`18033`).
+
+
+Known issues
+------------
+
+- A long-standing bug (:ghc-ticket:`16893`) which can cause some applications
+  of ``unsafeCoerce`` to segmentation fault is only partially fixed in this
+  release. This release only avoids this issue in the uses of ``unsafeCoerce``
+  in ``Data.Typeable.Internal``, which was the proximate cause of
+  :ghc-ticket:`16893`.
+
+  However, it is possible that this bug could manifest in user-code using
+  ``unsafeCoerce`` to perform dynamic type checks. See the :ghc-ticket:`ticket
+  <16893>` for details.
+
+- The simplifier can optimise away some applications of the ``touch#`` primop
+  when it can prove that the ``touch#`` is unreachable due to divergence or
+  synchronous exception, resulting in memory unsoundness. Users requiring
+  ``touch#`` behavior are advised to only use ``touch#`` to implement
+  continuation-passing-style primitives (e.g. in the style of
+  ``withForeignPtr``) bearing ``NOINLINE`` pragmas (to avoid inappropriate
+  simplification). See :ghc-ticket:`17760` for details.
+
+Included libraries
+------------------
+
+The package database provided with this distribution also contains a number of
+packages other than GHC itself. See the changelogs provided with these packages
+for further change information.
+
+.. ghc-package-list::
+
+    libraries/array/array.cabal:             Dependency of ``ghc`` library
+    libraries/base/base.cabal:               Core library
+    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/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
+    compiler/ghc.cabal:                      The compiler itself
+    libraries/ghci/ghci.cabal:               The REPL interface
+    libraries/ghc-boot/ghc-boot.cabal:       Internal compiler library
+    libraries/ghc-boot-th/ghc-boot-th.cabal: Internal compiler library
+    libraries/ghc-compact/ghc-compact.cabal: Core library
+    libraries/ghc-heap/ghc-heap.cabal:       GHC heap-walking library
+    libraries/ghc-prim/ghc-prim.cabal:       Core library
+    libraries/haskeline/haskeline.cabal:     Dependency of ``ghci`` executable
+    libraries/hpc/hpc.cabal:                 Dependency of ``hpc`` executable
+    libraries/integer-gmp/integer-gmp.cabal: Core library
+    libraries/libiserv/libiserv.cabal:       Internal compiler library
+    libraries/mtl/mtl.cabal:                 Dependency of ``Cabal`` library
+    libraries/parsec/parsec.cabal:           Dependency of ``Cabal`` library
+    libraries/process/process.cabal:         Dependency of ``ghc`` library
+    libraries/pretty/pretty.cabal:           Dependency of ``ghc`` library
+    libraries/stm/stm.cabal:                 Dependency of ``haskeline`` library
+    libraries/template-haskell/template-haskell.cabal:     Core library
+    libraries/terminfo/terminfo.cabal:       Dependency of ``haskeline`` library
+    libraries/text/text.cabal:               Dependency of ``Cabal`` library
+    libraries/time/time.cabal:               Dependency of ``ghc`` library
+    libraries/transformers/transformers.cabal: Dependency of ``ghc`` library
+    libraries/unix/unix.cabal:               Dependency of ``ghc`` library
+    libraries/Win32/Win32.cabal:             Dependency of ``ghc`` library
+    libraries/xhtml/xhtml.cabal:             Dependency of ``haddock`` executable
+


=====================================
docs/users_guide/index.rst
=====================================
@@ -15,6 +15,7 @@ Contents:
    8.8.1-notes
    8.8.2-notes
    8.8.3-notes
+   8.8.4-notes
    ghci
    runghc
    usage


=====================================
hadrian/hadrian.cabal
=====================================
@@ -122,7 +122,7 @@ executable hadrian
                        , extra                >= 1.4.7
                        , mtl                  == 2.2.*
                        , parsec               >= 3.1     && < 3.2
-                       , QuickCheck           >= 2.6     && < 2.13
+                       , QuickCheck           >= 2.6     && < 2.15
                        , shake                >= 0.16.4
                        , transformers         >= 0.4     && < 0.6
                        , unordered-containers >= 0.2.1   && < 0.3


=====================================
libraries/Cabal
=====================================
@@ -1 +1 @@
-Subproject commit 8199c3f838a15fb9b7c8d3527603084b2474d877
+Subproject commit bd07f0a095869b91a590d8a564f716a6a136818a


=====================================
utils/hsc2hs
=====================================
@@ -1 +1 @@
-Subproject commit efb556cc2689cae42abadae87d778ae20fbc0a14
+Subproject commit 24100ea521596922d3edc8370b3d9f7b845ae4cf



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/bc05d3599545ddca50dbd8a557fd71785f6cb6fd...dbe8a5947aa5714777611260dafaaebd7fd0f822

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/bc05d3599545ddca50dbd8a557fd71785f6cb6fd...dbe8a5947aa5714777611260dafaaebd7fd0f822
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20200626/51bfb9e2/attachment-0001.html>


More information about the ghc-commits mailing list