[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 16 commits: testsuite: Unmark T14028 as broken on FreeBSD
Marge Bot (@marge-bot)
gitlab at gitlab.haskell.org
Tue Dec 10 08:40:51 UTC 2024
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
d24fc2d9 by Ben Gamari at 2024-12-10T03:40:23-05:00
testsuite: Unmark T14028 as broken on FreeBSD
This now appears to pass on FreeBSD 14.
Closes #19723.
- - - - -
3a8224e7 by Ben Gamari at 2024-12-10T03:40:23-05:00
gitlab-ci: Migrate FreeBSD runner tag to FreeBSD 14
- - - - -
01e2c9b8 by Ben Gamari at 2024-12-10T03:40:24-05:00
gitlab-ci: Reintroduce FreeBSD 14 job
- - - - -
be408e84 by Ben Gamari at 2024-12-10T03:40:24-05:00
gitlab-ci: Allow use of newer cabal-install bindists
Newer cabal-install bindists have internal directory structure.
Here we detect and account for the presence of such structure.
- - - - -
a0a5552b by Ben Gamari at 2024-12-10T03:40:24-05:00
gitlab-ci: Enable documentation build on FreeBSD 14
- - - - -
07e94a40 by Ben Gamari at 2024-12-10T03:40:24-05:00
configure: Implement ld override whitelist
Bring `configure` into alignment with `ghc-toolchain`, ensuring that the
ld-override logic will only take effect on Linux and Windows.
Fixes #25501.
- - - - -
5f6b5e2b by Ben Gamari at 2024-12-10T03:40:24-05:00
gitlab-ci: Use system libffi on FreeBSD
- - - - -
e57ee6c0 by Ben Gamari at 2024-12-10T03:40:24-05:00
testsuite: Mark linker_unload as broken on FreeeBSD
Due to #25491.
- - - - -
b04ab22b by Ben Gamari at 2024-12-10T03:40:24-05:00
gitlab-ci: Prefer system toolchain on FreeBSD
It's not uncommon to find machines with gcc installed via ports. We
should be using the system's default clang-based toolchain instead.
- - - - -
a608a678 by Ben Gamari at 2024-12-10T03:40:24-05:00
testsuite: Mark T21969 as broken on FreeBSD
Due to #25512.
- - - - -
70b14532 by Ben Gamari at 2024-12-10T03:40:24-05:00
testsuite: Mark RestartEventLogging as broken on FreeBSD
I am seeing this fail quite reproducibly.
Due to #19724.
- - - - -
1be5cd19 by Ben Gamari at 2024-12-10T03:40:24-05:00
testsuite: Mark T16180 as "broken" on FreeBSD
Sadly we in fact need to skip it as it merely times out during
compilation.
See #14012.
- - - - -
2922488d by Ben Gamari at 2024-12-10T03:40:24-05:00
testsuite: Skip T16992 unless in slow speed
This test has extraordinary memory requirements and tests a rather
niche aspect of the compact region mechanism. It has been suggested
multiple times that we shouldn't run it in the default testsuite
configuration. Finally implement this.
See #21890.
See #21892.
- - - - -
a275d9ec by Matthew Stephenson at 2024-12-10T03:40:28-05:00
Add missing @since documentation for (!?) function
- - - - -
cdff806f by Ben Gamari at 2024-12-10T03:40:28-05:00
compiler: Don't attempt to TSAN-instrument SIMD operations
TSAN only provides instrumentation for 8, 16, 32, and 64-bit memory
loads/stores. Don't attempt to instrument wider operations.
Fixes #25563.
- - - - -
b4cecf1e by Ben Gamari at 2024-12-10T03:40:29-05:00
gitlab/ci: Don't clobber RUNTEST_ARGS
Previously the logic handling `IGNORE_PERF_FAILURES` clobbered the
user's `RUNTEST_ARGS`. Fix this.
- - - - -
13 changed files:
- .gitlab/ci.sh
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- compiler/GHC/Cmm/ThreadSanitizer.hs
- libraries/ghc-compact/tests/all.T
- libraries/ghc-internal/src/GHC/Internal/List.hs
- m4/find_ld.m4
- testsuite/driver/testlib.py
- testsuite/tests/concurrent/should_run/all.T
- testsuite/tests/quasiquotation/all.T
- testsuite/tests/rts/all.T
- testsuite/tests/rts/linker/all.T
- testsuite/tests/th/all.T
Changes:
=====================================
.gitlab/ci.sh
=====================================
@@ -326,13 +326,19 @@ function fetch_cabal() {
local base_url="https://downloads.haskell.org/~cabal/cabal-install-$v/"
case "$(uname)" in
Darwin) cabal_url="$base_url/cabal-install-$v-x86_64-apple-darwin17.7.0.tar.xz" ;;
- FreeBSD) cabal_url="$base_url/cabal-install-$v-x86_64-freebsd13.tar.xz" ;;
+ FreeBSD) cabal_url="$base_url/cabal-install-$v-x86_64-freebsd14.tar.xz" ;;
*) fail "don't know where to fetch cabal-install for $(uname)"
esac
echo "Fetching cabal-install from $cabal_url"
curl "$cabal_url" > cabal.tar.xz
+ tmp="$(tar -tJf cabal.tar.xz | head -n1)"
$TAR -xJf cabal.tar.xz
- mv cabal "$toolchain/bin"
+ # Check if the bindist has directory structure
+ if [[ "$tmp" = "cabal" ]]; then
+ mv cabal "$toolchain/bin"
+ else
+ mv "$tmp/cabal" "$toolchain/bin"
+ fi
;;
esac
end_section "fetch cabal"
@@ -954,7 +960,7 @@ if [ "${CI_COMMIT_BRANCH:-}" == "master" ] && [ "${CI_PROJECT_PATH:-}" == "ghc/
fi
fi
if [ -n "${IGNORE_PERF_FAILURES:-}" ]; then
- RUNTEST_ARGS="--ignore-perf-failures=$IGNORE_PERF_FAILURES"
+ RUNTEST_ARGS=( "${RUNTEST_ARGS[@]:-}" "--ignore-perf-failures=$IGNORE_PERF_FAILURES" )
fi
if [[ -z ${BIGNUM_BACKEND:-} ]]; then BIGNUM_BACKEND=gmp; fi
=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -101,7 +101,7 @@ There are two different modes this script can operate in:
data Opsys
= Linux LinuxDistro
| Darwin
- | FreeBSD13
+ | FreeBSD14
| Windows deriving (Eq)
data LinuxDistro
@@ -293,7 +293,7 @@ runnerTag arch (Linux _) =
runnerTag AArch64 Darwin = "aarch64-darwin"
runnerTag Amd64 Darwin = "x86_64-darwin-m1"
runnerTag Amd64 Windows = "new-x86_64-windows"
-runnerTag Amd64 FreeBSD13 = "x86_64-freebsd13"
+runnerTag Amd64 FreeBSD14 = "x86_64-freebsd14"
runnerTag _ _ = error "Invalid arch/opsys"
tags :: Arch -> Opsys -> BuildConfig -> [String]
@@ -326,7 +326,7 @@ distroName Rocky8 = "rocky8"
opsysName :: Opsys -> String
opsysName (Linux distro) = "linux-" ++ distroName distro
opsysName Darwin = "darwin"
-opsysName FreeBSD13 = "freebsd13"
+opsysName FreeBSD14 = "freebsd14"
opsysName Windows = "windows"
archName :: Arch -> String
@@ -423,15 +423,19 @@ brokenTest :: TestName -- ^ test name
brokenTest test _why = "BROKEN_TESTS" =: test
opsysVariables :: Arch -> Opsys -> Variables
-opsysVariables _ FreeBSD13 = mconcat
+opsysVariables _ FreeBSD14 = mconcat
[ -- N.B. we use iconv from ports as I see linker errors when we attempt
-- to use the "native" iconv embedded in libc as suggested by the
-- porting guide [1].
-- [1] https://www.freebsd.org/doc/en/books/porters-handbook/using-iconv.html)
- "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"
- , "HADRIAN_ARGS" =: "--docs=no-sphinx"
+ "CONFIGURE_ARGS" =: "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib"
+ , "CONFIGURE_ARGS" =: "--with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib"
+ , "CONFIGURE_ARGS" =: "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib"
+ -- Prefer to use the system's clang-based toolchain and not gcc
+ , "CC" =: "cc"
+ , "CXX" =: "c++"
, "GHC_VERSION" =: "9.6.4"
- , "CABAL_INSTALL_VERSION" =: "3.10.2.0"
+ , "CABAL_INSTALL_VERSION" =: "3.10.3.0"
]
opsysVariables arch (Linux distro) = distroVariables arch distro
opsysVariables AArch64 (Darwin {}) =
@@ -1140,6 +1144,11 @@ darwin =
, fastCI (standardBuilds AArch64 Darwin)
]
+freebsd_jobs :: [JobGroup Job]
+freebsd_jobs =
+ [ addValidateRule FreeBSDLabel (standardBuilds Amd64 FreeBSD14)
+ ]
+
alpine_x86 :: [JobGroup Job]
alpine_x86 =
[ -- Fully static build, in theory usable on any linux distribution.
@@ -1213,6 +1222,7 @@ job_groups =
++ alpine_x86
++ alpine_aarch64
++ cross_jobs
+ ++ freebsd_jobs
mkPlatform :: Arch -> Opsys -> String
=====================================
.gitlab/jobs.yaml
=====================================
@@ -1082,6 +1082,72 @@
"ac_cv_func_utimensat": "no"
}
},
+ "nightly-x86_64-freebsd14-validate": {
+ "after_script": [
+ ".gitlab/ci.sh save_cache",
+ ".gitlab/ci.sh save_test_output",
+ ".gitlab/ci.sh clean",
+ "cat ci_timings"
+ ],
+ "allow_failure": false,
+ "artifacts": {
+ "expire_in": "8 weeks",
+ "paths": [
+ "ghc-x86_64-freebsd14-validate.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-freebsd14-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "dependencies": [],
+ "image": null,
+ "needs": [
+ {
+ "artifacts": false,
+ "job": "hadrian-ghc-in-ghci"
+ }
+ ],
+ "rules": [
+ {
+ "if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
+ "when": "on_success"
+ }
+ ],
+ "script": [
+ ".gitlab/ci.sh setup",
+ ".gitlab/ci.sh configure",
+ ".gitlab/ci.sh build_hadrian",
+ ".gitlab/ci.sh test_hadrian"
+ ],
+ "stage": "full-build",
+ "tags": [
+ "x86_64-freebsd14"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-freebsd14-validate",
+ "BUILD_FLAVOUR": "validate",
+ "CABAL_INSTALL_VERSION": "3.10.3.0",
+ "CC": "cc",
+ "CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
+ "CXX": "c++",
+ "GHC_VERSION": "9.6.4",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-freebsd14-validate",
+ "XZ_OPT": "-9"
+ }
+ },
"nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
@@ -3844,6 +3910,74 @@
"ac_cv_func_utimensat": "no"
}
},
+ "release-x86_64-freebsd14-release": {
+ "after_script": [
+ ".gitlab/ci.sh save_cache",
+ ".gitlab/ci.sh save_test_output",
+ ".gitlab/ci.sh clean",
+ "cat ci_timings"
+ ],
+ "allow_failure": false,
+ "artifacts": {
+ "expire_in": "1 year",
+ "paths": [
+ "ghc-x86_64-freebsd14-release.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-freebsd14-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "dependencies": [],
+ "image": null,
+ "needs": [
+ {
+ "artifacts": false,
+ "job": "hadrian-ghc-in-ghci"
+ }
+ ],
+ "rules": [
+ {
+ "if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
+ "when": "on_success"
+ }
+ ],
+ "script": [
+ ".gitlab/ci.sh setup",
+ ".gitlab/ci.sh configure",
+ ".gitlab/ci.sh build_hadrian",
+ ".gitlab/ci.sh test_hadrian"
+ ],
+ "stage": "full-build",
+ "tags": [
+ "x86_64-freebsd14"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-freebsd14-release",
+ "BUILD_FLAVOUR": "release",
+ "CABAL_INSTALL_VERSION": "3.10.3.0",
+ "CC": "cc",
+ "CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
+ "CXX": "c++",
+ "GHC_VERSION": "9.6.4",
+ "HADRIAN_ARGS": "--hash-unit-ids",
+ "IGNORE_PERF_FAILURES": "all",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-freebsd14-release",
+ "XZ_OPT": "-9"
+ }
+ },
"release-x86_64-linux-alpine3_12-int_native-release+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
@@ -5222,6 +5356,71 @@
"ac_cv_func_utimensat": "no"
}
},
+ "x86_64-freebsd14-validate": {
+ "after_script": [
+ ".gitlab/ci.sh save_cache",
+ ".gitlab/ci.sh save_test_output",
+ ".gitlab/ci.sh clean",
+ "cat ci_timings"
+ ],
+ "allow_failure": false,
+ "artifacts": {
+ "expire_in": "2 weeks",
+ "paths": [
+ "ghc-x86_64-freebsd14-validate.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-freebsd14-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "dependencies": [],
+ "image": null,
+ "needs": [
+ {
+ "artifacts": false,
+ "job": "hadrian-ghc-in-ghci"
+ }
+ ],
+ "rules": [
+ {
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-freebsd14-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*FreeBSD.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "when": "on_success"
+ }
+ ],
+ "script": [
+ ".gitlab/ci.sh setup",
+ ".gitlab/ci.sh configure",
+ ".gitlab/ci.sh build_hadrian",
+ ".gitlab/ci.sh test_hadrian"
+ ],
+ "stage": "full-build",
+ "tags": [
+ "x86_64-freebsd14"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-freebsd14-validate",
+ "BUILD_FLAVOUR": "validate",
+ "CABAL_INSTALL_VERSION": "3.10.3.0",
+ "CC": "cc",
+ "CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
+ "CXX": "c++",
+ "GHC_VERSION": "9.6.4",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-freebsd14-validate"
+ }
+ },
"x86_64-linux-alpine3_12-int_native-validate+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
=====================================
compiler/GHC/Cmm/ThreadSanitizer.hs
=====================================
@@ -209,8 +209,9 @@ tsanTarget fn formals args =
tsanStore :: Env
-> CmmType -> CmmExpr
-> Block CmmNode O O
-tsanStore env ty addr =
- mkUnsafeCall env ftarget [] [addr]
+tsanStore env ty addr
+ | typeWidth ty < W128 = mkUnsafeCall env ftarget [] [addr]
+ | otherwise = emptyBlock
where
ftarget = tsanTarget fn [] [AddrHint]
w = widthInBytes (typeWidth ty)
@@ -219,8 +220,9 @@ tsanStore env ty addr =
tsanLoad :: Env
-> AlignmentSpec -> CmmType -> CmmExpr
-> Block CmmNode O O
-tsanLoad env align ty addr =
- mkUnsafeCall env ftarget [] [addr]
+tsanLoad env align ty addr
+ | typeWidth ty < W128 = mkUnsafeCall env ftarget [] [addr]
+ | otherwise = emptyBlock
where
ftarget = tsanTarget fn [] [AddrHint]
w = widthInBytes (typeWidth ty)
=====================================
libraries/ghc-compact/tests/all.T
=====================================
@@ -28,5 +28,8 @@ test('T18757', omit_ghci, compile_and_run, [''])
# N.B. Sanity check times out due to large list.
test('T16992', [when(wordsize(32), skip), # Resource limit exceeded on 32-bit
high_memory_usage,
+ # This test has extraordinary memory requirement,
+ # skip unless testing slow speed
+ unless(slow(), skip),
run_timeout_multiplier(5),
omit_ways(['sanity'])], compile_and_run, [''])
=====================================
libraries/ghc-internal/src/GHC/Internal/List.hs
=====================================
@@ -1643,6 +1643,8 @@ xs !! n
--
-- WARNING: This function takes linear time in the index.
--
+-- @since base-4.19.0.0
+--
-- ==== __Examples__
--
-- >>> ['a', 'b', 'c'] !? 0
=====================================
m4/find_ld.m4
=====================================
@@ -79,13 +79,16 @@ AC_DEFUN([FIND_LD],[
dnl See #21712.
AC_CHECK_TARGET_TOOL([LD], [ld])
;;
- *)
+ *-linux|*-mingw32)
if test "x$enable_ld_override" = "xyes"; then
find_ld
else
AC_CHECK_TARGET_TOOL([LD], [ld])
fi
;;
+ *)
+ AC_CHECK_TARGET_TOOL([LD], [ld])
+ ;;
esac
CHECK_LD_COPY_BUG([$1])
])
=====================================
testsuite/driver/testlib.py
=====================================
@@ -970,6 +970,9 @@ def tables_next_to_code() -> bool:
def fast() -> bool:
return config.speed == 2
+def slow() -> bool:
+ return config.speed == 0
+
def platform( plat: str ) -> bool:
return config.platform == plat
=====================================
testsuite/tests/concurrent/should_run/all.T
=====================================
@@ -268,6 +268,7 @@ test('T21651',
test('T21969',
[ only_ways(['threaded1','threaded2', 'nonmoving_thr', 'profthreaded']),
when(opsys('mingw32'),skip), # uses POSIX pipes
+ when(opsys('freebsd'), expect_broken(25512)),
extra_run_opts('50000'),
run_timeout_multiplier(0.3), # default timeout seems to be 300, but lockups happen quickly
req_target_smp,
=====================================
testsuite/tests/quasiquotation/all.T
=====================================
@@ -8,6 +8,5 @@ test('T7918',
test('T14028',
[req_interp, req_rts_linker,
only_ways([config.ghc_th_way]),
- unless(config.have_ext_interp, skip),
- when(opsys('freebsd'), expect_broken(19723))],
+ unless(config.have_ext_interp, skip)],
makefile_test, ['T14028 ghcThWayFlags=' + config.ghc_th_way_flags])
=====================================
testsuite/tests/rts/all.T
=====================================
@@ -531,7 +531,9 @@ test('InitEventLogging',
],
compile_and_run, ['InitEventLogging_c.c'])
test('RestartEventLogging',
- [only_ways(['threaded1','threaded2']), extra_run_opts('+RTS -la -RTS')],
+ [only_ways(['threaded1','threaded2']),
+ extra_run_opts('+RTS -la -RTS'),
+ when(opsys('freebsd'), fragile(19724))],
compile_and_run, ['RestartEventLogging_c.c'])
test('T17088',
=====================================
testsuite/tests/rts/linker/all.T
=====================================
@@ -108,6 +108,7 @@ test('T5435_dyn_gcc',
######################################
test('linker_unload',
[extra_files(['LinkerUnload.hs', 'Test.hs']),
+ when(opsys('freebsd'), expect_broken(25491)),
req_rts_linker],
makefile_test, ['linker_unload'])
=====================================
testsuite/tests/th/all.T
=====================================
@@ -488,9 +488,9 @@ test('T15471', normal, multimod_compile, ['T15471.hs', '-v0'])
test('T16180',
[when(llvm_build(), expect_broken_for(16541, ['ext-interp'])),
req_asm,
- # Ideally OpenBSD should have expect_broken_for(14012, ['ext-interp']).
+ # Ideally {Free,Open}BSD should have expect_broken_for(14012, ['ext-interp']).
# Except the failure is in compilation so skip seems the best we can do.
- when(opsys('openbsd'), skip),
+ when(opsys('openbsd') or opsys('freebsd'), skip),
expect_broken_for(16541, ghci_ways)],
compile_and_run, ['-package ghc'])
test('T16183', normal, compile, ['-v0 -ddump-splices -dsuppress-uniques'])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b6b92bf3b60ae26bbeb5d2a6308a2ee65b0c5ab6...b4cecf1eef59f31a65d329ae9cc939c9dec5ca9b
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b6b92bf3b60ae26bbeb5d2a6308a2ee65b0c5ab6...b4cecf1eef59f31a65d329ae9cc939c9dec5ca9b
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/20241210/d28e8885/attachment-0001.html>
More information about the ghc-commits
mailing list