diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2022-05-12 16:18:47 +0100 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2022-05-23 11:12:05 +0100 |
commit | 7e8ea503bd8c31240b43d664ea70c10ef03dbb9f (patch) | |
tree | 43344eb38c91a65289d69ea01fb9f21168cf35d9 | |
parent | 15a95cf61c601e86fe0c969c3b5df498cb42fe41 (diff) | |
download | haskell-7e8ea503bd8c31240b43d664ea70c10ef03dbb9f.tar.gz |
Add release flavour and use it for the release jobs
The release flavour is essentially the same as the perf flavour
currently but also enables `-haddock`. I have hopefully updated all the
relevant places where the `-perf` flavour was hardcoded.
Fixes #21486
-rw-r--r-- | .gitlab-ci.yml | 40 | ||||
-rwxr-xr-x | .gitlab/gen_ci.hs | 12 | ||||
-rw-r--r-- | .gitlab/jobs.yaml | 200 | ||||
-rw-r--r-- | hadrian/doc/flavours.md | 12 | ||||
-rw-r--r-- | hadrian/hadrian.cabal | 1 | ||||
-rw-r--r-- | hadrian/src/Flavour.hs | 13 | ||||
-rwxr-xr-x | hadrian/src/Settings.hs | 2 | ||||
-rw-r--r-- | hadrian/src/Settings/Flavours/Release.hs | 7 |
8 files changed, 161 insertions, 126 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0462c0acdf..38e10d3afa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -102,7 +102,7 @@ workflow: .release: &release variables: - BUILD_FLAVOUR: "perf" + BUILD_FLAVOUR: "release" XZ_OPT: "-9" IGNORE_PERF_FAILURES: "all" HADDOCK_HYPERLINKED_SOURCES: "YES" @@ -457,14 +457,14 @@ doc-tarball: optional: true - job: nightly-x86_64-linux-deb10-validate optional: true - - job: release-x86_64-linux-deb10-perf + - job: release-x86_64-linux-deb10-release optional: true - job: x86_64-windows-validate optional: true - job: nightly-x86_64-windows-validate optional: true - - job: release-x86_64-windows-perf + - job: release-x86_64-windows-release optional: true tags: @@ -485,10 +485,10 @@ doc-tarball: - | mv "ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz" "$LINUX_BINDIST" \ || mv "ghc-x86_64-linux-deb10-validate.tar.xz" "$LINUX_BINDIST" \ - || mv "ghc-x86_64-linux-deb10-perf.tar.xz" "$LINUX_BINDIST" \ + || mv "ghc-x86_64-linux-deb10-release.tar.xz" "$LINUX_BINDIST" \ || true mv "ghc-x86_64-windows-validate.tar.xz" "$WINDOWS_BINDIST" \ - || mv "ghc-x86_64-windows-perf.tar.xz" "$WINDOWS_BINDIST" \ + || mv "ghc-x86_64-windows-release.tar.xz" "$WINDOWS_BINDIST" \ || true if [ ! -f "$LINUX_BINDIST" ]; then echo "Error: $LINUX_BINDIST does not exist. Did the Debian 9 job fail?" @@ -506,11 +506,11 @@ doc-tarball: hackage-doc-tarball: stage: packaging needs: - - job: x86_64-linux-fedora33-perf + - job: x86_64-linux-fedora33-release optional: true - - job: nightly-x86_64-linux-fedora33-perf + - job: nightly-x86_64-linux-fedora33-release optional: true - - job: release-x86_64-linux-fedora33-perf + - job: release-x86_64-linux-fedora33-release optional: true - job: source-tarball tags: @@ -525,7 +525,7 @@ hackage-doc-tarball: - hackage_docs before_script: - tar -xf ghc-*[0-9]-src.tar.xz - - tar -xf ghc-x86_64-linux-fedora33-perf.tar.xz -C ghc*/ + - tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C ghc*/ script: - cd ghc*/ - mv .gitlab/upload_ghc_libs.py . @@ -600,13 +600,13 @@ test-bootstrap: .hackage: stage: testing needs: - - job: x86_64-linux-fedora33-perf + - job: x86_64-linux-fedora33-release optional: true artifacts: false - - job: nightly-x86_64-linux-fedora33-perf + - job: nightly-x86_64-linux-fedora33-release optional: true artifacts: false - - job: release-x86_64-linux-fedora33-perf + - job: release-x86_64-linux-fedora33-release optional: true artifacts: false variables: @@ -664,11 +664,11 @@ perf-nofib: allow_failure: true stage: testing needs: - - job: x86_64-linux-fedora33-perf + - job: x86_64-linux-fedora33-release optional: true - - job: nightly-x86_64-linux-fedora33-perf + - job: nightly-x86_64-linux-fedora33-release optional: true - - job: release-x86_64-linux-fedora33-perf + - job: release-x86_64-linux-fedora33-release optional: true image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV" rules: @@ -684,7 +684,7 @@ perf-nofib: - root=$(pwd)/ghc - | mkdir tmp - tar -xf ../ghc-x86_64-linux-fedora33-perf.tar.xz -C tmp + tar -xf ../ghc-x86_64-linux-fedora33-release.tar.xz -C tmp pushd tmp/ghc-*/ ./configure --prefix=$root make install @@ -710,11 +710,11 @@ perf-nofib: perf: stage: testing needs: - - job: x86_64-linux-fedora33-perf + - job: x86_64-linux-fedora33-release optional: true - - job: nightly-x86_64-linux-fedora33-perf + - job: nightly-x86_64-linux-fedora33-release optional: true - - job: release-x86_64-linux-fedora33-perf + - job: release-x86_64-linux-fedora33-release optional: true dependencies: null image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV" @@ -728,7 +728,7 @@ perf: - root=$(pwd)/ghc - | mkdir tmp - tar -xf ghc-x86_64-linux-fedora33-perf.tar.xz -C tmp + tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C tmp pushd tmp/ghc-*/ ./configure --prefix=$root make install diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs index 4d90954a6c..7259819576 100755 --- a/.gitlab/gen_ci.hs +++ b/.gitlab/gen_ci.hs @@ -140,7 +140,7 @@ data Flavour = Flavour BaseFlavour [FlavourTrans] data FlavourTrans = Llvm | Dwarf | FullyStatic | ThreadSanitiser -data BaseFlavour = Perf | Validate | SlowValidate +data BaseFlavour = Release | Validate | SlowValidate ----------------------------------------------------------------------------- -- Build Configs @@ -170,8 +170,8 @@ dwarf = vanilla { withDwarf = True } unreg :: BuildConfig unreg = vanilla { unregisterised = True } -perf :: BuildConfig -perf = vanilla { buildFlavour = Perf } +releaseConfig :: BuildConfig +releaseConfig = vanilla { buildFlavour = Release } debug :: BuildConfig debug = vanilla { buildFlavour = SlowValidate @@ -258,7 +258,7 @@ testEnv arch opsys bc = intercalate "-" $ flavourString :: Flavour -> String flavourString (Flavour base trans) = baseString base ++ concatMap (("+" ++) . flavourString) trans where - baseString Perf = "perf" + baseString Release = "release" baseString Validate = "validate" baseString SlowValidate = "slow-validate" @@ -657,7 +657,7 @@ nightly arch opsys bc = -- | Make a normal release CI job release arch opsys bc = - let (n, j) = job arch opsys (bc { buildFlavour = Perf }) + let (n, j) = job arch opsys (bc { buildFlavour = Release }) in ("release-" ++ n, addJobRule ReleaseOnly . keepArtifacts "1 year" . ignorePerfFailures . highCompression $ j) -- Specific job modification functions @@ -752,7 +752,7 @@ jobs = M.fromList $ concatMap flattenJobGroup $ , disableValidate (standardBuilds Amd64 (Linux Centos7)) -- Fedora33 job is always built with perf so there's one job in the normal -- validate pipeline which is built with perf. - , (standardBuildsWithConfig Amd64 (Linux Fedora33) perf) + , (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig) , disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) dwarf) , fastCI (standardBuilds Amd64 Windows) , disableValidate (standardBuildsWithConfig Amd64 Windows nativeInt) diff --git a/.gitlab/jobs.yaml b/.gitlab/jobs.yaml index bbf941a17d..c6217421c4 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -1378,7 +1378,7 @@ "XZ_OPT": "-9" } }, - "nightly-x86_64-linux-fedora33-perf": { + "nightly-x86_64-linux-fedora33-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -1388,7 +1388,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-fedora33-perf.tar.xz", + "ghc-x86_64-linux-fedora33-release.tar.xz", "junit.xml" ], "reports": { @@ -1430,12 +1430,12 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "LLC": "/bin/false", "OPT": "/bin/false", - "TEST_ENV": "x86_64-linux-fedora33-perf", + "TEST_ENV": "x86_64-linux-fedora33-release", "XZ_OPT": "-9" } }, @@ -1677,7 +1677,7 @@ "XZ_OPT": "-9" } }, - "release-aarch64-darwin-perf": { + "release-aarch64-darwin-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -1687,7 +1687,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-aarch64-darwin-perf.tar.xz", + "ghc-aarch64-darwin-release.tar.xz", "junit.xml" ], "reports": { @@ -1729,19 +1729,19 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-aarch64-darwin-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-aarch64-darwin-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi ", "HADRIAN_ARGS": "--docs=no-sphinx", "IGNORE_PERF_FAILURES": "all", "LANG": "en_US.UTF-8", "MACOSX_DEPLOYMENT_TARGET": "11.0", "NIX_SYSTEM": "aarch64-darwin", - "TEST_ENV": "aarch64-darwin-perf", + "TEST_ENV": "aarch64-darwin-release", "XZ_OPT": "-9" } }, - "release-aarch64-linux-deb10-perf": { + "release-aarch64-linux-deb10-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -1751,7 +1751,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-aarch64-linux-deb10-perf.tar.xz", + "ghc-aarch64-linux-deb10-release.tar.xz", "junit.xml" ], "reports": { @@ -1793,15 +1793,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-aarch64-linux-deb10-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-aarch64-linux-deb10-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "aarch64-linux-deb10-perf", + "TEST_ENV": "aarch64-linux-deb10-release", "XZ_OPT": "-9" } }, - "release-armv7-linux-deb10-perf": { + "release-armv7-linux-deb10-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -1811,7 +1811,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-armv7-linux-deb10-perf.tar.xz", + "ghc-armv7-linux-deb10-release.tar.xz", "junit.xml" ], "reports": { @@ -1853,15 +1853,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-armv7-linux-deb10-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-armv7-linux-deb10-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "LD=ld.lld ", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "armv7-linux-deb10-perf", + "TEST_ENV": "armv7-linux-deb10-release", "XZ_OPT": "-9" } }, - "release-i386-linux-deb9-perf": { + "release-i386-linux-deb9-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -1871,7 +1871,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-i386-linux-deb9-perf.tar.xz", + "ghc-i386-linux-deb9-release.tar.xz", "junit.xml" ], "reports": { @@ -1913,15 +1913,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-i386-linux-deb9-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-i386-linux-deb9-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "i386-linux-deb9-perf", + "TEST_ENV": "i386-linux-deb9-release", "XZ_OPT": "-9" } }, - "release-x86_64-darwin-perf": { + "release-x86_64-darwin-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -1931,7 +1931,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-darwin-perf.tar.xz", + "ghc-x86_64-darwin-release.tar.xz", "junit.xml" ], "reports": { @@ -1973,21 +1973,21 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-darwin-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-darwin-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi ", "HADRIAN_ARGS": "--docs=no-sphinx", "IGNORE_PERF_FAILURES": "all", "LANG": "en_US.UTF-8", "MACOSX_DEPLOYMENT_TARGET": "10.10", "NIX_SYSTEM": "x86_64-darwin", - "TEST_ENV": "x86_64-darwin-perf", + "TEST_ENV": "x86_64-darwin-release", "XZ_OPT": "-9", "ac_cv_func_clock_gettime": "no", "ac_cv_func_utimensat": "no" } }, - "release-x86_64-freebsd-perf": { + "release-x86_64-freebsd-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -1997,7 +1997,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-freebsd-perf.tar.xz", + "ghc-x86_64-freebsd-release.tar.xz", "junit.xml" ], "reports": { @@ -2038,18 +2038,18 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-freebsd-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-freebsd-release", + "BUILD_FLAVOUR": "release", "CABAL_INSTALL_VERSION": "3.2.0.0", "CONFIGURE_ARGS": "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib ", "GHC_VERSION": "9.2.2", "HADRIAN_ARGS": "--docs=no-sphinx", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "x86_64-freebsd-perf", + "TEST_ENV": "x86_64-freebsd-release", "XZ_OPT": "-9" } }, - "release-x86_64-linux-alpine3_12-int_native-perf+fully_static": { + "release-x86_64-linux-alpine3_12-int_native-release+fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2059,7 +2059,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-alpine3_12-int_native-perf+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_12-int_native-release+fully_static.tar.xz", "junit.xml" ], "reports": { @@ -2101,18 +2101,18 @@ ], "variables": { "BIGNUM_BACKEND": "native", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-perf+fully_static", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-release+fully_static", "BROKEN_TESTS": "encoding004 T10458 ghcilink002 linker_unload_native", - "BUILD_FLAVOUR": "perf+fully_static", + "BUILD_FLAVOUR": "release+fully_static", "CONFIGURE_ARGS": "--disable-ld-override ", "HADRIAN_ARGS": "--docs=no-sphinx", "IGNORE_PERF_FAILURES": "all", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override", - "TEST_ENV": "x86_64-linux-alpine3_12-int_native-perf+fully_static", + "TEST_ENV": "x86_64-linux-alpine3_12-int_native-release+fully_static", "XZ_OPT": "-9" } }, - "release-x86_64-linux-alpine3_12-perf+fully_static": { + "release-x86_64-linux-alpine3_12-release+fully_static": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2122,7 +2122,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-alpine3_12-perf+fully_static.tar.xz", + "ghc-x86_64-linux-alpine3_12-release+fully_static.tar.xz", "junit.xml" ], "reports": { @@ -2164,18 +2164,18 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-perf+fully_static", + "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+fully_static", "BROKEN_TESTS": "encoding004 T10458 ghcilink002 linker_unload_native", - "BUILD_FLAVOUR": "perf+fully_static", + "BUILD_FLAVOUR": "release+fully_static", "CONFIGURE_ARGS": "--disable-ld-override ", "HADRIAN_ARGS": "--docs=no-sphinx", "IGNORE_PERF_FAILURES": "all", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override", - "TEST_ENV": "x86_64-linux-alpine3_12-perf+fully_static", + "TEST_ENV": "x86_64-linux-alpine3_12-release+fully_static", "XZ_OPT": "-9" } }, - "release-x86_64-linux-centos7-perf": { + "release-x86_64-linux-centos7-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2185,7 +2185,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-centos7-perf.tar.xz", + "ghc-x86_64-linux-centos7-release.tar.xz", "junit.xml" ], "reports": { @@ -2227,15 +2227,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-centos7-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-linux-centos7-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "x86_64-linux-centos7-perf", + "TEST_ENV": "x86_64-linux-centos7-release", "XZ_OPT": "-9" } }, - "release-x86_64-linux-deb10-perf": { + "release-x86_64-linux-deb10-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2245,7 +2245,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-deb10-perf.tar.xz", + "ghc-x86_64-linux-deb10-release.tar.xz", "junit.xml" ], "reports": { @@ -2287,15 +2287,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "x86_64-linux-deb10-perf", + "TEST_ENV": "x86_64-linux-deb10-release", "XZ_OPT": "-9" } }, - "release-x86_64-linux-deb10-perf+debug_info": { + "release-x86_64-linux-deb10-release+debug_info": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2305,7 +2305,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-deb10-perf+debug_info.tar.xz", + "ghc-x86_64-linux-deb10-release+debug_info.tar.xz", "junit.xml" ], "reports": { @@ -2347,15 +2347,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-perf+debug_info", - "BUILD_FLAVOUR": "perf+debug_info", + "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release+debug_info", + "BUILD_FLAVOUR": "release+debug_info", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "x86_64-linux-deb10-perf+debug_info", + "TEST_ENV": "x86_64-linux-deb10-release+debug_info", "XZ_OPT": "-9" } }, - "release-x86_64-linux-deb11-perf": { + "release-x86_64-linux-deb11-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2365,7 +2365,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-deb11-perf.tar.xz", + "ghc-x86_64-linux-deb11-release.tar.xz", "junit.xml" ], "reports": { @@ -2407,15 +2407,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "x86_64-linux-deb11-perf", + "TEST_ENV": "x86_64-linux-deb11-release", "XZ_OPT": "-9" } }, - "release-x86_64-linux-deb9-perf": { + "release-x86_64-linux-deb9-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2425,7 +2425,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-deb9-perf.tar.xz", + "ghc-x86_64-linux-deb9-release.tar.xz", "junit.xml" ], "reports": { @@ -2467,15 +2467,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-deb9-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-linux-deb9-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "x86_64-linux-deb9-perf", + "TEST_ENV": "x86_64-linux-deb9-release", "XZ_OPT": "-9" } }, - "release-x86_64-linux-fedora33-perf": { + "release-x86_64-linux-fedora33-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2485,7 +2485,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-fedora33-perf.tar.xz", + "ghc-x86_64-linux-fedora33-release.tar.xz", "junit.xml" ], "reports": { @@ -2527,17 +2527,17 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", "LLC": "/bin/false", "OPT": "/bin/false", - "TEST_ENV": "x86_64-linux-fedora33-perf", + "TEST_ENV": "x86_64-linux-fedora33-release", "XZ_OPT": "-9" } }, - "release-x86_64-linux-fedora33-perf+debug_info": { + "release-x86_64-linux-fedora33-release+debug_info": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2547,7 +2547,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-fedora33-perf+debug_info.tar.xz", + "ghc-x86_64-linux-fedora33-release+debug_info.tar.xz", "junit.xml" ], "reports": { @@ -2589,17 +2589,17 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-perf+debug_info", - "BUILD_FLAVOUR": "perf+debug_info", + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release+debug_info", + "BUILD_FLAVOUR": "release+debug_info", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", "LLC": "/bin/false", "OPT": "/bin/false", - "TEST_ENV": "x86_64-linux-fedora33-perf+debug_info", + "TEST_ENV": "x86_64-linux-fedora33-release+debug_info", "XZ_OPT": "-9" } }, - "release-x86_64-linux-ubuntu20_04-perf": { + "release-x86_64-linux-ubuntu20_04-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -2609,7 +2609,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-linux-ubuntu20_04-perf.tar.xz", + "ghc-x86_64-linux-ubuntu20_04-release.tar.xz", "junit.xml" ], "reports": { @@ -2651,15 +2651,15 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "IGNORE_PERF_FAILURES": "all", - "TEST_ENV": "x86_64-linux-ubuntu20_04-perf", + "TEST_ENV": "x86_64-linux-ubuntu20_04-release", "XZ_OPT": "-9" } }, - "release-x86_64-windows-int_native-perf": { + "release-x86_64-windows-int_native-release": { "after_script": [ "bash .gitlab/ci.sh save_cache", "bash .gitlab/ci.sh clean" @@ -2668,7 +2668,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-windows-int_native-perf.tar.xz", + "ghc-x86_64-windows-int_native-release.tar.xz", "junit.xml" ], "reports": { @@ -2706,8 +2706,8 @@ ], "variables": { "BIGNUM_BACKEND": "native", - "BIN_DIST_NAME": "ghc-x86_64-windows-int_native-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-windows-int_native-release", + "BUILD_FLAVOUR": "release", "CABAL_INSTALL_VERSION": "3.2.0.0", "CONFIGURE_ARGS": "", "GHC_VERSION": "9.2.2", @@ -2715,11 +2715,11 @@ "IGNORE_PERF_FAILURES": "all", "LANG": "en_US.UTF-8", "MSYSTEM": "MINGW64", - "TEST_ENV": "x86_64-windows-int_native-perf", + "TEST_ENV": "x86_64-windows-int_native-release", "XZ_OPT": "-9" } }, - "release-x86_64-windows-perf": { + "release-x86_64-windows-release": { "after_script": [ "bash .gitlab/ci.sh save_cache", "bash .gitlab/ci.sh clean" @@ -2728,7 +2728,7 @@ "artifacts": { "expire_in": "1 year", "paths": [ - "ghc-x86_64-windows-perf.tar.xz", + "ghc-x86_64-windows-release.tar.xz", "junit.xml" ], "reports": { @@ -2766,8 +2766,8 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-windows-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-windows-release", + "BUILD_FLAVOUR": "release", "CABAL_INSTALL_VERSION": "3.2.0.0", "CONFIGURE_ARGS": "", "GHC_VERSION": "9.2.2", @@ -2775,7 +2775,7 @@ "IGNORE_PERF_FAILURES": "all", "LANG": "en_US.UTF-8", "MSYSTEM": "MINGW64", - "TEST_ENV": "x86_64-windows-perf", + "TEST_ENV": "x86_64-windows-release", "XZ_OPT": "-9" } }, @@ -3668,7 +3668,7 @@ "TEST_ENV": "x86_64-linux-deb9-validate" } }, - "x86_64-linux-fedora33-perf": { + "x86_64-linux-fedora33-release": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -3678,7 +3678,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-fedora33-perf.tar.xz", + "ghc-x86_64-linux-fedora33-release.tar.xz", "junit.xml" ], "reports": { @@ -3720,12 +3720,12 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-perf", - "BUILD_FLAVOUR": "perf", + "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release", + "BUILD_FLAVOUR": "release", "CONFIGURE_ARGS": "", "LLC": "/bin/false", "OPT": "/bin/false", - "TEST_ENV": "x86_64-linux-fedora33-perf" + "TEST_ENV": "x86_64-linux-fedora33-release" } }, "x86_64-linux-fedora33-validate+debug_info": { diff --git a/hadrian/doc/flavours.md b/hadrian/doc/flavours.md index f0d34ddc90..b0df22272b 100644 --- a/hadrian/doc/flavours.md +++ b/hadrian/doc/flavours.md @@ -100,6 +100,18 @@ when compiling the `compiler` library, and `hsGhc` when compiling/linking the GH <td>-O2</td> </tr> <tr> + <th>release (same as perf with -haddock)</td> + <td> Yes (on supported platforms) </td> + <td>-O<br>-H64m</td> + <td>-O<br>-H64m</td> + <td></td> + <td>-O2</td> + <td>-O2</td> + <td>-O2</td> + <td>-O</td> + <td>-O2</td> + </tr> + <tr> <th>bench</td> <td>-O<br>-H64m</td> <td>-O<br>-H64m</td> diff --git a/hadrian/hadrian.cabal b/hadrian/hadrian.cabal index e181615d13..7ddacb4b9b 100644 --- a/hadrian/hadrian.cabal +++ b/hadrian/hadrian.cabal @@ -117,6 +117,7 @@ executable hadrian , Settings.Flavours.QuickCross , Settings.Flavours.Quickest , Settings.Flavours.Validate + , Settings.Flavours.Release , Settings.Packages , Settings.Parser , Settings.Program diff --git a/hadrian/src/Flavour.hs b/hadrian/src/Flavour.hs index f0ebacd7f2..057297dcc6 100644 --- a/hadrian/src/Flavour.hs +++ b/hadrian/src/Flavour.hs @@ -12,6 +12,7 @@ module Flavour , enableProfiledGhc , disableDynamicGhcPrograms , disableProfiledLibs + , enableHaddock , completeSetting , applySettings @@ -49,6 +50,7 @@ flavourTransformers = M.fromList , "fully_static" =: fullyStatic , "collect_timings" =: collectTimings , "assertions" =: enableAssertions + , "haddock" =: enableHaddock ] where (=:) = (,) @@ -127,6 +129,17 @@ enableTickyGhc = , arg "-ddump-stg-final" ] +-- | Enable Core, STG, and C-- linting in all compilations with the stage1 compiler. +enableHaddock :: Flavour -> Flavour +enableHaddock = + addArgs $ stage1 ? mconcat + [ builder (Ghc CompileHs) ? haddock + ] + where + haddock = mconcat + [ arg "-haddock" + ] + -- | Transform the input 'Flavour' so as to build with -- @-split-sections@ whenever appropriate. You can -- select which package gets built with split sections diff --git a/hadrian/src/Settings.hs b/hadrian/src/Settings.hs index 50ef988036..6b756c21ae 100755 --- a/hadrian/src/Settings.hs +++ b/hadrian/src/Settings.hs @@ -22,6 +22,7 @@ import Settings.Flavours.Quick import Settings.Flavours.Quickest import Settings.Flavours.QuickCross import Settings.Flavours.Validate +import Settings.Flavours.Release getArgs :: Args @@ -52,6 +53,7 @@ hadrianFlavours :: [Flavour] hadrianFlavours = [ benchmarkFlavour, defaultFlavour, developmentFlavour Stage1 , developmentFlavour Stage2, performanceFlavour + , releaseFlavour , quickFlavour, quickValidateFlavour, quickDebugFlavour , quickestFlavour , quickCrossFlavour diff --git a/hadrian/src/Settings/Flavours/Release.hs b/hadrian/src/Settings/Flavours/Release.hs new file mode 100644 index 0000000000..2f3daadae1 --- /dev/null +++ b/hadrian/src/Settings/Flavours/Release.hs @@ -0,0 +1,7 @@ +module Settings.Flavours.Release where + +import Settings.Flavours.Performance +import Flavour + +releaseFlavour :: Flavour +releaseFlavour = enableHaddock performanceFlavour { name = "release" } |