Zubin pushed to branch wip/9.10.3-backports at Glasgow Haskell Compiler / GHC
Commits:
3f4d7d38 by Zubin Duggal at 2025-09-10T20:00:24+05:30
Prepare 9.10.3 final
- - - - -
4 changed files:
- .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
- .gitlab/rel_eng/upload.sh
- configure.ac
- docs/users_guide/9.10.3-notes.rst
Changes:
=====================================
.gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
=====================================
@@ -129,7 +129,7 @@ def fetch_artifacts(release: str, pipeline_id: int,
for f in doc_files:
subprocess.run(['tar', '-xf', f, '-C', dest])
logging.info(f'extracted docs {f} to {dest}')
- index_path = destdir / 'docs' / 'index.html'
+ index_path = destdir / 'index.html'
index_path.replace(dest / 'index.html')
pdfs = list(destdir.glob('*.pdf'))
for f in pdfs:
=====================================
.gitlab/rel_eng/upload.sh
=====================================
@@ -1,5 +1,4 @@
-#!/usr/bin/env nix-shell
-#! nix-shell -i bash -p moreutils lzip zip lftp gnupg
+#!/usr/bin/bash
set -Eeuo pipefail
@@ -41,7 +40,7 @@ set -Eeuo pipefail
: ${ver:=$(ls ghc-*.tar.* | sed -ne 's/ghc-\([0-9]\+\.[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?\).\+/\1/p' | head -n1)}
if [ -z "$ver" ]; then echo "Failed to infer \$ver"; exit 1; fi
-host="gitlab-storage.haskell.org"
+host="gitlab.haskell.org:2222"
usage() {
echo "Usage: [rel_name=<name>] ver=7.10.3-rc2 $0 <action>"
=====================================
configure.ac
=====================================
@@ -13,7 +13,7 @@ dnl
# see what flags are available. (Better yet, read the documentation!)
#
-AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.10.2], [glasgow-haskell-bugs(a)haskell.org] [ghc-AC_PACKAGE_VERSION])
+AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.10.3], [glasgow-haskell-bugs(a)haskell.org] [ghc-AC_PACKAGE_VERSION])
# Version on master must be X.Y (not X.Y.Z) for ProjectVersionMunged variable
# to be useful (cf #19058). However, the version must have three components
# (X.Y.Z) on stable branches (e.g. ghc-9.2) to ensure that pre-releases are
@@ -22,7 +22,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.10.2], [glasgow-ha
AC_CONFIG_MACRO_DIRS([m4])
# Set this to YES for a released version, otherwise NO
-: ${RELEASE=NO}
+: ${RELEASE=YES}
# The primary version (e.g. 7.5, 7.4.1) is set in the AC_INIT line
# above. If this is not a released version, then we will append the
=====================================
docs/users_guide/9.10.3-notes.rst
=====================================
@@ -22,9 +22,6 @@ Compiler
- Fix GHC.SysTools.Ar archive member size writing logic that was emitting wrong
archive member sizes in headers. (:ghc-ticket:`26120`, :ghc-ticket:`22586`)
-- Fix multiple bugs in name resolution of subordinate import lists related to
- type namespace specifiers and hiding clauses. (:ghc-ticket:`22581`, :ghc-ticket:`25983`, :ghc-ticket:`25984`, :ghc-ticket:`25991`)
-
- Use mkTrAppChecked in ds_ev_typeable to avoid false negatives for type
equality involving function types. (:ghc-ticket:`25998`)
@@ -40,6 +37,9 @@ Compiler
- Introduce a separate argument limit for forced specs via SPEC argument with
warning when limit is exceeded. (:ghc-ticket:`25197`)
+- Fix compiler crash in the renamer with certain programs referencing out of
+ scope record fields (:ghc-ticket:`25056`)
+
Build system and packaging
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -79,6 +79,8 @@ WebAssembly backend
Runtime system
~~~~~~~~~~~~~~
+- rts: Fix a segfault involving STM (:ghc-ticket:`26205`).
+
- rts: Implement WEAK EXTERNAL undef redirection by target symbol name.
- rts: Handle API set symbol versioning conflicts.
@@ -97,12 +99,12 @@ Runtime system
``base`` library
~~~~~~~~~~~~~~~~
-- base: Expose Backtraces constructor and fields. (:ghc-ticket:`26049`)
-
- base: Note strictness changes made in 4.16.0.0. (:ghc-ticket:`25886`)
- Fix bugs in ``integerRecipMod`` and ``integerPowMod`` return values. (:ghc-ticket:`26017`)
+- Fix incorrect results for ``naturalAndNot`` (:ghc-ticket:`26230`)
+
``ghc`` library
~~~~~~~~~~~~~~~
@@ -112,9 +114,6 @@ Runtime system
Build tools
~~~~~~~~~~~
-- configure: Drop probing of ld.gold since `gold` has been dropped from
- binutils-2.44. (:ghc-ticket:`25716`)
-
- get-win32-tarballs.py: List tarball files to be downloaded if we cannot find
them. (:ghc-ticket:`25929`)
@@ -162,4 +161,4 @@ for further change information.
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
\ No newline at end of file
+ libraries/xhtml/xhtml.cabal: Dependency of ``haddock`` executable
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/3f4d7d38b9661435bdde981451ac50c…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/3f4d7d38b9661435bdde981451ac50c…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/ghc-toolchain-js-no-llvm] ghc-toolchain: skip llvm program detection for unsupported targets
by Cheng Shao (@TerrorJack) 10 Sep '25
by Cheng Shao (@TerrorJack) 10 Sep '25
10 Sep '25
Cheng Shao pushed to branch wip/ghc-toolchain-js-no-llvm at Glasgow Haskell Compiler / GHC
Commits:
59110415 by Cheng Shao at 2025-09-10T16:28:01+02:00
ghc-toolchain: skip llvm program detection for unsupported targets
This patch skips llvm program detection for wasm/js targets in
ghc-toolchain; these targets are based on LLVM related toolchains like
wasi-sdk/emscripten, but they don't support the LLVM backend in GHC
and doesn't invoke llc/opt/llvm-as programs anyway, so we need to skip
these. Otherwise in some build environments ghc-toolchain may find
llc/opt/llvm-as programs for unsupported targets and configure
--enable-strict-ghc-toolchain-check may fail.
- - - - -
1 changed file:
- utils/ghc-toolchain/exe/Main.hs
Changes:
=====================================
utils/ghc-toolchain/exe/Main.hs
=====================================
@@ -419,7 +419,17 @@ ldOverrideWhitelist a =
OSMinGW32 -> True
_ -> False
-
+-- | Some targets like wasm32/js are based on LLVM related toolchains
+-- like wasi-sdk/emscripten, but these targets don't really support
+-- the LLVM backend and doesn't invoke llc/opt/llvm-as programs
+-- anyway, so we need to skip these. Otherwise in some build
+-- environments ghc-toolchain may find llc/opt/llvm-as programs for
+-- unsupported targets and configure
+-- --enable-strict-ghc-toolchain-check may fail.
+excludeNoLLVMTarget :: ArchOS -> M (Maybe a) -> M (Maybe a)
+excludeNoLLVMTarget archOS m
+ | archOS_arch archOS `elem` [ArchWasm32, ArchJavaScript] = pure Nothing
+ | otherwise = m
mkTarget :: Opts -> M Target
mkTarget opts = do
@@ -458,9 +468,9 @@ mkTarget opts = do
throwE "Neither a object-merging tool (e.g. ld -r) nor an ar that supports -L is available"
-- LLVM toolchain
- llc <- optional $ findProgram "llc" (optLlc opts) ["llc"]
- opt <- optional $ findProgram "opt" (optOpt opts) ["opt"]
- llvmAs <- optional $ findProgram "llvm assembler" (optLlvmAs opts) ["clang"]
+ llc <- excludeNoLLVMTarget archOs $ optional $ findProgram "llc" (optLlc opts) ["llc"]
+ opt <- excludeNoLLVMTarget archOs $ optional $ findProgram "opt" (optOpt opts) ["opt"]
+ llvmAs <- excludeNoLLVMTarget archOs $ optional $ findProgram "llvm assembler" (optLlvmAs opts) ["clang"]
-- Windows-specific utilities
windres <-
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/59110415fbab937a625c640634a4186…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/59110415fbab937a625c640634a4186…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc] Pushed new branch wip/ghc-toolchain-js-no-llvm
by Cheng Shao (@TerrorJack) 10 Sep '25
by Cheng Shao (@TerrorJack) 10 Sep '25
10 Sep '25
Cheng Shao pushed new branch wip/ghc-toolchain-js-no-llvm at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/ghc-toolchain-js-no-llvm
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/26264] compiler: Attempt to systematize Unique tags by introducing an ADT for each different tag
by Zubin (@wz1000) 10 Sep '25
by Zubin (@wz1000) 10 Sep '25
10 Sep '25
Zubin pushed to branch wip/26264 at Glasgow Haskell Compiler / GHC
Commits:
1e4cba38 by Zubin Duggal at 2025-09-10T18:42:28+05:30
compiler: Attempt to systematize Unique tags by introducing an ADT for each different tag
Fixes #26264
- - - - -
32 changed files:
- compiler/GHC/Builtin/Uniques.hs
- compiler/GHC/Cmm/Info.hs
- compiler/GHC/Cmm/Info/Build.hs
- compiler/GHC/Cmm/Pipeline.hs
- compiler/GHC/Cmm/UniqueRenamer.hs
- compiler/GHC/CmmToLlvm/Base.hs
- compiler/GHC/Core/Opt/Monad.hs
- compiler/GHC/Core/Opt/Pipeline.hs
- compiler/GHC/Core/Opt/Simplify/Monad.hs
- compiler/GHC/CoreToStg/Prep.hs
- compiler/GHC/Driver/CodeOutput.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/HsToCore/Monad.hs
- compiler/GHC/Iface/Binary.hs
- compiler/GHC/Iface/Rename.hs
- compiler/GHC/JS/JStg/Monad.hs
- compiler/GHC/Platform/Reg.hs
- compiler/GHC/Runtime/Eval.hs
- compiler/GHC/Stg/EnforceEpt.hs
- compiler/GHC/Stg/Pipeline.hs
- compiler/GHC/StgToCmm/ExtCode.hs
- compiler/GHC/StgToCmm/Monad.hs
- compiler/GHC/StgToJS/CodeGen.hs
- compiler/GHC/StgToJS/Ids.hs
- compiler/GHC/Tc/Types.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Utils/Monad.hs
- compiler/GHC/Types/Name/Cache.hs
- compiler/GHC/Types/Unique.hs
- compiler/GHC/Types/Unique/DSM.hs
- compiler/GHC/Types/Unique/Supply.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/1e4cba3810df56f34a53992ee89e226…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/1e4cba3810df56f34a53992ee89e226…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 12 commits: Fix a scoping error in Specialise
by Marge Bot (@marge-bot) 10 Sep '25
by Marge Bot (@marge-bot) 10 Sep '25
10 Sep '25
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
7567f51e by Simon Peyton Jones at 2025-09-10T05:31:01-04:00
Fix a scoping error in Specialise
This small patch fixes #26329, which triggered a scoping error.
Test is in T21391, with -fpolymorphic-specialisation enabled
- - - - -
f531718e by sheaf at 2025-09-10T05:31:08-04:00
Make rationalTo{Float,Double} inline in phase 0
We hold off on inlining these until phase 0 to allow constant-folding
rules to fire. However, once we get to phase 0, we should inline them,
e.g. to expose unboxing opportunities.
See CLC proposal #356.
- - - - -
500aaa99 by Andreas Klebinger at 2025-09-10T05:31:10-04:00
Add regression test for #26056
- - - - -
2eb2b028 by sheaf at 2025-09-10T05:31:15-04:00
Deep subsumption: unify mults without tcEqMult
As seen in #26332, we may well end up with a non-reflexive multiplicity
coercion when doing deep subsumption. We should do the same thing that
we do without deep subsumption: unify the multiplicities normally,
without requiring that the coercion is reflexive (which is what
'tcEqMult' was doing).
Fixes #26332
- - - - -
0a5813dc by sheaf at 2025-09-10T05:31:19-04:00
lint-codes: fixup MSYS drive letter on Windows
This change ensures that System.Directory.listDirectory doesn't trip up
on an MSYS-style path like '/c/Foo' when trying to list all testsuite
stdout/stderr files as required for testing coverage of GHC diagnostic
codes in the testsuite.
Fixes #25178
- - - - -
d055be16 by Ben Gamari at 2025-09-10T05:31:20-04:00
gitlab-ci: Disable split sections on FreeBSD
Due to #26303.
- - - - -
b4af59b5 by Moritz Angermann at 2025-09-10T05:31:21-04:00
Improve mach-o relocation information
This change adds more information about the symbol and addresses
we try to relocate in the linker. This significantly helps when
deubbging relocation issues reported by users.
- - - - -
b7f81cd7 by Moritz Angermann at 2025-09-10T05:31:22-04:00
test.mk expect GhcLeadingUnderscore, not LeadingUnderscore (in line with the other Ghc prefixed variables.
- - - - -
88c3a7ad by Moritz Angermann at 2025-09-10T05:31:23-04:00
testsuite: Fix broken exec_signals_child.c
There is no signal 0. The signal mask is 1-32.
- - - - -
48485986 by Moritz Angermann at 2025-09-10T05:31:24-04:00
testsuite: clarify Windows/Darwin locale rationale for skipping T6037 T2507 T8959a
- - - - -
68c5cd01 by Moritz Angermann at 2025-09-10T05:31:25-04:00
Skip broken tests on macOS (due to leading underscore not handled properly in the expected output.)
- - - - -
96474e13 by Zubin Duggal at 2025-09-10T05:31:25-04:00
docs(sphinx): fix links to reverse flags when using the :ghc-flag:`-fno-<flag>` syntax
This solution is rather hacky and I suspect there is a better way to do this but I don't know
enough about Sphinx to do better.
Fixes #26352
- - - - -
18 changed files:
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- compiler/GHC/Core/Opt/Specialise.hs
- compiler/GHC/Tc/Utils/Unify.hs
- docs/users_guide/flags.py
- hadrian/src/Oracles/TestSettings.hs
- libraries/base/changelog.md
- libraries/ghc-internal/src/GHC/Internal/Float.hs
- linters/lint-codes/LintCodes/Coverage.hs
- rts/linker/MachO.c
- testsuite/ghc-config/ghc-config.hs
- testsuite/tests/driver/all.T
- + testsuite/tests/linear/should_compile/T26332.hs
- testsuite/tests/linear/should_compile/all.T
- + testsuite/tests/profiling/should_compile/T26056.hs
- testsuite/tests/profiling/should_compile/all.T
- testsuite/tests/rts/exec_signals_child.c
- testsuite/tests/rts/linker/T11223/all.T
Changes:
=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -1235,7 +1235,7 @@ darwin =
freebsd_jobs :: [JobGroup Job]
freebsd_jobs =
- [ addValidateRule FreeBSDLabel (standardBuilds Amd64 FreeBSD14)
+ [ addValidateRule FreeBSDLabel (standardBuildsWithConfig Amd64 FreeBSD14 (splitSectionsBroken vanilla))
]
alpine_x86 :: [JobGroup Job]
=====================================
.gitlab/jobs.yaml
=====================================
@@ -4296,7 +4296,7 @@
"ac_cv_func_utimensat": "no"
}
},
- "release-x86_64-freebsd14-release": {
+ "release-x86_64-freebsd14-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4307,7 +4307,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
- "ghc-x86_64-freebsd14-release.tar.xz",
+ "ghc-x86_64-freebsd14-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -4349,8 +4349,8 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-freebsd14-release",
- "BUILD_FLAVOUR": "release",
+ "BIN_DIST_NAME": "ghc-x86_64-freebsd14-release+no_split_sections",
+ "BUILD_FLAVOUR": "release+no_split_sections",
"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",
@@ -4359,7 +4359,7 @@
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-freebsd14-release",
+ "TEST_ENV": "x86_64-freebsd14-release+no_split_sections",
"XZ_OPT": "-9"
}
},
=====================================
compiler/GHC/Core/Opt/Specialise.hs
=====================================
@@ -1205,14 +1205,21 @@ specExpr env (Tick tickish body)
---------------- Applications might generate a call instance --------------------
specExpr env expr@(App {})
= do { let (fun_in, args_in) = collectArgs expr
+ ; (fun_out, uds_fun) <- specExpr env fun_in
; (args_out, uds_args) <- mapAndCombineSM (specExpr env) args_in
- ; let env_args = env `bringFloatedDictsIntoScope` ud_binds uds_args
- -- Some dicts may have floated out of args_in;
- -- they should be in scope for fireRewriteRules (#21689)
- (fun_in', args_out') = fireRewriteRules env_args fun_in args_out
- ; (fun_out', uds_fun) <- specExpr env fun_in'
+ ; let uds_app = uds_fun `thenUDs` uds_args
+ env_args = zapSubst env `bringFloatedDictsIntoScope` ud_binds uds_app
+ -- zapSubst: we have now fully applied the substitution
+ -- bringFloatedDictsIntoScope: some dicts may have floated out of
+ -- args_in; they should be in scope for fireRewriteRules (#21689)
+
+ -- Try firing rewrite rules
+ -- See Note [Fire rules in the specialiser]
+ ; let (fun_out', args_out') = fireRewriteRules env_args fun_out args_out
+
+ -- Make a call record, and return
; let uds_call = mkCallUDs env fun_out' args_out'
- ; return (fun_out' `mkApps` args_out', uds_fun `thenUDs` uds_call `thenUDs` uds_args) }
+ ; return (fun_out' `mkApps` args_out', uds_app `thenUDs` uds_call) }
---------------- Lambda/case require dumping of usage details --------------------
specExpr env e@(Lam {})
@@ -1246,17 +1253,18 @@ specExpr env (Let bind body)
-- See Note [Specialisation modulo dictionary selectors]
-- Note [ClassOp/DFun selection]
-- Note [Fire rules in the specialiser]
-fireRewriteRules :: SpecEnv -> InExpr -> [OutExpr] -> (InExpr, [OutExpr])
+fireRewriteRules :: SpecEnv -- Substitution is already zapped
+ -> OutExpr -> [OutExpr] -> (OutExpr, [OutExpr])
fireRewriteRules env (Var f) args
| let rules = getRules (se_rules env) f
, Just (rule, expr) <- specLookupRule env f args activeInInitialPhase rules
, let rest_args = drop (ruleArity rule) args -- See Note [Extra args in the target]
- zapped_subst = Core.zapSubst (se_subst env)
- expr' = simpleOptExprWith defaultSimpleOpts zapped_subst expr
+ zapped_subst = se_subst env -- Just needed for the InScopeSet
+ expr' = simpleOptExprWith defaultSimpleOpts zapped_subst (mkApps expr rest_args)
-- simplOptExpr needed because lookupRule returns
-- (\x y. rhs) arg1 arg2
, (fun', args') <- collectArgs expr'
- = fireRewriteRules env fun' (args'++rest_args)
+ = fireRewriteRules env fun' args'
fireRewriteRules _ fun args = (fun, args)
--------------
@@ -1669,10 +1677,19 @@ specCalls spec_imp env existing_rules calls_for_me fn rhs
; let all_rule_bndrs = poly_qvars ++ rule_bndrs
env' = env { se_subst = subst'' }
-{-
- ; pprTrace "spec_call" (vcat
+ -- Check for (a) usefulness and (b) not already covered
+ -- See (SC1) in Note [Specialisations already covered]
+ ; let all_rules = rules_acc ++ existing_rules
+ -- all_rules: we look both in the rules_acc (generated by this invocation
+ -- of specCalls), and in existing_rules (passed in to specCalls)
+ already_covered = alreadyCovered env' all_rule_bndrs fn
+ rule_lhs_args is_active all_rules
+
+{- ; pprTrace "spec_call" (vcat
[ text "fun: " <+> ppr fn
, text "call info: " <+> ppr _ci
+ , text "useful: " <+> ppr useful
+ , text "already_covered:" <+> ppr already_covered
, text "poly_qvars: " <+> ppr poly_qvars
, text "useful: " <+> ppr useful
, text "all_rule_bndrs:" <+> ppr all_rule_bndrs
@@ -1681,17 +1698,13 @@ specCalls spec_imp env existing_rules calls_for_me fn rhs
, text "dx_binds:" <+> ppr dx_binds
, text "spec_args: " <+> ppr spec_args
, text "rhs_bndrs" <+> ppr rhs_bndrs
- , text "rhs_body" <+> ppr rhs_body ]) $
+ , text "rhs_body" <+> ppr rhs_body
+ , text "subst''" <+> ppr subst'' ]) $
return ()
-}
- -- Check for (a) usefulness and (b) not already covered
- -- See (SC1) in Note [Specialisations already covered]
- ; let all_rules = rules_acc ++ existing_rules
- -- all_rules: we look both in the rules_acc (generated by this invocation
- -- of specCalls), and in existing_rules (passed in to specCalls)
- ; if not useful -- No useful specialisation
- || alreadyCovered env' all_rule_bndrs fn rule_lhs_args is_active all_rules
+ ; if not useful -- No useful specialisation
+ || already_covered -- Useful, but done already
then return spec_acc
else
@@ -1702,6 +1715,12 @@ specCalls spec_imp env existing_rules calls_for_me fn rhs
-- Run the specialiser on the specialised RHS
; (rhs_body', rhs_uds) <- specExpr env'' rhs_body
+{- ; pprTrace "spec_call2" (vcat
+ [ text "fun:" <+> ppr fn
+ , text "rhs_body':" <+> ppr rhs_body' ]) $
+ return ()
+-}
+
-- Make the RHS of the specialised function
; let spec_rhs_bndrs = spec_bndrs ++ inner_rhs_bndrs'
(rhs_uds1, inner_dumped_dbs) = dumpUDs spec_rhs_bndrs rhs_uds
=====================================
compiler/GHC/Tc/Utils/Unify.hs
=====================================
@@ -1853,8 +1853,8 @@ where we eta-expanded that (:). But now foldr expects an argument
with ->{Many} and gets an argument with ->{m1} or ->{m2}, and Lint
complains.
-The easiest solution was to use tcEqMult in tc_sub_type_deep, and
-insist on equality. This is only in the DeepSubsumption code anyway.
+The easiest solution was to unify the multiplicities in tc_sub_type_deep,
+insisting on equality. This is only in the DeepSubsumption code anyway.
Note [FunTy vs non-FunTy case in tc_sub_type_deep]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -2047,10 +2047,7 @@ tc_sub_type_deep pos unify inst_orig ctxt ty_actual ty_expected
-- GenSigCtxt: See Note [Setting the argument context]
; res_wrap <- tc_sub_type_deep (Result pos) unify inst_orig ctxt act_res exp_res
- -- See Note [Multiplicity in deep subsumption]
- ; tcEqMult inst_orig act_mult exp_mult
-
- ; mkWpFun_FRR pos
+ ; mkWpFun_FRR unify pos
act_af act_mult act_arg act_res
exp_af exp_mult exp_arg exp_res
arg_wrap res_wrap
@@ -2058,20 +2055,32 @@ tc_sub_type_deep pos unify inst_orig ctxt ty_actual ty_expected
where
given_orig = GivenOrigin (SigSkol GenSigCtxt exp_arg [])
--- | Like 'mkWpFun', except that it performs representation-polymorphism
--- checks on the argument type.
+-- | Like 'mkWpFun', except that it performs the necessary
+-- representation-polymorphism checks on the argument type in the case that
+-- we introduce a lambda abstraction.
mkWpFun_FRR
- :: Position p
+ :: (TcType -> TcType -> TcM TcCoercionN) -- ^ how to unify
+ -> Position p
-> FunTyFlag -> Type -> TcType -> Type -- actual FunTy
-> FunTyFlag -> Type -> TcType -> Type -- expected FunTy
-> HsWrapper -- ^ exp_arg ~> act_arg
-> HsWrapper -- ^ act_res ~> exp_res
-> TcM HsWrapper -- ^ act_funTy ~> exp_funTy
-mkWpFun_FRR pos act_af act_mult act_arg act_res exp_af exp_mult exp_arg exp_res arg_wrap res_wrap
- | needs_eta
- -- See Wrinkle [Representation-polymorphism checking during subtyping]
- = do { (exp_arg_co, exp_arg_frr) <- hasFixedRuntimeRep (FRRDeepSubsumption True pos) exp_arg
- ; (act_arg_co, _act_arg_frr) <- hasFixedRuntimeRep (FRRDeepSubsumption False pos) act_arg
+mkWpFun_FRR unify pos act_af act_mult act_arg act_res exp_af exp_mult exp_arg exp_res arg_wrap res_wrap
+ = do { ((exp_arg_co, exp_arg_frr), (act_arg_co, _act_arg_frr)) <-
+ if needs_frr_checks
+ -- See Wrinkle [Representation-polymorphism checking during subtyping]
+ then do { exp_frr_wrap <- hasFixedRuntimeRep (frr_ctxt True ) exp_arg
+ ; act_frr_wrap <- hasFixedRuntimeRep (frr_ctxt False) act_arg
+ ; return (exp_frr_wrap, act_frr_wrap) }
+ else return ((mkNomReflCo exp_arg, exp_arg), (mkNomReflCo act_arg, act_arg))
+
+ -- Enforce equality of multiplicities (not the more natural sub-multiplicity).
+ -- See Note [Multiplicity in deep subsumption]
+ ; act_arg_mult_co <- unify act_mult exp_mult
+ -- NB: don't use tcEqMult: that would require the evidence for
+ -- equality to be Refl, but it might well not be (#26332).
+
; let
exp_arg_fun_co =
mkFunCo Nominal exp_af
@@ -2080,7 +2089,7 @@ mkWpFun_FRR pos act_af act_mult act_arg act_res exp_af exp_mult exp_arg exp_res
(mkReflCo Nominal exp_res)
act_arg_fun_co =
mkFunCo Nominal act_af
- (mkReflCo Nominal act_mult)
+ act_arg_mult_co
act_arg_co
(mkReflCo Nominal act_res)
arg_wrap_frr =
@@ -2090,24 +2099,16 @@ mkWpFun_FRR pos act_af act_mult act_arg act_res exp_af exp_mult exp_arg exp_res
-- arg_wrap :: exp_arg ~> act_arg
-- arg_wrap_frr :: exp_arg_frr ~> act_arg_frr
- -- NB: because of the needs_eta guard, we know that mkWpFun will
- -- return (WpFun ...); so we might as well just use the WpFun constructor.
; return $
mkWpCastN exp_arg_fun_co
<.>
- WpFun arg_wrap_frr res_wrap (Scaled exp_mult exp_arg_frr)
+ mkWpFun arg_wrap_frr res_wrap (Scaled exp_mult exp_arg_frr) exp_res
<.>
- mkWpCastN act_arg_fun_co }
- | otherwise
- = return $
- mkWpFun arg_wrap res_wrap (Scaled exp_mult exp_arg) exp_res
- -- NB: because of 'needs_eta', this will never actually be a WpFun.
- -- mkWpFun will turn it into a WpHole or WpCast, which is why
- -- we can skip the hasFixedRuntimeRep checks in this case.
- -- See Wrinkle [Representation-polymorphism checking during subtyping]
+ mkWpCastN act_arg_fun_co
+ }
where
- needs_eta :: Bool
- needs_eta =
+ needs_frr_checks :: Bool
+ needs_frr_checks =
not (hole_or_cast arg_wrap)
||
not (hole_or_cast res_wrap)
@@ -2115,6 +2116,12 @@ mkWpFun_FRR pos act_af act_mult act_arg act_res exp_af exp_mult exp_arg exp_res
hole_or_cast WpHole = True
hole_or_cast (WpCast {}) = True
hole_or_cast _ = False
+ frr_ctxt :: Bool -> FixedRuntimeRepContext
+ frr_ctxt is_exp_ty =
+ FRRDeepSubsumption
+ { frrDSExpected = is_exp_ty
+ , frrDSPosition = pos
+ }
-----------------------
deeplySkolemise :: SkolemInfo -> TcSigmaType
=====================================
docs/users_guide/flags.py
=====================================
@@ -236,8 +236,10 @@ class Flag(GenericFlag):
reverse = self.options.get('reverse')
if reverse is not None and reverse != '':
# Make this also addressable via the reverse flag
+ # Strip leading hyphen to avoid double hyphen in anchor ID
+ clean_name = name[1:] if name.startswith('-') else name
self.env.domaindata['std']['objects']['ghc-flag', reverse] = \
- self.env.docname, 'ghc-flag-%s' % name
+ self.env.docname, 'ghc-flag-%s' % clean_name
# This class inherits from Sphinx's internal GenericObject, which drives
# the add_object_type() utility function. We want to keep that tooling,
=====================================
hadrian/src/Oracles/TestSettings.hs
=====================================
@@ -73,7 +73,7 @@ testSetting key = do
TestLLC -> "LLC"
TestTEST_CC -> "TEST_CC"
TestTEST_CC_OPTS -> "TEST_CC_OPTS"
- TestLeadingUnderscore -> "LeadingUnderscore"
+ TestLeadingUnderscore -> "GhcLeadingUnderscore"
TestGhcPackageDb -> "GhcGlobalPackageDb"
TestGhcLibDir -> "GhcLibdir"
=====================================
libraries/base/changelog.md
=====================================
@@ -4,6 +4,7 @@
* Remove deprecated, unstable heap representation details from `GHC.Exts` ([CLC proposal #212](https://github.com/haskell/core-libraries-committee/issues/212))
* Add `Data.List.NonEmpty.mapMaybe`. ([CLC proposal #337](https://github.com/haskell/core-libraries-committee/issues/337))
* Fix issues with toRational for types capable to represent infinite and not-a-number values ([CLC proposal #338](https://github.com/haskell/core-libraries-committee/issues/338))
+ * Ensure that `rationalToFloat` and `rationalToDouble` always inline in the end. ([CLC proposal #356](https://github.com/haskell/core-libraries-committee/issues/356))
* Modify the implementation of `Data.List.sortOn` to use `(>)` instead of `compare`. ([CLC proposal #332](https://github.com/haskell/core-libraries-committee/issues/332))
* `GHC.Exts.IOPort#` and its related operations have been removed ([CLC #213](https://github.com/haskell/core-libraries-committee/issues/213))
* Add `thenA` and `thenM`. ([CLC proposal #351](https://github.com/haskell/core-libraries-committee/issues/351))
=====================================
libraries/ghc-internal/src/GHC/Internal/Float.hs
=====================================
@@ -466,8 +466,8 @@ instance Fractional Float where
recip x = 1.0 / x
rationalToFloat :: Integer -> Integer -> Float
-{-# NOINLINE [0] rationalToFloat #-}
--- Re NOINLINE pragma, see Note [realToFrac natural-to-float]
+{-# INLINE [0] rationalToFloat #-}
+-- Re INLINE pragma, see Note [realToFrac natural-to-float]
rationalToFloat n 0
| n == 0 = 0/0
| n < 0 = (-1)/0
@@ -718,8 +718,8 @@ instance Fractional Double where
recip x = 1.0 / x
rationalToDouble :: Integer -> Integer -> Double
-{-# NOINLINE [0] rationalToDouble #-}
--- Re NOINLINE pragma, see Note [realToFrac natural-to-float]
+{-# INLINE [0] rationalToDouble #-}
+-- Re INLINE pragma, see Note [realToFrac natural-to-float]
rationalToDouble n 0
| n == 0 = 0/0
| n < 0 = (-1)/0
@@ -1673,7 +1673,11 @@ Now we'd have a BUILTIN constant folding rule for rationalToFloat; but
to allow that rule to fire reliably we should delay inlining rationalToFloat
until stage 0. (It may get an inlining from CPR analysis.)
-Hence the NOINLINE[0] rationalToFloat, and similarly rationalToDouble.
+Hence the INLINE[0] rationalToFloat, and similarly for rationalToDouble.
+This activation means:
+
+ - we don't inline until phase 0 (solving the above)
+ - we do inline starting at phase 0 (because we do want it inlining in the end)
-}
-- Utils
=====================================
linters/lint-codes/LintCodes/Coverage.hs
=====================================
@@ -10,11 +10,13 @@ module LintCodes.Coverage
-- base
import Data.Char
- ( isAlphaNum, isDigit, isSpace )
+ ( isAlphaNum, isDigit, isSpace, toUpper )
import Data.Maybe
( mapMaybe )
import Data.List
( dropWhileEnd )
+import System.Info
+ ( os )
-- bytestring
import qualified Data.ByteString as ByteString
@@ -28,7 +30,7 @@ import qualified Data.Set as Set
-- directory
import System.Directory
- ( doesDirectoryExist, listDirectory )
+ ( doesDirectoryExist, listDirectory, makeAbsolute )
-- filepath
import System.FilePath
@@ -63,7 +65,12 @@ getCoveredCodes =
do { top <- dropWhileEnd isSpace
<$> readProcess "git" ["rev-parse", "--show-toplevel"] ""
-- TODO: would be better to avoid using git entirely.
- ; let testRoot = top </> "testsuite" </> "tests"
+
+ -- When run inside an MSYS shell, git may return a Unix-style path
+ -- like /c/Blah. System.Directory doesn't like that, so we make sure
+ -- to turn that into C:/Blah. See #25178.
+ ; top' <- fixupMsysDrive top
+ ; let testRoot = top' </> "testsuite" </> "tests"
; traverseFilesFrom includeFile diagnosticCodesIn testRoot
}
@@ -158,3 +165,14 @@ traverseFilesFrom include_file parse_contents = go
{ Left _ -> mempty
; Right txt -> parse_contents txt
} } } }
+
+-- | On Windows, change MSYS-style @/c/Blah@ to @C:/Blah@. See #25178.
+fixupMsysDrive :: FilePath -> IO FilePath
+fixupMsysDrive fp = do
+ fixedUp <-
+ if | os == "mingw32" || os == "win32"
+ , ('/':drv:'/':rest) <- fp
+ -> return $ toUpper drv : ':':'/':rest
+ | otherwise
+ -> return fp
+ makeAbsolute fixedUp
=====================================
rts/linker/MachO.c
=====================================
@@ -64,7 +64,7 @@ static bool fitsBits(size_t bits, int64_t value);
static int64_t decodeAddend(ObjectCode * oc, Section * section,
MachORelocationInfo * ri);
static void encodeAddend(ObjectCode * oc, Section * section,
- MachORelocationInfo * ri, int64_t addend);
+ MachORelocationInfo * ri, int64_t addend, MachOSymbol * symbol);
/* Global Offset Table logic */
static bool isGotLoad(MachORelocationInfo * ri);
@@ -361,15 +361,21 @@ fitsBits(size_t bits, int64_t value) {
static void
encodeAddend(ObjectCode * oc, Section * section,
- MachORelocationInfo * ri, int64_t addend) {
+ MachORelocationInfo * ri, int64_t addend, MachOSymbol * symbol) {
uint32_t * p = (uint32_t*)((uint8_t*)section->start + ri->r_address);
checkProddableBlock(&oc->proddables, (void*)p, 1 << ri->r_length);
+ const char *symbol_name = symbol && symbol->name ? (char*)symbol->name : "<unknown>";
+ const char *file_name = oc->fileName ? (char*)oc->fileName : "<unknown>";
+
switch (ri->r_type) {
case ARM64_RELOC_UNSIGNED: {
- if(!fitsBits(8 << ri->r_length, addend))
- barf("Relocation out of range for UNSIGNED");
+ if(!fitsBits(8 << ri->r_length, addend)) {
+ const char *library_info = OC_INFORMATIVE_FILENAME(oc);
+ barf("Relocation out of range for UNSIGNED in %s: symbol '%s', addend 0x%llx, address 0x%llx, library: %s",
+ file_name, symbol_name, (long long)addend, (long long)ri->r_address, library_info ? (char*)library_info : "<unknown>");
+ }
switch (ri->r_length) {
case 0: *(uint8_t*)p = (uint8_t)addend; break;
case 1: *(uint16_t*)p = (uint16_t)addend; break;
@@ -382,8 +388,11 @@ encodeAddend(ObjectCode * oc, Section * section,
return;
}
case ARM64_RELOC_SUBTRACTOR: {
- if(!fitsBits(8 << ri->r_length, addend))
- barf("Relocation out of range for SUBTRACTOR");
+ if(!fitsBits(8 << ri->r_length, addend)) {
+ const char *library_info = OC_INFORMATIVE_FILENAME(oc);
+ barf("Relocation out of range for SUBTRACTOR in %s: symbol '%s', addend 0x%llx, address 0x%llx, library: %s",
+ file_name, symbol_name, (long long)addend, (long long)ri->r_address, library_info ? (char*)library_info : "<unknown>");
+ }
switch (ri->r_length) {
case 0: *(uint8_t*)p = (uint8_t)addend; break;
case 1: *(uint16_t*)p = (uint16_t)addend; break;
@@ -400,8 +409,11 @@ encodeAddend(ObjectCode * oc, Section * section,
* do not need the last two bits of the value. If the value >> 2
* still exceeds 26bits, we won't be able to reach it.
*/
- if(!fitsBits(26, addend >> 2))
- barf("Relocation target for BRACH26 out of range.");
+ if(!fitsBits(26, addend >> 2)) {
+ const char *library_info = OC_INFORMATIVE_FILENAME(oc);
+ barf("Relocation target for BRANCH26 out of range in %s: symbol '%s', addend 0x%llx (0x%llx >> 2), address 0x%llx, library: %s",
+ file_name, symbol_name, (long long)addend, (long long)(addend >> 2), (long long)ri->r_address, library_info ? (char*)library_info : "<unknown>");
+ }
*p = (*p & 0xFC000000) | ((uint32_t)(addend >> 2) & 0x03FFFFFF);
return;
}
@@ -412,8 +424,12 @@ encodeAddend(ObjectCode * oc, Section * section,
* with the PAGEOFF12 relocation allows to address a relative range
* of +-4GB.
*/
- if(!fitsBits(21, addend >> 12))
- barf("Relocation target for PAGE21 out of range.");
+ if(!fitsBits(21, addend >> 12)) {
+ const char *reloc_type = (ri->r_type == ARM64_RELOC_PAGE21) ? "PAGE21" : "GOT_LOAD_PAGE21";
+ const char *library_info = OC_INFORMATIVE_FILENAME(oc);
+ barf("Relocation target for %s out of range in %s: symbol '%s', addend 0x%llx (0x%llx >> 12), address 0x%llx, library: %s",
+ reloc_type, file_name, symbol_name, (long long)addend, (long long)(addend >> 12), (long long)ri->r_address, library_info ? (char*)library_info : "<unknown>");
+ }
*p = (*p & 0x9F00001F) | (uint32_t)((addend << 17) & 0x60000000)
| (uint32_t)((addend >> 9) & 0x00FFFFE0);
return;
@@ -423,8 +439,11 @@ encodeAddend(ObjectCode * oc, Section * section,
/* Store an offset into a page (4k). Depending on the instruction
* the bits are stored at slightly different positions.
*/
- if(!fitsBits(12, addend))
- barf("Relocation target for PAGEOFF12 out or range.");
+ if(!fitsBits(12, addend)) {
+ const char *library_info = OC_INFORMATIVE_FILENAME(oc);
+ barf("Relocation target for PAGEOFF12 out of range in %s: symbol '%s', addend 0x%llx, address 0x%llx, library: %s",
+ file_name, symbol_name, (long long)addend, (long long)ri->r_address, library_info ? (char*)library_info : "<unknown>");
+ }
int shift = 0;
if(isLoadStore(p)) {
@@ -589,7 +608,7 @@ relocateSectionAarch64(ObjectCode * oc, Section * section)
MachOSymbol* symbol = &oc->info->macho_symbols[ri->r_symbolnum];
int64_t addend = decodeAddend(oc, section, ri);
uint64_t value = symbol_value(oc, symbol);
- encodeAddend(oc, section, ri, value + addend);
+ encodeAddend(oc, section, ri, value + addend, symbol);
break;
}
case ARM64_RELOC_SUBTRACTOR:
@@ -623,7 +642,7 @@ relocateSectionAarch64(ObjectCode * oc, Section * section)
// combine with addend and store
int64_t addend = decodeAddend(oc, section, ri);
- encodeAddend(oc, section, ri, addend - sub_value + add_value);
+ encodeAddend(oc, section, ri, addend - sub_value + add_value, symbol1);
// skip next relocation: we've already handled it
i += 1;
@@ -664,7 +683,7 @@ relocateSectionAarch64(ObjectCode * oc, Section * section)
}
}
}
- encodeAddend(oc, section, ri, value - pc + addend);
+ encodeAddend(oc, section, ri, value - pc + addend, symbol);
break;
}
case ARM64_RELOC_PAGE21:
@@ -676,7 +695,7 @@ relocateSectionAarch64(ObjectCode * oc, Section * section)
uint64_t pc = (uint64_t)section->start + ri->r_address;
uint64_t value = (uint64_t)(isGotLoad(ri) ? symbol->got_addr : symbol->addr);
ASSERT(!isGotLoad(ri) || (symbol->got_addr != 0));
- encodeAddend(oc, section, ri, ((value + addend + explicit_addend) & (-4096)) - (pc & (-4096)));
+ encodeAddend(oc, section, ri, ((value + addend + explicit_addend) & (-4096)) - (pc & (-4096)), symbol);
// reset, just in case.
explicit_addend = 0;
@@ -690,7 +709,7 @@ relocateSectionAarch64(ObjectCode * oc, Section * section)
barf("explicit_addend and addend can't be set at the same time.");
uint64_t value = (uint64_t)(isGotLoad(ri) ? symbol->got_addr : symbol->addr);
ASSERT(!isGotLoad(ri) || (symbol->got_addr != 0));
- encodeAddend(oc, section, ri, 0xFFF & (value + addend + explicit_addend));
+ encodeAddend(oc, section, ri, 0xFFF & (value + addend + explicit_addend), symbol);
// reset, just in case.
explicit_addend = 0;
=====================================
testsuite/ghc-config/ghc-config.hs
=====================================
@@ -43,7 +43,7 @@ main = do
getGhcFieldOrDefault fields "TargetRTSLinkerOnlySupportsSharedLibs" "target RTS linker only supports shared libraries" "NO"
getGhcFieldOrDefault fields "GhcDynamic" "GHC Dynamic" "NO"
getGhcFieldOrDefault fields "GhcProfiled" "GHC Profiled" "NO"
- getGhcFieldOrDefault fields "LeadingUnderscore" "Leading underscore" "NO"
+ getGhcFieldOrDefault fields "GhcLeadingUnderscore" "Leading underscore" "NO"
getGhcFieldOrDefault fields "GhcTablesNextToCode" "Tables next to code" "NO"
getGhcFieldProgWithDefault fields "AR" "ar command" "ar"
getGhcFieldProgWithDefault fields "LLC" "LLVM llc command" "llc"
=====================================
testsuite/tests/driver/all.T
=====================================
@@ -179,24 +179,23 @@ test('T7060', [], makefile_test, [])
test('T7130', normal, compile_fail, ['-fflul-laziness'])
test('T7563', when(unregisterised(), skip), makefile_test, [])
test('T6037',
- # The testsuite doesn't know how to set a non-Unicode locale on Windows or MacOS < Sonoma.
- # Because in previous version of MacOS the test is still broken, we mark it as fragile.
+ # Requires forcing a 7-bit/ASCII-only locale.
+ # - On Windows (mingw32) the testsuite can't reliably set a non-Unicode C locale -> expect_fail.
+ # - On modern Darwin there are no pure ASCII locales available -> skip.
[when(opsys('mingw32'), expect_fail),
- when(opsys('darwin'), fragile(24161))
+ when(opsys('darwin'), skip)
],
makefile_test, [])
test('T2507',
- # The testsuite doesn't know how to set a non-Unicode locale on Windows or MacOS < Sonoma
- # Because in previous version of MacOS the test is still broken, we mark it as fragile.
+ # Same locale assumptions as T6037 (ASCII-only needed, unavailable on Darwin; untestable on Windows).
[when(opsys('mingw32'), expect_fail),
- when(opsys('darwin'), fragile(24161))
+ when(opsys('darwin'), skip)
],
makefile_test, [])
test('T8959a',
- # The testsuite doesn't know how to set a non-Unicode locale on Windows or MacOS < Sonoma
- # Because in previous version of MacOS the test is still broken, we mark it as fragile.
+ # Same locale assumptions as T6037 (ASCII-only needed, unavailable on Darwin; untestable on Windows).
[when(opsys('mingw32'), expect_fail),
- when(opsys('darwin'), fragile(24161))
+ when(opsys('darwin'), skip)
],
makefile_test, [])
=====================================
testsuite/tests/linear/should_compile/T26332.hs
=====================================
@@ -0,0 +1,12 @@
+{-# LANGUAGE DeepSubsumption #-}
+{-# LANGUAGE LinearTypes #-}
+
+module T26332 where
+
+import Unsafe.Coerce
+
+toLinear
+ :: forall a b p q.
+ (a %p-> b) %1-> (a %q-> b)
+toLinear f = case unsafeEqualityProof @p @q of
+ UnsafeRefl -> f
=====================================
testsuite/tests/linear/should_compile/all.T
=====================================
@@ -41,6 +41,7 @@ test('T19400', unless(compiler_debugged(), skip), compile, [''])
test('T20023', normal, compile, [''])
test('T22546', normal, compile, [''])
test('T23025', normal, compile, ['-dlinear-core-lint'])
+test('T26332', normal, compile, ['-O -dlinear-core-lint'])
test('LinearRecUpd', normal, compile, [''])
test('T23814', normal, compile, [''])
test('LinearLet', normal, compile, [''])
=====================================
testsuite/tests/profiling/should_compile/T26056.hs
=====================================
@@ -0,0 +1,21 @@
+module M where
+
+import GHC.Exts ( Any )
+import Unsafe.Coerce ( unsafeCoerce )
+
+data Sigma = MkT Any
+
+testSubList :: Maybe Bool -> Sigma -> Sigma
+testSubList (Just x) final = {-# SCC "y" #-} (
+ let x' = seq x ()
+ in case testSubList Nothing final of
+ MkT w -> {-# SCC "x" #-}
+ (unsafeCoerce MkT (konst x' myHead (unsafeCoerce w))))
+testSubList Nothing final = final
+
+myHead :: [a] -> a
+myHead (x:_) = x
+
+konst :: () -> ([a] -> a) -> [a] -> a
+konst _ x = x
+{-# OPAQUE konst #-}
=====================================
testsuite/tests/profiling/should_compile/all.T
=====================================
@@ -20,3 +20,4 @@ test('T14931', [test_opts, unless(have_dynamic(), skip)],
test('T15108', [test_opts], compile, ['-O -prof -fprof-auto'])
test('T19894', [test_opts, extra_files(['T19894'])], multimod_compile, ['Main', '-v0 -O2 -prof -fprof-auto -iT19894'])
test('T20938', [test_opts], compile, ['-O -prof'])
+test('T26056', [test_opts], compile, ['-O -prof'])
=====================================
testsuite/tests/rts/exec_signals_child.c
=====================================
@@ -2,8 +2,11 @@
#include <stdio.h>
#include <errno.h>
-// Prints the state of the signal handlers to stdout
-int main()
+// Prints the state of the signal handlers to stdout.
+// NOTE: We intentionally start at signal 1 (not 0). Signal number 0 is not a
+// real signal; passing 0 to sigismember/sigaction is undefined behaviour and
+// on Darwin was observed to yield memory corruption / junk bytes in output.
+int main(void)
{
int open = 0, i;
sigset_t blockedsigs;
@@ -11,7 +14,7 @@ int main()
printf("ChildInfo { masked = [");
sigprocmask(SIG_BLOCK, NULL, &blockedsigs);
- for(i = 0; i < NSIG; ++i)
+ for(i = 1; i < NSIG; ++i)
{
int ret = sigismember(&blockedsigs, i);
if(ret >= 0)
@@ -26,7 +29,7 @@ int main()
printf("], handlers = [");
open = 0;
- for(i = 0; i < NSIG; ++i)
+ for(i = 1; i < NSIG; ++i)
{
struct sigaction old;
if(sigaction(i, NULL, &old) >= 0)
=====================================
testsuite/tests/rts/linker/T11223/all.T
=====================================
@@ -33,7 +33,12 @@ test('T11223_simple_duplicate',
test('T11223_simple_duplicate_lib',
[extra_files(['bar.c', 'foo.c', 'foo.hs']),
- when(ghc_dynamic(), skip), normalise_errmsg_fun(normalise_duplicate_errmsg),
+ when(ghc_dynamic(), skip),
+ # Darwin/Mach-O reports external C symbols with a leading underscore (e.g. _a, _c)
+ # which our expected stderr (shared with ELF platforms) does not account for.
+ # Rather than broaden normalisation here, skip on darwin for now.
+ when(opsys('darwin'), skip),
+ normalise_errmsg_fun(normalise_duplicate_errmsg),
req_c],
makefile_test, ['t_11223_simple_duplicate_lib'])
@@ -57,7 +62,10 @@ test('T11223_link_order_b_a_succeed',
test('T11223_link_order_a_b_2_fail',
[extra_files(['bar.c', 'foo.c', 'foo3.hs']),
- when(ghc_dynamic(), skip), normalise_errmsg_fun(normalise_duplicate_errmsg),
+ when(ghc_dynamic(), skip),
+ # See note above about Mach-O leading underscores; skip on darwin.
+ when(opsys('darwin'), skip),
+ normalise_errmsg_fun(normalise_duplicate_errmsg),
req_c],
makefile_test, ['t_11223_link_order_a_b_2_fail'])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/0be4dca51133ca2f91841804e27672…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/0be4dca51133ca2f91841804e27672…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
10 Sep '25
Simon Peyton Jones pushed to branch wip/T26315 at Glasgow Haskell Compiler / GHC
Commits:
643d10bc by Simon Peyton Jones at 2025-09-10T08:46:08+01:00
Add a test case for #26396
...same bug ast #26315
- - - - -
2 changed files:
- + testsuite/tests/deriving/should_compile/T26396.hs
- testsuite/tests/deriving/should_compile/all.T
Changes:
=====================================
testsuite/tests/deriving/should_compile/T26396.hs
=====================================
@@ -0,0 +1,24 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE QuantifiedConstraints #-}
+{-# LANGUAGE UndecidableInstances #-}
+
+module T26396 where
+
+import Data.Kind
+import Data.Type.Equality
+import GHC.TypeNats
+
+newtype Vector (el :: Type) (len :: Natural) = Vector [el]
+ deriving (Eq)
+
+data Sized (f :: Natural -> Type) where
+ Sized :: KnownNat len => f len -> Sized f
+
+instance (forall (len :: Natural). Eq (f len)) => Eq (Sized f) where
+ Sized xs == Sized ys = case sameNat xs ys of
+ Nothing -> False
+ Just Refl -> xs == ys
+
+newtype Foo (el :: Type) = Foo (Sized (Vector el))
+ deriving (Eq)
=====================================
testsuite/tests/deriving/should_compile/all.T
=====================================
@@ -154,3 +154,4 @@ test('T24955b', normal, compile, [''])
test('T24955c', normal, compile, [''])
test('T25148c', normal, compile, [''])
test('deriving-inferred-ty-arg', normal, compile, ['-ddump-deriv -dsuppress-uniques'])
+test('T26396', normal, compile, [''])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/643d10bc437e8f2218129b007b659cf…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/643d10bc437e8f2218129b007b659cf…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/angerman/testsuite-non-dynamic] testsuite: T13786 does not appear broken on linux with non-dynamic.
by Moritz Angermann (@angerman) 10 Sep '25
by Moritz Angermann (@angerman) 10 Sep '25
10 Sep '25
Moritz Angermann pushed to branch wip/angerman/testsuite-non-dynamic at Glasgow Haskell Compiler / GHC
Commits:
41ab53e8 by Moritz Angermann at 2025-09-10T13:22:47+09:00
testsuite: T13786 does not appear broken on linux with non-dynamic.
The referenced issue 20706 also doesn't list T13786 as a broken test.
- - - - -
2 changed files:
- testsuite/tests/ghci/T13786/all.T
- testsuite/tests/package/T20010/all.T
Changes:
=====================================
testsuite/tests/ghci/T13786/all.T
=====================================
@@ -1,4 +1,4 @@
test('T13786',
- [when(unregisterised(), fragile(17018)), req_c, when(opsys('linux') and not ghc_dynamic(), expect_broken(20706))],
+ [when(unregisterised(), fragile(17018)), req_c],
makefile_test, [])
=====================================
testsuite/tests/package/T20010/all.T
=====================================
@@ -1,4 +1,10 @@
# Test that GHC links to the C++ standard library as expected
# when the system-cxx-std-lib package is used.
test('T20010', req_c, makefile_test, [])
-test('T20010-ghci', [req_c, extra_files(['T20010_c.cpp', 'T20010.hs']), unless(ghc_dynamic(), expect_broken(20706))], makefile_test, [])
+test('T20010-ghci', [req_c, extra_files(['T20010_c.cpp', 'T20010.hs']),
+ # this test is broken for dynamic builds. However, windows
+ # is dynamic, but not really, and works significanlty
+ # different from linux and darwin to not be broken when
+ # ghc claims to be dynamic.
+ unless(ghc_dynamic() and not opsys('mingw32'), expect_broken(20706))],
+ makefile_test, [])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/41ab53e871332de07f8e4cf475a7cbc…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/41ab53e871332de07f8e4cf475a7cbc…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 10 commits: Report solid equality errors before custom errors
by Marge Bot (@marge-bot) 10 Sep '25
by Marge Bot (@marge-bot) 10 Sep '25
10 Sep '25
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
ba210d98 by Simon Peyton Jones at 2025-09-08T16:26:36+01:00
Report solid equality errors before custom errors
This MR fixes #26255 by
* Reporting solid equality errors like
Int ~ Bool
before "custom type errors". See comments in `report1` in
`reportWanteds`
* Suppressing errors that arise from superclasses of
Wanteds. See (SCE1) in Note [Suppressing confusing errors]
More details in #26255.
- - - - -
07a3ab2b by Simon Peyton Jones at 2025-09-10T00:18:58-04:00
Fix a scoping error in Specialise
This small patch fixes #26329, which triggered a scoping error.
Test is in T21391, with -fpolymorphic-specialisation enabled
- - - - -
e2cc70c4 by Simon Peyton Jones at 2025-09-10T00:18:59-04:00
Solve forall-constraints via an implication, again
In this earlier commit:
commit 953fd8f1dc080f1c56e3a60b4b7157456949be29
Author: Simon Peyton Jones <simon.peytonjones(a)gmail.com>
Date: Mon Jul 21 10:06:43 2025 +0100
Solve forall-constraints immediately, or not at all
I used a all-or-nothing strategy for quantified constraints
(aka forall-constraints). But alas that fell foul of #26315,
and #26376.
So this MR goes back to solving a quantified constraint by
turning it into an implication; UNLESS we are simplifying
constraints from a SPECIALISE pragma, in which case the
all-or-nothing strategy is great. See:
Note [Solving a Wanted forall-constraint]
Other stuff in this MR:
* TcSMode becomes a record of flags, rather than an enumeration
type; much nicer.
* Some fancy footwork to avoid error messages worsening again
(The above MR made them better; we want to retain that.)
See `GHC.Tc.Errors.Ppr.pprQCOriginExtra`.
- - - - -
55d10488 by sheaf at 2025-09-10T00:19:14-04:00
Make rationalTo{Float,Double} inline in phase 0
We hold off on inlining these until phase 0 to allow constant-folding
rules to fire. However, once we get to phase 0, we should inline them,
e.g. to expose unboxing opportunities.
See CLC proposal #356.
- - - - -
9eed5ac0 by Andreas Klebinger at 2025-09-10T00:19:16-04:00
Add regression test for #26056
- - - - -
1f00b066 by sheaf at 2025-09-10T00:19:21-04:00
Deep subsumption: unify mults without tcEqMult
As seen in #26332, we may well end up with a non-reflexive multiplicity
coercion when doing deep subsumption. We should do the same thing that
we do without deep subsumption: unify the multiplicities normally,
without requiring that the coercion is reflexive (which is what
'tcEqMult' was doing).
Fixes #26332
- - - - -
25fa5801 by Moritz Angermann at 2025-09-10T00:19:22-04:00
Improve mach-o relocation information
This change adds more information about the symbol and addresses
we try to relocate in the linker. This significantly helps when
deubbging relocation issues reported by users.
- - - - -
1a0cb645 by Moritz Angermann at 2025-09-10T00:19:23-04:00
testsuite: Fix broken exec_signals_child.c
There is no signal 0. The signal mask is 1-32.
- - - - -
4392b600 by Moritz Angermann at 2025-09-10T00:19:24-04:00
testsuite: clarify Windows/Darwin locale rationale for skipping T6037 T2507 T8959a
- - - - -
0be4dca5 by Moritz Angermann at 2025-09-10T00:19:24-04:00
Skip broken tests on macOS (due to leading underscore not handled properly in the expected output.)
- - - - -
70 changed files:
- compiler/GHC/Core/Opt/Specialise.hs
- compiler/GHC/Core/Type.hs
- compiler/GHC/Core/Unify.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Pmc/Solver.hs
- compiler/GHC/Tc/Deriv/Utils.hs
- compiler/GHC/Tc/Errors.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Gen/Sig.hs
- compiler/GHC/Tc/Solver.hs
- compiler/GHC/Tc/Solver/Default.hs
- compiler/GHC/Tc/Solver/Dict.hs
- compiler/GHC/Tc/Solver/Equality.hs
- compiler/GHC/Tc/Solver/InertSet.hs
- compiler/GHC/Tc/Solver/Monad.hs
- compiler/GHC/Tc/Solver/Solve.hs
- compiler/GHC/Tc/Solver/Solve.hs-boot
- compiler/GHC/Tc/Types/Constraint.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Utils/Monad.hs
- compiler/GHC/Tc/Utils/TcType.hs
- compiler/GHC/Tc/Utils/Unify.hs
- compiler/GHC/Tc/Zonk/TcType.hs
- compiler/GHC/Tc/Zonk/Type.hs
- libraries/base/changelog.md
- libraries/ghc-internal/src/GHC/Internal/Float.hs
- rts/linker/MachO.c
- testsuite/tests/backpack/should_fail/bkpfail11.stderr
- testsuite/tests/backpack/should_fail/bkpfail43.stderr
- testsuite/tests/deriving/should_fail/T12768.stderr
- testsuite/tests/deriving/should_fail/T1496.stderr
- testsuite/tests/deriving/should_fail/T21302.stderr
- testsuite/tests/deriving/should_fail/T22696b.stderr
- testsuite/tests/deriving/should_fail/T5498.stderr
- testsuite/tests/deriving/should_fail/T7148.stderr
- testsuite/tests/deriving/should_fail/T7148a.stderr
- testsuite/tests/driver/all.T
- testsuite/tests/impredicative/T17332.stderr
- + testsuite/tests/linear/should_compile/T26332.hs
- testsuite/tests/linear/should_compile/all.T
- + testsuite/tests/profiling/should_compile/T26056.hs
- testsuite/tests/profiling/should_compile/all.T
- testsuite/tests/quantified-constraints/T19690.stderr
- testsuite/tests/quantified-constraints/T19921.stderr
- testsuite/tests/quantified-constraints/T21006.stderr
- testsuite/tests/roles/should_fail/RolesIArray.stderr
- testsuite/tests/rts/exec_signals_child.c
- testsuite/tests/rts/linker/T11223/all.T
- testsuite/tests/simplCore/should_compile/DsSpecPragmas.hs
- testsuite/tests/simplCore/should_compile/DsSpecPragmas.stderr
- testsuite/tests/typecheck/should_compile/T14434.hs
- + testsuite/tests/typecheck/should_compile/T26376.hs
- testsuite/tests/typecheck/should_compile/all.T
- testsuite/tests/typecheck/should_fail/T15801.stderr
- testsuite/tests/typecheck/should_fail/T18851.hs
- testsuite/tests/typecheck/should_fail/T19627.stderr
- testsuite/tests/typecheck/should_fail/T20666.stderr
- testsuite/tests/typecheck/should_fail/T20666a.stderr
- testsuite/tests/typecheck/should_fail/T20666b.stderr
- testsuite/tests/typecheck/should_fail/T22912.stderr
- testsuite/tests/typecheck/should_fail/T23427.stderr
- + testsuite/tests/typecheck/should_fail/T26255a.hs
- + testsuite/tests/typecheck/should_fail/T26255a.stderr
- + testsuite/tests/typecheck/should_fail/T26255b.hs
- + testsuite/tests/typecheck/should_fail/T26255b.stderr
- + testsuite/tests/typecheck/should_fail/T26255c.hs
- + testsuite/tests/typecheck/should_fail/T26255c.stderr
- testsuite/tests/typecheck/should_fail/UnliftedNewtypesFamilyKindFail2.stderr
- testsuite/tests/typecheck/should_fail/all.T
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/90d94d175f3c751492ec829ba644fd…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/90d94d175f3c751492ec829ba644fd…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/alpine-3_22] rel-eng: update alpine images to 3.22
by Cheng Shao (@TerrorJack) 09 Sep '25
by Cheng Shao (@TerrorJack) 09 Sep '25
09 Sep '25
Cheng Shao pushed to branch wip/alpine-3_22 at Glasgow Haskell Compiler / GHC
Commits:
6bd9fe98 by Cheng Shao at 2025-09-09T22:27:33+02:00
rel-eng: update alpine images to 3.22
This patch is a part of #25876 and updates alpine images to 3.22,
while still retaining 3.12 for x86_64 fully_static bindists.
- - - - -
5 changed files:
- .gitlab-ci.yml
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
- .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
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: 3618852f42dc1d3d8552fd2b173c482170f76ba6
+ DOCKER_REV: be4ac2cd18f38e63b263e2a27c76a7c279385796
# Sequential version number of all cached things.
# Bump to invalidate GitLab CI cache.
@@ -1080,29 +1080,29 @@ abi-test:
ghc-wasm-meta-gmp:
extends: .ghc-wasm-meta
needs:
- - job: x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf
+ - job: x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf
artifacts: false
variables:
UPSTREAM_GHC_FLAVOUR: gmp
- UPSTREAM_GHC_JOB_NAME: x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf
+ UPSTREAM_GHC_JOB_NAME: x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf
ghc-wasm-meta-native:
extends: .ghc-wasm-meta
needs:
- - job: x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf
+ - job: x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf
artifacts: false
variables:
UPSTREAM_GHC_FLAVOUR: native
- UPSTREAM_GHC_JOB_NAME: x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf
+ UPSTREAM_GHC_JOB_NAME: x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf
ghc-wasm-meta-unreg:
extends: .ghc-wasm-meta
needs:
- - job: x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf
+ - job: x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf
artifacts: false
variables:
UPSTREAM_GHC_FLAVOUR: unreg
- UPSTREAM_GHC_JOB_NAME: x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf
+ UPSTREAM_GHC_JOB_NAME: x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf
############################################################
# Documentation deployment via GitLab Pages
@@ -1218,9 +1218,7 @@ ghcup-metadata-nightly:
artifacts: false
- job: nightly-x86_64-windows-validate
artifacts: false
- - job: nightly-x86_64-linux-alpine3_12-validate
- artifacts: false
- - job: nightly-x86_64-linux-alpine3_20-validate
+ - job: nightly-x86_64-linux-alpine3_22-validate
artifacts: false
- job: nightly-x86_64-linux-deb9-validate
artifacts: false
@@ -1228,6 +1226,8 @@ ghcup-metadata-nightly:
artifacts: false
- job: nightly-i386-linux-deb12-validate
artifacts: false
+ - job: nightly-i386-linux-alpine3_22-validate
+ artifacts: false
- job: nightly-x86_64-linux-deb10-validate
artifacts: false
- job: nightly-aarch64-linux-deb10-validate
@@ -1238,7 +1238,7 @@ ghcup-metadata-nightly:
artifacts: false
- job: nightly-aarch64-linux-deb12-validate
artifacts: false
- - job: nightly-aarch64-linux-alpine3_18-validate
+ - job: nightly-aarch64-linux-alpine3_22-validate
artifacts: false
- job: source-tarball
artifacts: false
=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -126,8 +126,7 @@ data LinuxDistro
| Ubuntu2004
| Ubuntu1804
| Alpine312
- | Alpine318
- | Alpine320
+ | Alpine322
| AlpineWasm
| Rocky8
deriving (Eq)
@@ -328,9 +327,8 @@ distroName Ubuntu2004 = "ubuntu20_04"
distroName Ubuntu2204 = "ubuntu22_04"
distroName Ubuntu2404 = "ubuntu24_04"
distroName Alpine312 = "alpine3_12"
-distroName Alpine318 = "alpine3_18"
-distroName Alpine320 = "alpine3_20"
-distroName AlpineWasm = "alpine3_20-wasm"
+distroName Alpine322 = "alpine3_22"
+distroName AlpineWasm = "alpine3_22-wasm"
distroName Rocky8 = "rocky8"
opsysName :: Opsys -> String
@@ -502,8 +500,7 @@ alpineVariables arch = mconcat $
distroVariables :: Arch -> LinuxDistro -> Variables
distroVariables arch Alpine312 = alpineVariables arch
-distroVariables arch Alpine318 = alpineVariables arch
-distroVariables arch Alpine320 = alpineVariables arch
+distroVariables arch Alpine322 = alpineVariables arch
distroVariables _ Fedora33 = mconcat
-- LLC/OPT do not work for some reason in our fedora images
-- These tests fail with this error: T11649 T5681 T7571 T8131b
@@ -1244,9 +1241,8 @@ alpine_x86 =
fullyStaticBrokenTests (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken static))
, fullyStaticBrokenTests (disableValidate (allowFailureGroup (standardBuildsWithConfig Amd64 (Linux Alpine312) staticNativeInt)))
-- Dynamically linked build, suitable for building your own static executables on alpine
- , disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken vanilla))
- , disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine320) (splitSectionsBroken vanilla))
- , allowFailureGroup (standardBuildsWithConfig I386 (Linux Alpine320) (splitSectionsBroken vanilla))
+ , disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine322) (splitSectionsBroken vanilla))
+ , allowFailureGroup (standardBuildsWithConfig I386 (Linux Alpine322) (splitSectionsBroken vanilla))
]
where
-- ghcilink002 broken due to #17869
@@ -1257,7 +1253,7 @@ alpine_x86 =
alpine_aarch64 :: [JobGroup Job]
alpine_aarch64 = [
- disableValidate (standardBuildsWithConfig AArch64 (Linux Alpine318) (splitSectionsBroken vanilla))
+ disableValidate (standardBuildsWithConfig AArch64 (Linux Alpine322) (splitSectionsBroken vanilla))
]
cross_jobs :: [JobGroup Job]
@@ -1375,7 +1371,7 @@ mkPlatform arch opsys = archName arch <> "-" <> opsysName opsys
platform_mapping :: Map String (JobGroup BindistInfo)
platform_mapping = Map.map go combined_result
where
- whitelist = [ "x86_64-linux-alpine3_12-validate"
+ whitelist = [ "x86_64-linux-alpine3_12-validate+fully_static"
, "x86_64-linux-deb11-validate"
, "x86_64-linux-deb12-validate"
, "x86_64-linux-deb10-validate+debug_info"
@@ -1384,19 +1380,19 @@ platform_mapping = Map.map go combined_result
, "x86_64-windows-validate"
, "aarch64-linux-deb12-validate"
, "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate"
- , "nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
+ , "nightly-x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
, "nightly-x86_64-linux-deb11-validate"
, "nightly-x86_64-linux-deb12-validate"
- , "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
+ , "x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
, "x86_64-linux-deb12-validate+thread_sanitizer_cmm"
, "nightly-aarch64-linux-deb10-validate"
, "nightly-aarch64-linux-deb12-validate"
, "nightly-aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate"
- , "nightly-x86_64-linux-alpine3_12-validate"
+ , "nightly-x86_64-linux-alpine3_12-validate+fully_static"
, "nightly-x86_64-linux-deb10-validate"
, "nightly-x86_64-linux-fedora33-release"
, "nightly-x86_64-windows-validate"
- , "release-x86_64-linux-alpine3_12-release+no_split_sections"
+ , "release-x86_64-linux-alpine3_12-release+fully_static+no_split_sections"
, "release-x86_64-linux-deb10-release"
, "release-x86_64-linux-deb11-release"
, "release-x86_64-linux-deb12-release"
=====================================
.gitlab/jobs.yaml
=====================================
@@ -66,7 +66,7 @@
"TEST_ENV": "aarch64-darwin-validate"
}
},
- "aarch64-linux-alpine3_18-validate": {
+ "aarch64-linux-alpine3_22-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -77,7 +77,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
- "ghc-aarch64-linux-alpine3_18-validate.tar.xz",
+ "ghc-aarch64-linux-alpine3_22-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -87,14 +87,14 @@
"when": "always"
},
"cache": {
- "key": "aarch64-linux-alpine3_18-$CACHE_REV",
+ "key": "aarch64-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_22:$DOCKER_…",
"needs": [
{
"artifacts": false,
@@ -103,7 +103,7 @@
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-alpine3_18-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-alpine3_22-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
@@ -120,13 +120,13 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-validate",
+ "BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_22-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "aarch64-linux-alpine3_18-validate"
+ "TEST_ENV": "aarch64-linux-alpine3_22-validate"
}
},
"aarch64-linux-deb10-validate": {
@@ -477,7 +477,7 @@
"WindresCmd": "/opt/llvm-mingw-linux/bin/aarch64-w64-mingw32-windres"
}
},
- "i386-linux-alpine3_20-validate": {
+ "i386-linux-alpine3_22-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -488,7 +488,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
- "ghc-i386-linux-alpine3_20-validate.tar.xz",
+ "ghc-i386-linux-alpine3_22-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -498,14 +498,14 @@
"when": "always"
},
"cache": {
- "key": "i386-linux-alpine3_20-$CACHE_REV",
+ "key": "i386-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$DOCKER_REV",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_22:$DOCKER_REV",
"needs": [
{
"artifacts": false,
@@ -514,7 +514,7 @@
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bi386-linux-alpine3_20-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]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bi386-linux-alpine3_22-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]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
@@ -531,13 +531,13 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-validate",
+ "BIN_DIST_NAME": "ghc-i386-linux-alpine3_22-validate",
"BROKEN_TESTS": "encoding004 T10458 simd009 T25169 T22033",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "i386-linux-alpine3_20-validate"
+ "TEST_ENV": "i386-linux-alpine3_22-validate"
}
},
"i386-linux-deb10-validate": {
@@ -731,7 +731,7 @@
"XZ_OPT": "-9"
}
},
- "nightly-aarch64-linux-alpine3_18-validate": {
+ "nightly-aarch64-linux-alpine3_22-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -742,7 +742,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
- "ghc-aarch64-linux-alpine3_18-validate.tar.xz",
+ "ghc-aarch64-linux-alpine3_22-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -752,14 +752,14 @@
"when": "always"
},
"cache": {
- "key": "aarch64-linux-alpine3_18-$CACHE_REV",
+ "key": "aarch64-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_22:$DOCKER_…",
"needs": [
{
"artifacts": false,
@@ -785,13 +785,13 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-validate",
+ "BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_22-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "aarch64-linux-alpine3_18-validate",
+ "TEST_ENV": "aarch64-linux-alpine3_22-validate",
"XZ_OPT": "-9"
}
},
@@ -1148,7 +1148,7 @@
"XZ_OPT": "-9"
}
},
- "nightly-i386-linux-alpine3_20-validate": {
+ "nightly-i386-linux-alpine3_22-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1159,7 +1159,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
- "ghc-i386-linux-alpine3_20-validate.tar.xz",
+ "ghc-i386-linux-alpine3_22-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -1169,14 +1169,14 @@
"when": "always"
},
"cache": {
- "key": "i386-linux-alpine3_20-$CACHE_REV",
+ "key": "i386-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$DOCKER_REV",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_22:$DOCKER_REV",
"needs": [
{
"artifacts": false,
@@ -1202,13 +1202,13 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-validate",
+ "BIN_DIST_NAME": "ghc-i386-linux-alpine3_22-validate",
"BROKEN_TESTS": "encoding004 T10458 simd009 T25169 T22033",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "i386-linux-alpine3_20-validate",
+ "TEST_ENV": "i386-linux-alpine3_22-validate",
"XZ_OPT": "-9"
}
},
@@ -1538,70 +1538,6 @@
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-alpine3_12-validate": {
- "after_script": [
- ".gitlab/ci.sh save_cache",
- ".gitlab/ci.sh save_test_output",
- ".gitlab/ci.sh clean",
- "cat ci_timings.txt"
- ],
- "allow_failure": false,
- "artifacts": {
- "expire_in": "8 weeks",
- "paths": [
- "ghc-x86_64-linux-alpine3_12-validate.tar.xz",
- "junit.xml",
- "unexpected-test-output.tar.gz"
- ],
- "reports": {
- "junit": "junit.xml"
- },
- "when": "always"
- },
- "cache": {
- "key": "x86_64-linux-alpine3_12-$CACHE_REV",
- "paths": [
- "cabal-cache",
- "toolchain"
- ]
- },
- "dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_R…",
- "needs": [
- {
- "artifacts": false,
- "job": "hadrian-ghc-in-ghci"
- }
- ],
- "rules": [
- {
- "if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
- "when": "on_success"
- }
- ],
- "script": [
- "sudo chown ghc:ghc -R .",
- ".gitlab/ci.sh setup",
- ".gitlab/ci.sh configure",
- ".gitlab/ci.sh build_hadrian",
- ".gitlab/ci.sh test_hadrian"
- ],
- "stage": "full-build",
- "tags": [
- "x86_64-linux"
- ],
- "variables": {
- "BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate",
- "BROKEN_TESTS": "encoding004 T10458",
- "BUILD_FLAVOUR": "validate",
- "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
- "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
- "RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_12-validate",
- "XZ_OPT": "-9"
- }
- },
"nightly-x86_64-linux-alpine3_12-validate+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
@@ -1666,7 +1602,7 @@
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-alpine3_20-validate": {
+ "nightly-x86_64-linux-alpine3_22-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1677,7 +1613,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
- "ghc-x86_64-linux-alpine3_20-validate.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -1687,14 +1623,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_20-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_R…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22:$DOCKER_R…",
"needs": [
{
"artifacts": false,
@@ -1720,17 +1656,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-validate",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-validate",
+ "TEST_ENV": "x86_64-linux-alpine3_22-validate",
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
+ "nightly-x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1741,7 +1677,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
- "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -1751,14 +1687,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOC…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22-wasm:$DOC…",
"needs": [
{
"artifacts": false,
@@ -1784,18 +1720,18 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "TEST_ENV": "x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
+ "nightly-x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1806,7 +1742,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
- "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -1816,14 +1752,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOC…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22-wasm:$DOC…",
"needs": [
{
"artifacts": false,
@@ -1849,18 +1785,18 @@
],
"variables": {
"BIGNUM_BACKEND": "native",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "TEST_ENV": "x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
+ "nightly-x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1871,7 +1807,7 @@
"artifacts": {
"expire_in": "8 weeks",
"paths": [
- "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -1881,14 +1817,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOC…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22-wasm:$DOC…",
"needs": [
{
"artifacts": false,
@@ -1914,14 +1850,14 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "TEST_ENV": "x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9"
}
},
@@ -3839,7 +3775,7 @@
"XZ_OPT": "-9"
}
},
- "release-aarch64-linux-alpine3_18-release+no_split_sections": {
+ "release-aarch64-linux-alpine3_22-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3850,7 +3786,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
- "ghc-aarch64-linux-alpine3_18-release+no_split_sections.tar.xz",
+ "ghc-aarch64-linux-alpine3_22-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -3860,14 +3796,14 @@
"when": "always"
},
"cache": {
- "key": "aarch64-linux-alpine3_18-$CACHE_REV",
+ "key": "aarch64-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_22:$DOCKER_…",
"needs": [
{
"artifacts": false,
@@ -3893,14 +3829,14 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-release+no_split_sections",
+ "BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_22-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "aarch64-linux-alpine3_18-release+no_split_sections",
+ "TEST_ENV": "aarch64-linux-alpine3_22-release+no_split_sections",
"XZ_OPT": "-9"
}
},
@@ -4032,7 +3968,7 @@
"XZ_OPT": "-9"
}
},
- "release-i386-linux-alpine3_20-release+no_split_sections": {
+ "release-i386-linux-alpine3_22-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4043,7 +3979,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
- "ghc-i386-linux-alpine3_20-release+no_split_sections.tar.xz",
+ "ghc-i386-linux-alpine3_22-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -4053,14 +3989,14 @@
"when": "always"
},
"cache": {
- "key": "i386-linux-alpine3_20-$CACHE_REV",
+ "key": "i386-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$DOCKER_REV",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_22:$DOCKER_REV",
"needs": [
{
"artifacts": false,
@@ -4086,14 +4022,14 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-release+no_split_sections",
+ "BIN_DIST_NAME": "ghc-i386-linux-alpine3_22-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458 simd009 T25169 T22033",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "i386-linux-alpine3_20-release+no_split_sections",
+ "TEST_ENV": "i386-linux-alpine3_22-release+no_split_sections",
"XZ_OPT": "-9"
}
},
@@ -4493,7 +4429,7 @@
"XZ_OPT": "-9"
}
},
- "release-x86_64-linux-alpine3_12-release+no_split_sections": {
+ "release-x86_64-linux-alpine3_22-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4504,7 +4440,7 @@
"artifacts": {
"expire_in": "1 year",
"paths": [
- "ghc-x86_64-linux-alpine3_12-release+no_split_sections.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -4514,14 +4450,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_12-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_R…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22:$DOCKER_R…",
"needs": [
{
"artifacts": false,
@@ -4547,79 +4483,14 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+no_split_sections",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_12-release+no_split_sections",
- "XZ_OPT": "-9"
- }
- },
- "release-x86_64-linux-alpine3_20-release+no_split_sections": {
- "after_script": [
- ".gitlab/ci.sh save_cache",
- ".gitlab/ci.sh save_test_output",
- ".gitlab/ci.sh clean",
- "cat ci_timings.txt"
- ],
- "allow_failure": false,
- "artifacts": {
- "expire_in": "1 year",
- "paths": [
- "ghc-x86_64-linux-alpine3_20-release+no_split_sections.tar.xz",
- "junit.xml",
- "unexpected-test-output.tar.gz"
- ],
- "reports": {
- "junit": "junit.xml"
- },
- "when": "always"
- },
- "cache": {
- "key": "x86_64-linux-alpine3_20-$CACHE_REV",
- "paths": [
- "cabal-cache",
- "toolchain"
- ]
- },
- "dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_R…",
- "needs": [
- {
- "artifacts": false,
- "job": "hadrian-ghc-in-ghci"
- }
- ],
- "rules": [
- {
- "if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
- "when": "on_success"
- }
- ],
- "script": [
- "sudo chown ghc:ghc -R .",
- ".gitlab/ci.sh setup",
- ".gitlab/ci.sh configure",
- ".gitlab/ci.sh build_hadrian",
- ".gitlab/ci.sh test_hadrian"
- ],
- "stage": "full-build",
- "tags": [
- "x86_64-linux"
- ],
- "variables": {
- "BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-release+no_split_sections",
- "BROKEN_TESTS": "encoding004 T10458",
- "BUILD_FLAVOUR": "release+no_split_sections",
- "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
- "IGNORE_PERF_FAILURES": "all",
- "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
- "RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-release+no_split_sections",
+ "TEST_ENV": "x86_64-linux-alpine3_22-release+no_split_sections",
"XZ_OPT": "-9"
}
},
@@ -5851,69 +5722,6 @@
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-validate+fully_static"
}
},
- "x86_64-linux-alpine3_12-validate": {
- "after_script": [
- ".gitlab/ci.sh save_cache",
- ".gitlab/ci.sh save_test_output",
- ".gitlab/ci.sh clean",
- "cat ci_timings.txt"
- ],
- "allow_failure": false,
- "artifacts": {
- "expire_in": "2 weeks",
- "paths": [
- "ghc-x86_64-linux-alpine3_12-validate.tar.xz",
- "junit.xml",
- "unexpected-test-output.tar.gz"
- ],
- "reports": {
- "junit": "junit.xml"
- },
- "when": "always"
- },
- "cache": {
- "key": "x86_64-linux-alpine3_12-$CACHE_REV",
- "paths": [
- "cabal-cache",
- "toolchain"
- ]
- },
- "dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_R…",
- "needs": [
- {
- "artifacts": false,
- "job": "hadrian-ghc-in-ghci"
- }
- ],
- "rules": [
- {
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
- "when": "on_success"
- }
- ],
- "script": [
- "sudo chown ghc:ghc -R .",
- ".gitlab/ci.sh setup",
- ".gitlab/ci.sh configure",
- ".gitlab/ci.sh build_hadrian",
- ".gitlab/ci.sh test_hadrian"
- ],
- "stage": "full-build",
- "tags": [
- "x86_64-linux"
- ],
- "variables": {
- "BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate",
- "BROKEN_TESTS": "encoding004 T10458",
- "BUILD_FLAVOUR": "validate",
- "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
- "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
- "RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_12-validate"
- }
- },
"x86_64-linux-alpine3_12-validate+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
@@ -5977,7 +5785,7 @@
"TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static"
}
},
- "x86_64-linux-alpine3_20-validate": {
+ "x86_64-linux-alpine3_22-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5988,7 +5796,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
- "ghc-x86_64-linux-alpine3_20-validate.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -5998,14 +5806,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_20-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_R…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22:$DOCKER_R…",
"needs": [
{
"artifacts": false,
@@ -6014,7 +5822,7 @@
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_22-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
@@ -6031,16 +5839,16 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-validate",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-validate"
+ "TEST_ENV": "x86_64-linux-alpine3_22-validate"
}
},
- "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
+ "x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6051,7 +5859,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
- "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -6061,14 +5869,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOC…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22-wasm:$DOC…",
"needs": [
{
"artifacts": false,
@@ -6077,7 +5885,7 @@
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\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 =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\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 =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
@@ -6094,17 +5902,17 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
+ "TEST_ENV": "x86_64-linux-alpine3_22-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
}
},
- "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
+ "x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6115,7 +5923,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
- "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -6125,14 +5933,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOC…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22-wasm:$DOC…",
"needs": [
{
"artifacts": false,
@@ -6142,7 +5950,7 @@
"rules": [
{
"allow_failure": true,
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\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 =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\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 =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
}
],
@@ -6159,17 +5967,17 @@
],
"variables": {
"BIGNUM_BACKEND": "native",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
+ "TEST_ENV": "x86_64-linux-alpine3_22-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
}
},
- "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
+ "x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6180,7 +5988,7 @@
"artifacts": {
"expire_in": "2 weeks",
"paths": [
- "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
+ "ghc-x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
@@ -6190,14 +5998,14 @@
"when": "always"
},
"cache": {
- "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
+ "key": "x86_64-linux-alpine3_22-wasm-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
- "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOC…",
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_22-wasm:$DOC…",
"needs": [
{
"artifacts": false,
@@ -6207,7 +6015,7 @@
"rules": [
{
"allow_failure": true,
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\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 =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\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 =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
}
],
@@ -6224,14 +6032,14 @@
],
"variables": {
"BIGNUM_BACKEND": "gmp",
- "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "",
- "TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
+ "TEST_ENV": "x86_64-linux-alpine3_22-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
}
},
"x86_64-linux-deb10-validate": {
=====================================
.gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
=====================================
@@ -32,19 +32,19 @@ def job_triple(job_name):
'release-x86_64-linux-deb10-release+debug_info': 'x86_64-deb10-linux-dwarf',
'release-x86_64-linux-deb10-release': 'x86_64-deb10-linux',
'release-x86_64-linux-deb9-release': 'x86_64-deb9-linux',
- 'release-x86_64-linux-alpine3_12-release+fully_static': 'x86_64-alpine3_12-linux-static',
- 'release-x86_64-linux-alpine3_12-release': 'x86_64-alpine3_12-linux',
+ 'release-x86_64-linux-alpine3_12-release+fully_static+no_split_sections': 'x86_64-alpine3_12-linux-static',
+ 'release-x86_64-linux-alpine3_22-release+no_split_sections': 'x86_64-alpine3_22-linux',
'release-x86_64-linux-alpine3_12-int_native-release+fully_static': 'x86_64-alpine3_12-linux-static-int_native',
- 'release-x86_64-linux-alpine3_20-release': 'x86_64-alpine3_20-linux',
'release-x86_64-darwin-release': 'x86_64-apple-darwin',
'release-i386-linux-deb12-release': 'i386-deb12-linux',
'release-i386-linux-deb10-release': 'i386-deb10-linux',
'release-i386-linux-deb9-release': 'i386-deb9-linux',
+ 'release-i386-linux-alpine3_22-release+no_split_sections': 'i386-alpine3_22-linux',
'release-armv7-linux-deb10-release': 'armv7-deb10-linux',
'release-aarch64-linux-deb10-release': 'aarch64-deb10-linux',
'release-aarch64-linux-deb11-release': 'aarch64-deb11-linux',
'release-aarch64-linux-deb12-release': 'aarch64-deb12-linux',
- 'release-aarch64-linux-alpine3_18-release+no_split_sections': 'aarch64-alpine3_18-linux',
+ 'release-aarch64-linux-alpine3_22-release+no_split_sections': 'aarch64-alpine3_22-linux',
'release-aarch64-darwin-release': 'aarch64-apple-darwin',
'source-tarball': 'src',
=====================================
.gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
=====================================
@@ -204,9 +204,9 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map):
darwin_x86 = mk(darwin("x86_64"))
darwin_arm64 = mk(darwin("aarch64"))
windows = mk(windowsArtifact)
- alpine3_12 = mk(alpine("3_12"))
- alpine3_20 = mk(alpine("3_20"))
- alpine3_18_arm64 = mk(alpine("3_18", arch='aarch64'))
+ alpine3_22 = mk(alpine("3_22"))
+ alpine3_22_arm64 = mk(alpine("3_22", arch='aarch64'))
+ alpine3_22_i386 = mk(alpine("3_22", arch='i386'))
deb9 = mk(debian(9, "x86_64"))
deb10 = mk(debian(10, "x86_64"))
deb11 = mk(debian(11, "x86_64"))
@@ -247,10 +247,7 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map):
, "Linux_UnknownLinux" : { "unknown_versioning": rocky8 }
, "Darwin" : { "unknown_versioning" : darwin_x86 }
, "Windows" : { "unknown_versioning" : windows }
- , "Linux_Alpine" : { "( >= 3.12 && < 3.20 )": alpine3_12
- , ">= 3.20": alpine3_20
- , "unknown_versioning": alpine3_12 }
-
+ , "Linux_Alpine" : { "unknown_versioning": alpine3_22 }
}
a32 = { "Linux_Debian": { "( >= 10 && < 12 )": deb10_i386
@@ -258,11 +255,12 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map):
, "unknown_versioning": deb10_i386 }
, "Linux_Ubuntu": { "unknown_versioning": deb10_i386 }
, "Linux_Mint" : { "unknown_versioning": deb10_i386 }
+ , "Linux_Alpine" : { "unknown_versioning": alpine3_22_i386 }
, "Linux_UnknownLinux" : { "unknown_versioning": deb10_i386 }
}
arm64 = { "Linux_UnknownLinux": { "unknown_versioning": deb10_arm64 }
- , "Linux_Alpine" : { "unknown_versioning": alpine3_18_arm64 }
+ , "Linux_Alpine" : { "unknown_versioning": alpine3_22_arm64 }
, "Linux_Debian": { "( >= 10 && < 12 )": deb10_arm64
, "( >= 12 )": deb12_arm64
, "unknown_versioning": deb10_arm64
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/6bd9fe984e395653dbfaff40005b5f4…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/6bd9fe984e395653dbfaff40005b5f4…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/jeltsch/obtaining-os-handles] Change `IllegalOperation` to `InappropriateType`
by Wolfgang Jeltsch (@jeltsch) 09 Sep '25
by Wolfgang Jeltsch (@jeltsch) 09 Sep '25
09 Sep '25
Wolfgang Jeltsch pushed to branch wip/jeltsch/obtaining-os-handles at Glasgow Haskell Compiler / GHC
Commits:
4f9dbc83 by Wolfgang Jeltsch at 2025-09-09T22:03:38+03:00
Change `IllegalOperation` to `InappropriateType`
- - - - -
1 changed file:
- libraries/base/src/GHC/IO/Handle.hs
Changes:
=====================================
libraries/base/src/GHC/IO/Handle.hs
=====================================
@@ -125,7 +125,7 @@ import GHC.Internal.IO.Handle.Types
import GHC.Internal.IO.Handle.Internals (withHandle_', flushBuffer)
import GHC.Internal.IO.Exception
(
- IOErrorType (IllegalOperation),
+ IOErrorType (InappropriateType),
IOException (IOError),
ioException
)
@@ -221,7 +221,7 @@ requiringOSHandleOfType osHandleTypeName
osHandleOfTypeRequired :: IOException
osHandleOfTypeRequired
= IOError Nothing
- IllegalOperation
+ InappropriateType
""
("handle does not use " ++ osHandleTypeName ++ "s")
Nothing
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/4f9dbc836f4cd02906321aa59268fbb…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/4f9dbc836f4cd02906321aa59268fbb…
You're receiving this email because of your account on gitlab.haskell.org.
1
0