[Git][ghc/ghc][master] Cmm: print unreachable blocks under -dppr-debug (#27368)
by Marge Bot (@marge-bot) 07 Aug '26
by Marge Bot (@marge-bot) 07 Aug '26
07 Aug '26
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
0779e12c by Simon Jakobi at 2026-08-07T12:36:11-04:00
Cmm: print unreachable blocks under -dppr-debug (#27368)
Unreachable blocks linger in a CmmGraph's block map for most of the Cmm
pipeline, but pprCmmGraph only ever printed the blocks reachable from the
entry, so dumps looked consistent while the graph was not. Issues like
#27368 were hard to debug due to this.
pprCmmGraph now appends the stored-but-unreachable blocks under a
"// unreachable blocks:" heading when -dppr-debug is on.
See Note [unreachable blocks] in GHC.Cmm.Pipeline.
Assisted-by: Claude Opus 5
- - - - -
8 changed files:
- + changelog.d/T27368-ppr-unreachable-cmm-blocks.md
- compiler/GHC/Cmm.hs
- compiler/GHC/Cmm/Pipeline.hs
- docs/users_guide/debugging.rst
- testsuite/tests/cmm/should_compile/Makefile
- + testsuite/tests/cmm/should_compile/T27368-ppr-debug.cmm
- + testsuite/tests/cmm/should_compile/T27368-ppr-debug.stdout
- testsuite/tests/cmm/should_compile/all.T
Changes:
=====================================
changelog.d/T27368-ppr-unreachable-cmm-blocks.md
=====================================
@@ -0,0 +1,10 @@
+section: cmm
+issues: #27368
+mrs: !16417
+synopsis:
+ Cmm dumps now show unreachable blocks under ``-dppr-debug``
+description:
+ Unreachable blocks stay in a Cmm graph's block map for most of the Cmm
+ pipeline, but ``-ddump-cmm-*`` only ever printed the blocks reachable from
+ the graph's entry. Adding ``-dppr-debug`` now appends the stored but
+ unreachable blocks, which makes bugs like #27368 visible in the dumps.
=====================================
compiler/GHC/Cmm.hs
=====================================
@@ -151,15 +151,28 @@ instance OutputableP Platform CmmGraph where
toBlockMap :: CmmGraph -> LabelMap CmmBlock
toBlockMap (CmmGraph {g_graph=GMany NothingO body NothingO}) = body
+-- | Print the blocks reachable from the entry, in reverse postorder.
+--
+-- Under @-dppr-debug@ the unreachable blocks stored in the graph are appended
+-- too. See Note [unreachable blocks] in "GHC.Cmm.Pipeline".
pprCmmGraph :: Platform -> CmmGraph -> SDoc
pprCmmGraph platform g
= text "{" <> text "offset"
- $$ nest 2 (vcat $ map (pdoc platform) blocks)
+ $$ nest 2 (ppr_blocks blocks $$ unreachable)
$$ text "}"
- where blocks = revPostorder g
- -- revPostorder has the side-effect of discarding unreachable code,
- -- so pretty-printed Cmm will omit any unreachable blocks. This can
- -- sometimes be confusing.
+ where
+ ppr_blocks :: [CmmBlock] -> SDoc
+ ppr_blocks = vcat . map (pdoc platform)
+
+ blocks = revPostorder g
+
+ unreachable = getPprDebug $ \debug ->
+ if not debug || mapNull dead_blocks
+ then empty
+ else text "// unreachable blocks:"
+ $$ nest 2 (ppr_blocks (mapElems dead_blocks))
+
+ dead_blocks = foldl' (\bs b -> mapDelete (entryLabel b) bs) (toBlockMap g) blocks
revPostorder :: CmmGraph -> [CmmBlock]
revPostorder g = {-# SCC "revPostorder" #-}
=====================================
compiler/GHC/Cmm/Pipeline.hs
=====================================
@@ -358,6 +358,7 @@ containing junk code. These aren't necessarily a problem, but
removing them is good because it might save time in the native code
generator later.
+To make unreachable blocks visible in -ddump-cmm-* output, add -dppr-debug.
-}
dumpGraph :: Logger -> Platform -> Bool -> DumpFlag -> String -> CLabel -> CmmGraph -> IO ()
=====================================
docs/users_guide/debugging.rst
=====================================
@@ -564,6 +564,11 @@ C-\- representation
These flags dump various phases of GHC's C-\- pipeline.
+Dumps of Cmm graphs print the blocks reachable from the entry, in reverse
+post-order. To also show unreachable blocks, which can linger in the graph,
+add :ghc-flag:`-dppr-debug`. These blocks are then listed under a
+``// unreachable blocks:`` heading.
+
.. ghc-flag:: -ddump-cmm-verbose-by-proc
:shortdesc: Show output from main C-\- pipeline passes (grouped by proc)
:type: dynamic
@@ -574,9 +579,6 @@ These flags dump various phases of GHC's C-\- pipeline.
the chosen backend. Currently only the NCG backends runs
additional passes ( :ghc-flag:`-ddump-opt-cmm` ).
- Cmm dumps don't include unreachable blocks since we print
- blocks in reverse post-order.
-
.. ghc-flag:: -ddump-cmm-verbose
:shortdesc: Write output from main C-\- pipeline passes to files
:type: dynamic
=====================================
testsuite/tests/cmm/should_compile/Makefile
=====================================
@@ -16,3 +16,16 @@ T16930:
T23610:
'$(TEST_HC)' $(TEST_HC_OPTS) T23610.cmm -S
+
+# The three seds below, in order:
+# 1. Keep only the "Parsed Cmm" dump, since that is the one stage where the
+# unreachable block still exists.
+# 2. Rewrite goto targets: their label uniques survive -dsuppress-uniques
+# (#21310).
+# 3. Drop the "// CmmAssign"-style node annotations, which pprNode emits
+# only on DEBUG compilers.
+T27368-ppr-debug:
+ '$(TEST_HC)' $(TEST_HC_OPTS) -c -no-hs-main -ddump-cmm-verbose-by-proc -dppr-debug -dsuppress-uniques -dsuppress-ticks T27368-ppr-debug.cmm 2>&1 \
+ | sed -n '/^==* Parsed Cmm/,/^ \}\]/p' \
+ | sed 's/goto c[0-9A-Za-z]*/goto _lbl_/g' \
+ | sed 's| *// Cmm[A-Za-z]*$$||'
=====================================
testsuite/tests/cmm/should_compile/T27368-ppr-debug.cmm
=====================================
@@ -0,0 +1,19 @@
+#include "Cmm.h"
+
+// The block "dead" is stored in the graph but no block branches to it, so it
+// only shows up in Cmm dumps under -dppr-debug.
+testUnreachable (W_ x)
+{
+ if (x > 0) {
+ goto live;
+ }
+ return (x);
+
+dead:
+ x = x + 42;
+ return (x);
+
+live:
+ x = x - 1;
+ return (x);
+}
=====================================
testsuite/tests/cmm/should_compile/T27368-ppr-debug.stdout
=====================================
@@ -0,0 +1,27 @@
+==================== Parsed Cmm ====================
+[testUnreachable() { // [R1]
+ { info_tbls: []
+ stack_info: arg_space: 8
+ }
+ {offset
+ _lbl_:
+ __locVar_::I64 = R1;
+ if (__locVar_::I64 > 0) goto _lbl_; else goto _lbl_;
+ _lbl_:
+ goto _lbl_;
+ _lbl_:
+ __locVar_::I64 = __locVar_::I64 - 1;
+ R1 = __locVar_::I64;
+ call (P64[(old + 8)])(R1) args: 8, res: 0, upd: 8;
+ _lbl_:
+ goto _lbl_;
+ _lbl_:
+ R1 = __locVar_::I64;
+ call (P64[(old + 8)])(R1) args: 8, res: 0, upd: 8;
+ // unreachable blocks:
+ _lbl_:
+ __locVar_::I64 = __locVar_::I64 + 42;
+ R1 = __locVar_::I64;
+ call (P64[(old + 8)])(R1) args: 8, res: 0, upd: 8;
+ }
+ }]
=====================================
testsuite/tests/cmm/should_compile/all.T
=====================================
@@ -13,6 +13,11 @@ test('T20725', normal, compile, ['-package ghc'])
test('T23610', normal, makefile_test, ['T23610'])
test('T24224', [cmm_src, grep_errmsg(r'(F64.*);', [1]), only_ways(['normal'])], compile, ['-no-hs-main -ddump-cmm -dsuppress-all -dsuppress-uniques'])
test('T24474', cmm_src, compile, ['-optc-g3'])
+# -dppr-debug makes stored-but-unreachable blocks visible in Cmm dumps (#27368).
+# Skipped on wordsize(32) targets, where the dump would say I32/P32, and on
+# unregisterised builds, which print call targets with an extra load.
+test('T27368-ppr-debug', [when(wordsize(32), skip), when(unregisterised(), skip)],
+ makefile_test, ['T27368-ppr-debug'])
test('T24474-cmm-gets-c-opts', cmm_src, compile, ['-optc-DFOO'])
test('T24474-cmm-opt-order', cmm_src, compile, ['-optc-DFOO '
'-optCmmP-UFOO '
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/0779e12ce2cd57034aae61dc67e5f62…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/0779e12ce2cd57034aae61dc67e5f62…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/torsten.schmits/mwb-26-07/abstract-linkables] 2 commits: WIP Abstract getLinkDeps
by Torsten Schmits (@torsten.schmits) 07 Aug '26
by Torsten Schmits (@torsten.schmits) 07 Aug '26
07 Aug '26
Torsten Schmits pushed to branch wip/torsten.schmits/mwb-26-07/abstract-linkables at Glasgow Haskell Compiler / GHC
Commits:
c12bd760 by Torsten Schmits at 2026-08-07T17:30:32+02:00
WIP Abstract getLinkDeps
- - - - -
ff8b945d by Torsten Schmits at 2026-08-07T17:30:32+02:00
WIP Make extra_decls lazy when loading from Binary
- - - - -
5 changed files:
- compiler/GHC/Driver/Env/Types.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/Linker/Deps.hs
- compiler/GHC/Linker/Loader.hs
- compiler/GHC/Unit/Module/ModIface.hs
Changes:
=====================================
compiler/GHC/Driver/Env/Types.hs
=====================================
@@ -3,6 +3,8 @@
module GHC.Driver.Env.Types
( Hsc(..)
, HscEnv(..)
+ , LinkDeps (..)
+ , Linkables (..)
) where
import GHC.Driver.Errors.Types ( GhcMessage )
@@ -29,6 +31,10 @@ import Control.Monad.Trans.Reader
import Control.Monad.Trans.State
import Data.IORef
import GHC.Driver.Env.KnotVars
+import GHC.Types.SrcLoc (SrcSpan)
+import GHC.Linker.Types (Linkable, LoaderState)
+import GHC.Unit.Types (UnitId, Module)
+import GHC.Types.Unique.DSet (UniqDSet)
-- | The Hsc monad: Passing an environment and diagnostic state
newtype Hsc a = Hsc (HscEnv -> Messages GhcMessage -> IO (a, Messages GhcMessage))
@@ -44,6 +50,18 @@ instance ContainsDynFlags HscEnv where
instance HasLogger Hsc where
getLogger = Hsc $ \e w -> return (hsc_logger e, w)
+data LinkDeps = LinkDeps
+ { ldNeededLinkables :: [Linkable]
+ , ldAllLinkables :: [Linkable]
+ , ldNeededUnits :: [UnitId]
+ , ldAllUnits :: UniqDSet UnitId
+ }
+
+data Linkables where
+ Linkables :: {
+ linkablesResolve :: SrcSpan -> [Module] -> IO a,
+ linkablesSelect :: a -> IO LinkDeps
+ } -> Linkables
-- | HscEnv is like 'GHC.Driver.Monad.Session', except that some of the fields are immutable.
-- An HscEnv is used to compile a single module from plain Haskell source
@@ -87,6 +105,8 @@ data HscEnv
-- ^ target code interpreter (if any) to use for TH and GHCi.
-- See Note [Target code interpreter]
+ , hsc_linkables :: HscEnv -> LoaderState -> IO Linkables
+
, hsc_plugins :: !Plugins
-- ^ Plugins
=====================================
compiler/GHC/Driver/Main.hs
=====================================
@@ -342,6 +342,7 @@ newHscEnvWithHUG top_dir top_dynflags cur_unit home_unit_graph = do
, hsc_FC = fc_var
, hsc_type_env_vars = emptyKnotVars
, hsc_interp = Nothing
+ , hsc_linkables = linkablesDefault
, hsc_unit_env = unit_env
, hsc_plugins = emptyPlugins
, hsc_hooks = emptyHooks
@@ -2880,10 +2881,10 @@ jsCodeGen hsc_env srcspan i this_mod stg_binds_with_deps binding_id = do
-- Take lock for the actual work.
(dep_linkables, dep_units) <- modifyLoaderState interp $ \pls -> do
- let link_opts = initLinkDepsOpts hsc_env
-- Find what packages and linkables are required
- deps <- getLinkDeps link_opts interp pls srcspan needed_mods
+ linkables <- hsc_linkables hsc_env hsc_env pls
+ deps <- linkablesGet linkables srcspan needed_mods
-- We update the LinkerState even if the JS interpreter maintains its linker
-- state independently to load new objects here.
=====================================
compiler/GHC/Linker/Deps.hs
=====================================
@@ -12,6 +12,10 @@ module GHC.Linker.Deps
( LinkDepsOpts (..)
, LinkDeps (..)
, getLinkDeps
+ , Linkables (..)
+ , linkablesGet
+ , resolveLinkDeps
+ , selectLinkDeps
)
where
@@ -42,16 +46,13 @@ import GHC.Unit.Module.Graph
import GHC.Unit.Home.ModInfo
import GHC.Iface.Errors.Types
-import GHC.Iface.Errors.Ppr
import GHC.Utils.Misc
import GHC.Unit.Home
-import qualified GHC.Unit.Home.Graph as HUG
import GHC.Data.Maybe
import Control.Applicative
import Control.Monad.IO.Class (MonadIO (liftIO))
-import Control.Monad.Trans.Except (ExceptT, runExceptT, throwE)
import Data.Foldable (traverse_)
import qualified Data.Set as Set
@@ -60,11 +61,8 @@ import Data.List (isSuffixOf)
import System.FilePath
import System.Directory
import GHC.Utils.Logger (Logger)
-import Control.Monad ((<$!>))
-import GHC.Driver.Env
-import {-# SOURCE #-} GHC.Driver.Main
-import Data.Time.Clock
import GHC.Unit.Home.Graph
+import GHC.Driver.Env.Types (Linkables (..), LinkDeps (..))
data LinkDepsOpts = LinkDepsOpts
@@ -86,12 +84,9 @@ data LinkDepsOpts = LinkDepsOpts
, ldLogger :: !Logger
}
-data LinkDeps = LinkDeps
- { ldNeededLinkables :: [Linkable]
- , ldAllLinkables :: [Linkable]
- , ldNeededUnits :: [UnitId]
- , ldAllUnits :: UniqDSet UnitId
- }
+linkablesGet :: Linkables -> SrcSpan -> [Module] -> IO LinkDeps
+linkablesGet Linkables {..} span mods =
+ linkablesSelect =<< linkablesResolve span mods
-- | Find all the packages and linkables that a set of modules depends on
--
@@ -108,14 +103,8 @@ getLinkDeps
-> [Module] -- If you need these
-> IO LinkDeps -- ... then link these first
getLinkDeps opts interp pls span mods = do
- -- The interpreter and dynamic linker can only handle object code built
- -- the "normal" way, i.e. no non-std ways like profiling or ticky-ticky.
- -- So here we check the build tag: if we're building a non-standard way
- -- then we need to find & link object files built the "normal" way.
- maybe_normal_osuf <- checkNonStdWay opts interp span
-
- withTiming (ldLogger opts) (text "getLinkDeps" <+> brackets (ppr span)) (const ()) $
- get_link_deps opts pls maybe_normal_osuf span mods
+ linkables <- resolveLinkDeps opts pls span mods
+ selectLinkDeps opts interp span linkables
-- | Determine which parts of a module and its dependencies should be linked
-- when resolving external dependencies.
@@ -151,7 +140,7 @@ data LinkExternal =
}
instance Outputable LinkExternal where
- ppr LinkExternal {..} = ppr le_module <> brackets (ppr le_details)
+ ppr LinkExternal {..} = ppr le_module Outputable.<> brackets (ppr le_details)
-- | The decision about the linking method used for a given module.
data LinkModule =
@@ -180,48 +169,31 @@ instance Outputable LinkModule where
LinkObjectModule mod _ -> ppr mod
LinkByteCodeModule mod _ -> ppr mod <+> brackets (text "BC")
--- | Compute the linkables for the given module set's dependencies.
---
--- Home modules in make mode are treated separately in a preprocessing step,
--- then all the remaining external deps are processed for both modes.
--- If bytecode is available, transitive external deps are included, otherwise
--- the module's library is linked and processing stops.
---
--- The results are split into sets of needed/loaded modules/packages.
-get_link_deps
- :: LinkDepsOpts
- -> LoaderState
- -> Maybe FilePath -- replace object suffixes?
- -> SrcSpan
- -> [Module]
- -> IO LinkDeps
-get_link_deps opts pls maybe_normal_osuf span mods = do
- (link_deps_home, module_deps_external) <- separate_home_deps
- link_deps_external <- external_deps opts module_deps_external
- let (loaded_modules, needed_modules, ldAllUnits, ldNeededUnits) =
- classify_deps pls link_deps_home link_deps_external
- ldNeededLinkables <- mapM module_linkable needed_modules
- pure LinkDeps {
- ldNeededLinkables,
- ldAllLinkables = loaded_modules ++ ldNeededLinkables,
- ldNeededUnits,
- ldAllUnits
- }
+resolveLinkDeps ::
+ LinkDepsOpts ->
+ LoaderState ->
+ SrcSpan ->
+ [Module] ->
+ IO ([Linkable], [LinkModule], UniqDSet UnitId, [UnitId])
+resolveLinkDeps opts pls span mods =
+ withTiming (ldLogger opts) (text "getLinkDeps" <+> brackets (ppr span)) (const ()) $ do
+ (link_deps_home, module_deps_external) <- separate_home_deps
+ link_deps_external <- external_deps opts module_deps_external
+ pure (classify_deps pls link_deps_home link_deps_external)
where
mod_graph = ldModuleGraph opts
unit_env = ldUnitEnv opts
noninteractive = filterOut isInteractiveModule mods
- -- Preprocess the dependencies in make mode to remove all home modules,
- -- since the transitive dependency closure is already cached for those in
- -- the HUG (see MultiLayerModulesTH_* tests for the performance impact).
+ -- Preprocess the dependencies to remove all home modules, since the
+ -- transitive dependency closure is already cached for those in the HUG
+ -- (see MultiLayerModulesTH_* tests for the performance impact).
--
- -- Returns the remaining, external, dependencies on the right, which is the
- -- entire set for oneshot mode.
- separate_home_deps =
- if ldOneShotMode opts
- then pure ([], LinkExternal LinkAllDeps <$!> noninteractive)
- else make_deps
+ -- Returns the remaining, external, dependencies on the right.
+ -- This function only supports make mode; oneshot mode (in which the
+ -- entire dependency set would be treated as external) is not used by
+ -- this worker and is not supported here.
+ separate_home_deps = make_deps
make_deps = do
(dep_ext, mmods) <- unzip <$> mapM get_mod_info all_home_mods
@@ -265,6 +237,22 @@ get_link_deps opts pls maybe_normal_osuf span mods = do
Nothing -> throwProgramError opts $
text "getLinkDeps: Home module not loaded" <+> ppr (gwib_mod gwib) <+> ppr uid
+select_link_deps
+ :: LinkDepsOpts
+ -> Maybe FilePath -- replace object suffixes?
+ -> SrcSpan
+ -> ([Linkable], [LinkModule], UniqDSet UnitId, [UnitId])
+ -> IO LinkDeps
+select_link_deps opts maybe_normal_osuf span (loaded_modules, needed_modules, ldAllUnits, ldNeededUnits) = do
+ ldNeededLinkables <- mapM module_linkable needed_modules
+ pure LinkDeps {
+ ldNeededLinkables,
+ ldAllLinkables = loaded_modules ++ ldNeededLinkables,
+ ldNeededUnits,
+ ldAllUnits
+ }
+ where
+
no_obj :: Outputable a => a -> IO b
no_obj mod = dieWith opts span $
text "cannot find object file for module" <+>
@@ -277,7 +265,7 @@ get_link_deps opts pls maybe_normal_osuf span mods = do
-- results.
module_linkable = \case
LinkHomeModule hmi ->
- adjust_linkable (expectJust "getLinkDeps" (homeModLinkable hmi))
+ adjust_linkable (expectJust "foo" (homeModLinkable hmi))
LinkObjectModule mod loc -> do
findObjectLinkableMaybe mod loc >>= \case
@@ -321,6 +309,20 @@ get_link_deps opts pls maybe_normal_osuf span mods = do
CoreBindings WholeCoreBindings {wcb_module} ->
pprPanic "Unhydrated core bindings" (ppr wcb_module)
+selectLinkDeps
+ :: LinkDepsOpts
+ -> Interp
+ -> SrcSpan -- for error messages
+ -> ([Linkable], [LinkModule], UniqDSet UnitId, [UnitId])
+ -> IO LinkDeps -- ... then link these first
+selectLinkDeps opts interp span linkables = do
+ -- The interpreter and dynamic linker can only handle object code built
+ -- the "normal" way, i.e. no non-std ways like profiling or ticky-ticky.
+ -- So here we check the build tag: if we're building a non-standard way
+ -- then we need to find & link object files built the "normal" way.
+ maybe_normal_osuf <- checkNonStdWay opts interp span
+ select_link_deps opts maybe_normal_osuf span linkables
+
data LinkDep =
LinkModules !(UniqDFM ModuleName LinkModule)
|
@@ -331,11 +333,6 @@ instance Outputable LinkDep where
LinkModules mods -> text "modules:" <+> ppr (eltsUDFM mods)
LinkLibrary uid -> text "library:" <+> ppr uid
-data OneshotError =
- NoInterface !MissingInterfaceError
- |
- LinkBootModule !Module
-
-- | Compute the transitive dependency closure of the given modules.
--
-- Used for all oneshot mode dependencies and for external dependencies of home
@@ -346,21 +343,13 @@ external_deps ::
[LinkExternal] ->
IO [LinkDep]
external_deps opts mods =
- runExceptT (external_deps_loop opts mods emptyUDFM) >>= \case
- Right a -> pure (eltsUDFM a)
- Left err -> throwProgramError opts (message err)
- where
- message = \case
- NoInterface err ->
- missingInterfaceErrorDiagnostic (ldMsgOpts opts) err
- LinkBootModule mod ->
- link_boot_mod_error mod
+ eltsUDFM <$> external_deps_loop opts mods emptyUDFM
external_deps_loop ::
LinkDepsOpts ->
[LinkExternal] ->
UniqDFM UnitId LinkDep ->
- ExceptT OneshotError IO (UniqDFM UnitId LinkDep)
+ IO (UniqDFM UnitId LinkDep)
external_deps_loop _ [] acc =
pure acc
external_deps_loop opts (job@LinkExternal {le_module = mod, ..} : mods) acc = do
@@ -386,8 +375,7 @@ external_deps_loop opts (job@LinkExternal {le_module = mod, ..} : mods) acc = do
-- link an object file (which happens for home unit modules, since those
-- have no libraries).
process_module = \case
- LinkAllDeps | is_home || package_bc -> try_iface
- | otherwise -> add_library
+ LinkAllDeps -> add_library
-- @LinkOnlyPackages@ is used for make mode home modules, so all imports
-- that are not external are already processed otherwise.
@@ -407,45 +395,9 @@ external_deps_loop opts (job@LinkExternal {le_module = mod, ..} : mods) acc = do
| otherwise
= False
- -- Load the iface and attempt to get bytecode from Core bindings.
- try_iface =
- liftIO (ldLoadIface opts load_reason mod) >>= \case
- Failed err -> throwE (NoInterface err)
- Succeeded (iface, loc) -> do
- mb_load_bc <- liftIO (ldLoadByteCode opts (mi_module iface))
- with_iface iface loc mb_load_bc
-
- -- Decide how to link this module.
- -- If bytecode or an object file is available, use those in that order.
- -- Otherwise fall back to linking a library.
- with_iface iface loc mb_load_bc
- | IsBoot <- mi_boot iface
- = throwE (LinkBootModule mod)
-
- | ldUseByteCode opts
- , is_home || package_bc
- , Just load_bc <- mb_load_bc
- = add_module iface (LinkByteCodeModule mod load_bc) "bytecode"
-
- | is_home
- = add_module iface (LinkObjectModule mod loc) "object"
-
- | otherwise
- = add_library
-
add_library =
pure (addToUDFM acc mod_unit_id (LinkLibrary mod_unit_id), [], Just "library")
- add_module iface lmod action =
- with_deps with_mod iface True action
- where
- with_mod = alterUDFM (add_package_module lmod) acc mod_unit_id
-
- add_package_module lmod = \case
- Just (LinkLibrary u) -> Just (LinkLibrary u)
- Just (LinkModules old) -> Just (LinkModules (addToUDFM old mod_name lmod))
- Nothing -> Just (LinkModules (unitUDFM mod_name lmod))
-
with_deps acc iface local action =
pure (addListToUDFM acc link, new_local ++ new_package, Just action)
where
@@ -458,26 +410,17 @@ external_deps_loop opts (job@LinkExternal {le_module = mod, ..} : mods) acc = do
| (_, GWIB m _) <- Set.toList (dep_direct_mods (mi_deps iface))
]
- -- If bytecode linking of external dependencies is enabled, add them to the
- -- jobs passed to the next iteration of 'external_deps_loop'.
- -- Otherwise, link all package deps as libraries.
- package_deps iface
- | package_bc
- = ([], [LinkExternal LinkAllDeps usg_mod | UsagePackageModule {usg_mod} <- mi_usages iface])
- | otherwise
- = ([(u, LinkLibrary u) | u <- Set.toList (dep_direct_pkgs (mi_deps iface))], [])
-
- load_reason =
- text "need to link module" <+> ppr mod <+>
- text "due to use of Template Haskell"
-
- package_bc = ldPkgByteCode opts
-
- -- In multiple home unit mode, this only considers modules from the same
- -- unit as the splice's module to be eligible for linking bytecode when
- -- @-fpackage-db-byte-code@ is off.
- -- For make mode, this is irrelevant, since any bytecode from the HUG is
- -- obtained directly, not going through 'external_deps'.
+ -- External package dependencies are always linked as libraries; this
+ -- worker does not support traversing external package modules for
+ -- bytecode ("-fpackage-db-byte-code").
+ package_deps iface =
+ ([(u, LinkLibrary u) | u <- Set.toList (dep_direct_pkgs (mi_deps iface))], [])
+
+ -- Considers only modules from the same unit as the splice's module to be
+ -- eligible for linking bytecode.
+ -- For make mode, this is irrelevant for home modules in general, since any
+ -- bytecode from the HUG is obtained directly, not going through
+ -- 'external_deps'.
is_home
| Just home <- ue_homeUnit (ldUnitEnv opts)
= homeUnitAsUnit home == mod_unit
@@ -489,11 +432,6 @@ external_deps_loop opts (job@LinkExternal {le_module = mod, ..} : mods) acc = do
mod_unit_id = moduleUnitId mod
mod_unit = moduleUnit mod
-link_boot_mod_error :: Module -> SDoc
-link_boot_mod_error mod =
- text "module" <+> ppr mod <+>
- text "cannot be linked; it is only available as a boot module"
-
-- | Split link dependencies into the sets of modules and packages that have
-- been linked previously and those that need to be linked now by checking for
-- their presence in the 'LoaderState':
=====================================
compiler/GHC/Linker/Loader.hs
=====================================
@@ -32,6 +32,7 @@ module GHC.Linker.Loader
, rmDupLinkables
, modifyLoaderState
, initLinkDepsOpts
+ , linkablesDefault
)
where
@@ -97,7 +98,6 @@ import Control.Monad
import qualified Data.Set as Set
import Data.Char (isSpace)
import Data.Functor ((<&>))
-import qualified Data.Foldable as Foldable
import Data.IORef
import Data.List (intercalate, isPrefixOf, nub, partition)
import Data.Maybe
@@ -115,7 +115,7 @@ import System.Win32.Info (getSystemDirectory)
#endif
import GHC.Utils.Exception
-import GHC.Unit.Home.Graph (lookupHug, unitEnv_foldWithKey)
+import GHC.Unit.Home.Graph (unitEnv_foldWithKey)
-- Note [Linkers and loaders]
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -231,10 +231,10 @@ loadDependencies
-> IO (LoaderState, SuccessFlag, [Linkable], PkgsLoaded) -- ^ returns the set of linkables required
-- When called, the loader state must have been initialized (see `initLoaderState`)
loadDependencies interp hsc_env pls span needed_mods = do
- let opts = initLinkDepsOpts hsc_env
+ linkables <- hsc_linkables hsc_env hsc_env pls
-- Find what packages and linkables are required
- deps <- getLinkDeps opts interp pls span needed_mods
+ deps <- linkablesGet linkables span needed_mods
let this_pkgs_needed = ldAllUnits deps
@@ -683,6 +683,15 @@ initLinkDepsOpts hsc_env = opts
EPS {eps_iface_bytecode} <- hscEPS hsc_env
pure (lookupModuleEnv eps_iface_bytecode mod)
+linkablesDefault ::
+ HscEnv ->
+ LoaderState ->
+ IO Linkables
+linkablesDefault hsc_env pls =
+ pure Linkables {
+ linkablesResolve = getLinkDeps (initLinkDepsOpts hsc_env) (hscInterp hsc_env) pls,
+ linkablesSelect = pure
+ }
{- **********************************************************************
=====================================
compiler/GHC/Unit/Module/ModIface.hs
=====================================
@@ -503,7 +503,7 @@ instance Binary ModIface where
lazyPut bh warns
lazyPut bh anns
put_ bh decls
- put_ bh extra_decls
+ lazyPut bh extra_decls
put_ bh foreign_
put_ bh insts
put_ bh fam_insts
@@ -536,7 +536,7 @@ instance Binary ModIface where
warns <- {-# SCC "bin_warns" #-} lazyGet bh
anns <- {-# SCC "bin_anns" #-} lazyGet bh
decls <- {-# SCC "bin_tycldecls" #-} get bh
- extra_decls <- get bh
+ extra_decls <- lazyGet bh
foreign_ <- get bh
insts <- {-# SCC "bin_insts" #-} get bh
fam_insts <- {-# SCC "bin_fam_insts" #-} get bh
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/9101dbb234d2cff453d93dec15ccf2…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/9101dbb234d2cff453d93dec15ccf2…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/ci-stages] chore: reorder packaging and testing stages
by Magnus (@MangoIV) 07 Aug '26
by Magnus (@MangoIV) 07 Aug '26
07 Aug '26
Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
2a21b2e0 by mangoiv at 2026-08-07T16:54:12+02:00
chore: reorder packaging and testing stages
- - - - -
3 changed files:
- .gitlab-ci.yml
- + flake.lock
- + flake.nix
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -68,8 +68,8 @@ stages:
- tool-lint # Source linting of the tools
- quick-build # A very quick smoke-test to weed out broken commits
- full-build # Build all the things
- - packaging # Source distribution, etc.
- testing # head.hackage correctness and compiler performance testing
+ - packaging # Source distribution, etc.
- deploy # push documentation
# Note [The CI Story]
=====================================
flake.lock
=====================================
@@ -0,0 +1,61 @@
+{
+ "nodes": {
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": "nixpkgs-lib"
+ },
+ "locked": {
+ "lastModified": 1778716662,
+ "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1781607440,
+ "narHash": "sha256-rxO+uc/KFbSJp+pgyXRuAX6QlG9hJdnt0BXpEQRXY+U=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "3e41b24abd260e8f71dbe2f5737d24122f972158",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-lib": {
+ "locked": {
+ "lastModified": 1777168982,
+ "narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-parts": "flake-parts",
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
=====================================
flake.nix
=====================================
@@ -0,0 +1,41 @@
+{
+ inputs = {
+ flake-parts.url = "github:hercules-ci/flake-parts";
+ nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+ };
+
+ outputs = inputs:
+ inputs.flake-parts.lib.mkFlake {inherit inputs;} {
+ systems = ["x86_64-linux" "aarch64-linux"];
+ perSystem = {
+ config,
+ pkgs,
+ ...
+ }: {
+ devShells.default = pkgs.mkShell {
+ nativeBuildInputs = [
+ pkgs.haskell.compiler.ghc910
+ pkgs.haskell.packages.ghc910.haskell-language-server
+ pkgs.haskellPackages.happy
+ pkgs.haskellPackages.alex
+ pkgs.cabal-install
+ pkgs.autoconf
+ pkgs.mold
+ pkgs.automake
+ pkgs.m4
+ pkgs.python3
+ pkgs.less
+ pkgs.llvmPackages_20.llvm
+ pkgs.llvmPackages_20.clang
+ pkgs.gmp
+ pkgs.sphinx
+ (pkgs.texliveSmall.withPackages (ps: with ps; [termes-otf
+ scheme-medium collection-xetex fncychap titlesec tabulary varwidth
+ framed capt-of wrapfig needspace dejavu-otf helvetic upquote
+ ]))
+ ];
+ };
+ };
+ flake = {};
+ };
+}
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/2a21b2e051a60d9cdeb1f86a077b412…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/2a21b2e051a60d9cdeb1f86a077b412…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/ci-stages] 20 commits: GHC Guide: Improve docs on response files
by Magnus (@MangoIV) 07 Aug '26
by Magnus (@MangoIV) 07 Aug '26
07 Aug '26
Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
3ec9e2b9 by Mike Pilgrem at 2026-07-31T08:21:33-04:00
GHC Guide: Improve docs on response files
- - - - -
e5b2a1f7 by sheaf at 2026-07-31T08:22:23-04:00
Disable Core Lint for TcPlugin_RewritePerf
This is a compiler performance test, but the test source hard-coded
-dcore-lint, defeating the measurement.
-------------------------
Metric Decrease:
TcPlugin_RewritePerf
-------------------------
- - - - -
85b10c00 by Alan Zimmerman at 2026-07-31T22:09:47+01:00
EPA: Remove LocatedP from OverlapMode
We have
type LocatedP = GenLocated SrcSpanAnnP
type SrcSpanAnnP = EpAnn AnnPragma
As the first step in removing this in favour of LocatedA which only
captures location, comments and trailing annotations, we remove it
from OverlapMode
We do this by moving the AnnPragma into the TTG extension point
instead.
- - - - -
c9a34a00 by Viktor Dukhovni at 2026-08-02T04:34:17-04:00
Fix note typo
- - - - -
4f2a21f7 by Andreas Klebinger at 2026-08-02T22:46:46-04:00
Apply oneShot Monad trick to STG LintM
- - - - -
21e4b89d by Andreas Klebinger at 2026-08-02T22:46:46-04:00
stgLint: Use a single reader env for read only arguments.
- - - - -
d415f38a by Alan Zimmerman at 2026-08-02T22:47:27-04:00
EPA: Remove LocatedP from CType
The next step of removing use of LocatedP by moving
the AnnPragma for CType into its TTG extension point
instead.
- - - - -
8fc6f882 by Simon Jakobi at 2026-08-05T14:53:41-04:00
testsuite: Don't crash on non-UTF-8 test output
read_stdout, read_stderr_for, read_comp_stderr and read_diff decoded
strictly (the first three with UTF-8, read_diff with the locale
encoding), so a test emitting invalid UTF-8 (binary output, or a crash
truncating a multi-byte character) raised UnicodeDecodeError and was
reported as a framework failure instead of its actual result.
Decode with errors='replace', like read_no_crs and safe_print.
Assisted-by: Claude Fable 5
- - - - -
56534866 by Simon Jakobi at 2026-08-05T14:53:41-04:00
testsuite: Colorize the test summary, also in CI
The summary headings were plain, and SUMMARY was colored unconditionally,
so the escapes also ended up in the file written by --summary-file.
Color is now decided per output sink via term_color.colored_if; see the
comments in term_color.
CI logs are not a tty, but GitLab's log viewer renders ANSI colors, so
add --force-colors and pass it in .gitlab/ci.sh.
Assisted-by: Claude Opus 5
- - - - -
bceb541a by Simon Jakobi at 2026-08-05T14:53:42-04:00
testsuite: Repeat unexpected failure output in the summary
Finding out why a test failed meant scrolling back through a possibly
very long log to the point where the test ran. The summary now repeats
the captured output of unexpected failures, before the statistics, so
the most interesting part is at the end of the log (#16720).
Output mismatches report their diff instead of the mismatching stream
(see Note [Redundant output in test results]). The repeated output is
bounded per stream, and skipped altogether beyond
MAX_SUMMARY_OUTPUT_TESTS failure blocks. Tests failing identically in
several ways share one block.
Test results now report a source-relative directory, stable regardless
of where the run was started from.
Assisted-by: Claude Fable 5
- - - - -
2ab02c57 by Ben Gamari at 2026-08-05T14:54:24-04:00
base: Don't drop exception context in SomeException(toException)
For reasons that are lost to time, the implementation of [CLC #200]
that was merged inappropriately dropped `ExceptionContext` in the
`toException` implementation given to `SomeException`.
Fix this infelicity.
[CLC #200]: https://github.com/haskell/core-libraries-committee/issues/200
- - - - -
126ce574 by Vladislav Zavialov at 2026-08-05T14:55:05-04:00
Test case for #20902
Starting with GHC 9.14.1 (the first major release to include 51e3ec83),
and from point releases GHC 9.10.2 and GHC 9.12.3 (backports cc4470be68
and b30f25591e), all examples in this ticket are handled as expected.
- - - - -
b14d8d59 by Alan Zimmerman at 2026-08-05T14:55:46-04:00
EPA: Remove LocatedP, last use in WarningTxt
The last step of removing LocatedP, by moving the AnnPragma for
WarningTxt into its TTG extension point instead.
This also allows us to remove LocatedP and SrcSpanAnnP
- - - - -
70b58c8f by Vladislav Zavialov at 2026-08-05T14:56:27-04:00
Test cases for #18725
Starting with GHC 9.4 (the first release to include 268efcc9a4), the program in
this ticket no longer panics. A standalone kind signature breaks the recursive
loop, so the type constructor can be used in a kind within its own group.
T18725a checks that this is accepted with the signature present, while T18725b
confirms it is still rejected without it.
- - - - -
b18c8dd5 by Zubin Duggal at 2026-08-06T15:51:01-04:00
hie files: Dump the type table when dumping with -ddump-hie
- - - - -
f839d0fb by Zubin Duggal at 2026-08-06T15:51:01-04:00
hie files: Take evidence for quantified constraints into account when saving evidence terms to the hie ast
Fixes #25709
- - - - -
5753ebaa by Simon Jakobi at 2026-08-06T15:51:43-04:00
testsuite: fix stale paths for the ghc-config build artifacts
ghc-config.hs moved from testsuite/mk/ to testsuite/ghc-config/ in
6c7a49139c, but the .gitignore entry and the clean rule still referred to
the old location. As a result the compiled ghc-config binary, which
boilerplate.mk rebuilds on every make-driven test run, showed up as an
untracked file and was never cleaned.
Assisted-by: Claude Opus 5
- - - - -
246d4d72 by Simon Peyton Jones at 2026-08-06T15:52:25-04:00
Documentation only
...driven by my investigation of #27591
- - - - -
be69e9df by Alan Zimmerman at 2026-08-06T15:53:05-04:00
EPA: Replace AnnPragma with individual types
We introduced AnnPragma as a common type for all pragma usages wrapped
in LocatedP / SrcSpanAnnP. Now that those are gone, and the AnnPragma
moved into the TTG points for the given items, we can ensure that each
carries only the annotations it needs.
So we remove AnnPragma, and in its place bring in
AnnCType
AnnWarningTxt
AnnOverlap
AnnAnnDecl
AnnPragSCC
- - - - -
8f490baa by mangoiv at 2026-08-07T16:51:48+02:00
ci: build and test stage
- - - - -
53 changed files:
- .gitlab/ci.sh
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- + changelog.d/T27455
- compiler/GHC/Builtin/Utils.hs
- compiler/GHC/Core/Class.hs
- compiler/GHC/Driver/Main/Passes.hs
- compiler/GHC/Hs/Decls.hs
- compiler/GHC/Hs/Decls/Overlap.hs
- compiler/GHC/Hs/Dump.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Ext/Types.hs
- compiler/GHC/Iface/Syntax.hs
- compiler/GHC/Iface/Warnings.hs
- compiler/GHC/Parser.y
- compiler/GHC/Parser/Annotation.hs
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Rename/HsType.hs
- compiler/GHC/Stg/Lint.hs
- compiler/GHC/Tc/Deriv.hs
- compiler/GHC/Tc/TyCl/Instance.hs
- compiler/GHC/Tc/Utils/Instantiate.hs
- compiler/GHC/ThToHs.hs
- compiler/GHC/Types/ForeignCall.hs
- compiler/GHC/Types/Id/Make.hs
- compiler/GHC/Unit/Module/Warnings.hs
- docs/users_guide/using.rst
- libraries/base/changelog.md
- libraries/ghc-internal/src/GHC/Internal/Exception/Type.hs
- libraries/ghc-internal/src/GHC/Internal/Ix.hs
- testsuite/.gitignore
- testsuite/Makefile
- testsuite/driver/runtests.py
- testsuite/driver/term_color.py
- testsuite/driver/testlib.py
- testsuite/tests/ghc-e/should_fail/T18441fail7.stderr
- testsuite/tests/ghc-e/should_run/ghc-e005.stderr
- testsuite/tests/hiefile/should_compile/T24493.stderr
- + testsuite/tests/hiefile/should_run/T25709.hs
- + testsuite/tests/hiefile/should_run/T25709.stdout
- testsuite/tests/hiefile/should_run/all.T
- + testsuite/tests/saks/should_compile/T18725a.hs
- testsuite/tests/saks/should_compile/all.T
- + testsuite/tests/saks/should_fail/T18725b.hs
- + testsuite/tests/saks/should_fail/T18725b.stderr
- testsuite/tests/saks/should_fail/all.T
- testsuite/tests/tcplugins/TcPlugin_RewritePerf.hs
- testsuite/tests/tcplugins/TcPlugin_RewritePerf.stderr
- + testsuite/tests/th/T20902.hs
- testsuite/tests/th/all.T
- utils/check-exact/ExactPrint.hs
- utils/haddock/haddock-api/src/Haddock/Types.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a1f9aa34aaefae90b460133be3bfe6…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a1f9aa34aaefae90b460133be3bfe6…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/ci-stages] fixup! ci: build and test stage
by Magnus (@MangoIV) 07 Aug '26
by Magnus (@MangoIV) 07 Aug '26
07 Aug '26
Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
a1f9aa34 by mangoiv at 2026-08-07T16:49:06+02:00
fixup! ci: build and test stage
- - - - -
2 changed files:
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
Changes:
=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -1032,7 +1032,7 @@ releaseRule = setJobRule ReleaseOnly
-- | Make a normal nightly CI job
nightly :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
nightly arch opsys bc =
- let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys bc { extendName = ("nightly-" <>) }
+ let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys bc { extendName = ("nightly-" <>) . bc.extendName }
mkJob NamedJob {name, jobInfo}
= NamedJob { name
, jobInfo = nightlyRule
@@ -1044,7 +1044,7 @@ nightly arch opsys bc =
-- | Make a normal release CI job
release :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
release arch opsys bc =
- let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys (bc { buildFlavour = Release, extendName = ("release-" <>) })
+ let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys (bc { buildFlavour = Release, extendName = ("release-" <>) . bc.extendName })
mkJob NamedJob {name, jobInfo} = NamedJob { name
, jobInfo = releaseRule
. keepArtifacts "1 year"
@@ -1245,7 +1245,7 @@ fedora_x86 =
-- validate pipeline which is built with perf.
fastCI (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig)
-- This job is only for generating head.hackage docs
- , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig { extendName = (<> "-hackage")}))
+ , hackage_doc_job
, disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Fedora43))
-- For UBSan jobs, only enable for validate/nightly pipelines.
@@ -1259,7 +1259,10 @@ fedora_x86 =
$ validateBuilds Amd64 (Linux Fedora43) enableUBSan
]
where
- hackage_doc_job = modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
+ hackage_doc_job
+ = modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage") $
+ disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43)
+ releaseConfig { extendName = (<> "-hackage") . releaseConfig.extendName })
windows_x86 :: [JobGroup Job]
windows_x86 =
=====================================
.gitlab/jobs.yaml
=====================================
@@ -6154,6 +6154,68 @@
}
},
"nightly-x86_64-linux-fedora43-release": {
+ "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-fedora43-release.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-linux-fedora43-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
+ "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"
+ ],
+ "stage": "full-build",
+ "tags": [
+ "x86_64-linux"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
+ "BUILD_FLAVOUR": "release",
+ "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-linux-fedora43-release",
+ "TEST_WAYS": "",
+ "XZ_OPT": "-9"
+ }
+ },
+ "nightly-x86_64-linux-fedora43-release-hackage": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6216,6 +6278,67 @@
"XZ_OPT": "-9"
}
},
+ "nightly-x86_64-linux-fedora43-release-hackage-test": {
+ "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-fedora43-release.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-linux-fedora43-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
+ "needs": [
+ {
+ "artifacts": true,
+ "job": "nightly-x86_64-linux-fedora43-release-hackage"
+ }
+ ],
+ "rules": [
+ {
+ "if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
+ "when": "on_success"
+ }
+ ],
+ "script": [
+ ".gitlab/ci.sh setup",
+ ".gitlab/ci.sh test_hadrian"
+ ],
+ "stage": "testing",
+ "tags": [
+ "x86_64-linux"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
+ "BUILD_FLAVOUR": "release",
+ "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "HADRIAN_ARGS": "--haddock-for-hackage",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-linux-fedora43-release",
+ "TEST_WAYS": "",
+ "XZ_OPT": "-9"
+ }
+ },
"nightly-x86_64-linux-fedora43-release-test": {
"after_script": [
".gitlab/ci.sh save_cache",
@@ -6269,7 +6392,6 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
- "HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora43-release",
@@ -9845,6 +9967,132 @@
"XZ_OPT": "-9"
}
},
+ "release-x86_64-linux-fedora43-release-hackage": {
+ "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-fedora43-release.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-linux-fedora43-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
+ "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"
+ ],
+ "stage": "full-build",
+ "tags": [
+ "x86_64-linux"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
+ "BUILD_FLAVOUR": "release",
+ "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "HADRIAN_ARGS": "--haddock-for-hackage",
+ "IGNORE_PERF_FAILURES": "all",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-linux-fedora43-release",
+ "TEST_WAYS": "",
+ "XZ_OPT": "-9"
+ }
+ },
+ "release-x86_64-linux-fedora43-release-hackage-test": {
+ "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-fedora43-release.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-linux-fedora43-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
+ "needs": [
+ {
+ "artifacts": true,
+ "job": "release-x86_64-linux-fedora43-release-hackage"
+ }
+ ],
+ "rules": [
+ {
+ "if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
+ "when": "on_success"
+ }
+ ],
+ "script": [
+ ".gitlab/ci.sh setup",
+ ".gitlab/ci.sh test_hadrian"
+ ],
+ "stage": "testing",
+ "tags": [
+ "x86_64-linux"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
+ "BUILD_FLAVOUR": "release",
+ "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "HADRIAN_ARGS": "--haddock-for-hackage",
+ "IGNORE_PERF_FAILURES": "all",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-linux-fedora43-release",
+ "TEST_WAYS": "",
+ "XZ_OPT": "-9"
+ }
+ },
"release-x86_64-linux-fedora43-release-test": {
"after_script": [
".gitlab/ci.sh save_cache",
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/a1f9aa34aaefae90b460133be3bfe68…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/a1f9aa34aaefae90b460133be3bfe68…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/ci-stages] fixup! ci: build and test stage
by Magnus (@MangoIV) 07 Aug '26
by Magnus (@MangoIV) 07 Aug '26
07 Aug '26
Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
59fa379a by mangoiv at 2026-08-07T16:43:41+02:00
fixup! ci: build and test stage
- - - - -
2 changed files:
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
Changes:
=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -860,7 +860,7 @@ job arch opsys buildConfig =
jobRules = emptyRules jobName
- jobName = testEnv arch opsys buildConfig <> (extendName buildConfig "")
+ jobName = extendName buildConfig $ testEnv arch opsys buildConfig
jobTags = tags arch opsys buildConfig
=====================================
.gitlab/jobs.yaml
=====================================
The diff for this file was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/59fa379adc208fb8c2862536689f8c2…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/59fa379adc208fb8c2862536689f8c2…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/ci-stages] fixup! ci: build and test stage
by Magnus (@MangoIV) 07 Aug '26
by Magnus (@MangoIV) 07 Aug '26
07 Aug '26
Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
5a8f1182 by mangoiv at 2026-08-07T16:39:55+02:00
fixup! ci: build and test stage
- - - - -
2 changed files:
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
Changes:
=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -1032,7 +1032,7 @@ releaseRule = setJobRule ReleaseOnly
-- | Make a normal nightly CI job
nightly :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
nightly arch opsys bc =
- let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys bc { extendName = ("nightly" <>) }
+ let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys bc { extendName = ("nightly-" <>) }
mkJob NamedJob {name, jobInfo}
= NamedJob { name
, jobInfo = nightlyRule
@@ -1044,7 +1044,7 @@ nightly arch opsys bc =
-- | Make a normal release CI job
release :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
release arch opsys bc =
- let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys (bc { buildFlavour = Release, extendName = ("release" <>) })
+ let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys (bc { buildFlavour = Release, extendName = ("release-" <>) })
mkJob NamedJob {name, jobInfo} = NamedJob { name
, jobInfo = releaseRule
. keepArtifacts "1 year"
@@ -1245,7 +1245,7 @@ fedora_x86 =
-- validate pipeline which is built with perf.
fastCI (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig)
-- This job is only for generating head.hackage docs
- , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig { extendName = (<> "hackage")}))
+ , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig { extendName = (<> "-hackage")}))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Fedora43))
-- For UBSan jobs, only enable for validate/nightly pipelines.
=====================================
.gitlab/jobs.yaml
=====================================
@@ -1,6 +1,6 @@
### THIS IS A GENERATED FILE, DO NOT MODIFY DIRECTLY
{
- "aarch64-darwin-releaserelease": {
+ "aarch64-darwin-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -67,7 +67,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-darwin-releaserelease-test": {
+ "aarch64-darwin-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -98,7 +98,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-darwin-releaserelease"
+ "job": "aarch64-darwin-releaserelease-"
}
],
"rules": [
@@ -260,7 +260,7 @@
"TEST_WAYS": ""
}
},
- "aarch64-darwin-validatenightly": {
+ "aarch64-darwin-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -326,7 +326,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-darwin-validatenightly-test": {
+ "aarch64-darwin-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -357,7 +357,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-darwin-validatenightly"
+ "job": "aarch64-darwin-validatenightly-"
}
],
"rules": [
@@ -390,7 +390,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-alpine3_23-release+no_split_sectionsrelease": {
+ "aarch64-linux-alpine3_23-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -454,7 +454,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-alpine3_23-release+no_split_sectionsrelease-test": {
+ "aarch64-linux-alpine3_23-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -485,7 +485,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-alpine3_23-release+no_split_sectionsrelease"
+ "job": "aarch64-linux-alpine3_23-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -638,7 +638,7 @@
"TEST_WAYS": ""
}
},
- "aarch64-linux-alpine3_23-validatenightly": {
+ "aarch64-linux-alpine3_23-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -701,7 +701,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-alpine3_23-validatenightly-test": {
+ "aarch64-linux-alpine3_23-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -732,7 +732,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-alpine3_23-validatenightly"
+ "job": "aarch64-linux-alpine3_23-validatenightly-"
}
],
"rules": [
@@ -762,7 +762,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb11-release+no_split_sectionsrelease": {
+ "aarch64-linux-deb11-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -825,7 +825,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb11-release+no_split_sectionsrelease-test": {
+ "aarch64-linux-deb11-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -856,7 +856,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb11-release+no_split_sectionsrelease"
+ "job": "aarch64-linux-deb11-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -1006,7 +1006,7 @@
"TEST_WAYS": ""
}
},
- "aarch64-linux-deb11-validatenightly": {
+ "aarch64-linux-deb11-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1068,7 +1068,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb11-validatenightly-test": {
+ "aarch64-linux-deb11-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1099,7 +1099,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb11-validatenightly"
+ "job": "aarch64-linux-deb11-validatenightly-"
}
],
"rules": [
@@ -1128,7 +1128,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb12-release+no_split_sectionsrelease": {
+ "aarch64-linux-deb12-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1191,7 +1191,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb12-release+no_split_sectionsrelease-test": {
+ "aarch64-linux-deb12-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1222,7 +1222,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb12-release+no_split_sectionsrelease"
+ "job": "aarch64-linux-deb12-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -1372,7 +1372,7 @@
"TEST_WAYS": ""
}
},
- "aarch64-linux-deb12-validatenightly": {
+ "aarch64-linux-deb12-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1434,7 +1434,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb12-validatenightly-test": {
+ "aarch64-linux-deb12-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1465,7 +1465,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb12-validatenightly"
+ "job": "aarch64-linux-deb12-validatenightly-"
}
],
"rules": [
@@ -1738,7 +1738,7 @@
"WindresCmd": "/opt/llvm-mingw-linux/bin/aarch64-w64-mingw32-windres"
}
},
- "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate+llvmnightly": {
+ "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate+llvmnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1821,7 +1821,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate+llvmnightly-test": {
+ "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate+llvmnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -1852,7 +1852,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate+llvmnightly"
+ "job": "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validate+llvmnightly-"
}
],
"rules": [
@@ -1982,7 +1982,7 @@
"WindresCmd": "/opt/llvm-mingw-linux/bin/aarch64-w64-mingw32-windres"
}
},
- "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validatenightly": {
+ "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2065,7 +2065,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validatenightly-test": {
+ "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2096,7 +2096,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validatenightly"
+ "job": "aarch64-linux-deb12-wine-int_native-cross_aarch64-unknown-mingw32-validatenightly-"
}
],
"rules": [
@@ -2146,7 +2146,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb13-release+no_split_sectionsrelease": {
+ "aarch64-linux-deb13-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2209,7 +2209,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb13-release+no_split_sectionsrelease-test": {
+ "aarch64-linux-deb13-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2240,7 +2240,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb13-release+no_split_sectionsrelease"
+ "job": "aarch64-linux-deb13-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -2451,7 +2451,7 @@
"TEST_WAYS": "llvm optllvm"
}
},
- "aarch64-linux-deb13-validate+llvmnightly": {
+ "aarch64-linux-deb13-validate+llvmnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2513,7 +2513,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb13-validate+llvmnightly-test": {
+ "aarch64-linux-deb13-validate+llvmnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2544,7 +2544,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb13-validate+llvmnightly"
+ "job": "aarch64-linux-deb13-validate+llvmnightly-"
}
],
"rules": [
@@ -2632,7 +2632,7 @@
"TEST_WAYS": ""
}
},
- "aarch64-linux-deb13-validatenightly": {
+ "aarch64-linux-deb13-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2694,7 +2694,7 @@
"XZ_OPT": "-9"
}
},
- "aarch64-linux-deb13-validatenightly-test": {
+ "aarch64-linux-deb13-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2725,7 +2725,7 @@
"needs": [
{
"artifacts": true,
- "job": "aarch64-linux-deb13-validatenightly"
+ "job": "aarch64-linux-deb13-validatenightly-"
}
],
"rules": [
@@ -2754,7 +2754,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-alpine3_23-release+no_split_sectionsrelease": {
+ "i386-linux-alpine3_23-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2818,7 +2818,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-alpine3_23-release+no_split_sectionsrelease-test": {
+ "i386-linux-alpine3_23-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -2849,7 +2849,7 @@
"needs": [
{
"artifacts": true,
- "job": "i386-linux-alpine3_23-release+no_split_sectionsrelease"
+ "job": "i386-linux-alpine3_23-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -3002,7 +3002,7 @@
"TEST_WAYS": ""
}
},
- "i386-linux-alpine3_23-validatenightly": {
+ "i386-linux-alpine3_23-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3065,7 +3065,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-alpine3_23-validatenightly-test": {
+ "i386-linux-alpine3_23-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3096,7 +3096,7 @@
"needs": [
{
"artifacts": true,
- "job": "i386-linux-alpine3_23-validatenightly"
+ "job": "i386-linux-alpine3_23-validatenightly-"
}
],
"rules": [
@@ -3126,7 +3126,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb11-release+no_split_sectionsrelease": {
+ "i386-linux-deb11-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3189,7 +3189,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb11-release+no_split_sectionsrelease-test": {
+ "i386-linux-deb11-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3220,7 +3220,7 @@
"needs": [
{
"artifacts": true,
- "job": "i386-linux-deb11-release+no_split_sectionsrelease"
+ "job": "i386-linux-deb11-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -3370,7 +3370,7 @@
"TEST_WAYS": ""
}
},
- "i386-linux-deb11-validatenightly": {
+ "i386-linux-deb11-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3432,7 +3432,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb11-validatenightly-test": {
+ "i386-linux-deb11-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3463,7 +3463,7 @@
"needs": [
{
"artifacts": true,
- "job": "i386-linux-deb11-validatenightly"
+ "job": "i386-linux-deb11-validatenightly-"
}
],
"rules": [
@@ -3492,7 +3492,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb12-release+no_split_sectionsrelease": {
+ "i386-linux-deb12-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3555,7 +3555,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb12-release+no_split_sectionsrelease-test": {
+ "i386-linux-deb12-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3586,7 +3586,7 @@
"needs": [
{
"artifacts": true,
- "job": "i386-linux-deb12-release+no_split_sectionsrelease"
+ "job": "i386-linux-deb12-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -3736,7 +3736,7 @@
"TEST_WAYS": ""
}
},
- "i386-linux-deb12-validatenightly": {
+ "i386-linux-deb12-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3798,7 +3798,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb12-validatenightly-test": {
+ "i386-linux-deb12-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3829,7 +3829,7 @@
"needs": [
{
"artifacts": true,
- "job": "i386-linux-deb12-validatenightly"
+ "job": "i386-linux-deb12-validatenightly-"
}
],
"rules": [
@@ -3858,7 +3858,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb13-release+no_split_sectionsrelease": {
+ "i386-linux-deb13-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3921,7 +3921,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb13-release+no_split_sectionsrelease-test": {
+ "i386-linux-deb13-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -3952,7 +3952,7 @@
"needs": [
{
"artifacts": true,
- "job": "i386-linux-deb13-release+no_split_sectionsrelease"
+ "job": "i386-linux-deb13-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -4102,7 +4102,7 @@
"TEST_WAYS": ""
}
},
- "i386-linux-deb13-validatenightly": {
+ "i386-linux-deb13-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4164,7 +4164,7 @@
"XZ_OPT": "-9"
}
},
- "i386-linux-deb13-validatenightly-test": {
+ "i386-linux-deb13-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4195,7 +4195,7 @@
"needs": [
{
"artifacts": true,
- "job": "i386-linux-deb13-validatenightly"
+ "job": "i386-linux-deb13-validatenightly-"
}
],
"rules": [
@@ -4224,7 +4224,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-darwin-releaserelease": {
+ "x86_64-darwin-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4294,7 +4294,7 @@
"ac_cv_func_utimensat": "no"
}
},
- "x86_64-darwin-releaserelease-test": {
+ "x86_64-darwin-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4325,7 +4325,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-darwin-releaserelease"
+ "job": "x86_64-darwin-releaserelease-"
}
],
"rules": [
@@ -4496,7 +4496,7 @@
"ac_cv_func_utimensat": "no"
}
},
- "x86_64-darwin-validatenightly": {
+ "x86_64-darwin-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4565,7 +4565,7 @@
"ac_cv_func_utimensat": "no"
}
},
- "x86_64-darwin-validatenightly-test": {
+ "x86_64-darwin-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4596,7 +4596,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-darwin-validatenightly"
+ "job": "x86_64-darwin-validatenightly-"
}
],
"rules": [
@@ -4632,7 +4632,7 @@
"ac_cv_func_utimensat": "no"
}
},
- "x86_64-freebsd14-release+no_split_sectionsrelease": {
+ "x86_64-freebsd14-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4698,7 +4698,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-freebsd14-release+no_split_sectionsrelease-test": {
+ "x86_64-freebsd14-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4729,7 +4729,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-freebsd14-release+no_split_sectionsrelease"
+ "job": "x86_64-freebsd14-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -4890,7 +4890,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-freebsd14-validatenightly": {
+ "x86_64-freebsd14-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4955,7 +4955,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-freebsd14-validatenightly-test": {
+ "x86_64-freebsd14-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -4986,7 +4986,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-freebsd14-validatenightly"
+ "job": "x86_64-freebsd14-validatenightly-"
}
],
"rules": [
@@ -5019,7 +5019,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_12-int_native-release+fully_staticrelease": {
+ "x86_64-linux-alpine3_12-int_native-release+fully_staticrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5083,7 +5083,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_12-int_native-release+fully_staticrelease-test": {
+ "x86_64-linux-alpine3_12-int_native-release+fully_staticrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5114,7 +5114,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_12-int_native-release+fully_staticrelease"
+ "job": "x86_64-linux-alpine3_12-int_native-release+fully_staticrelease-"
}
],
"rules": [
@@ -5267,7 +5267,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-alpine3_12-int_native-validate+fully_staticnightly": {
+ "x86_64-linux-alpine3_12-int_native-validate+fully_staticnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5330,7 +5330,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_12-int_native-validate+fully_staticnightly-test": {
+ "x86_64-linux-alpine3_12-int_native-validate+fully_staticnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5361,7 +5361,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_12-int_native-validate+fully_staticnightly"
+ "job": "x86_64-linux-alpine3_12-int_native-validate+fully_staticnightly-"
}
],
"rules": [
@@ -5391,7 +5391,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_12-release+fully_static+no_split_sectionsrelease": {
+ "x86_64-linux-alpine3_12-release+fully_static+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5455,7 +5455,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_12-release+fully_static+no_split_sectionsrelease-test": {
+ "x86_64-linux-alpine3_12-release+fully_static+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5486,7 +5486,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_12-release+fully_static+no_split_sectionsrelease"
+ "job": "x86_64-linux-alpine3_12-release+fully_static+no_split_sectionsrelease-"
}
],
"rules": [
@@ -5639,7 +5639,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-alpine3_12-validate+fully_staticnightly": {
+ "x86_64-linux-alpine3_12-validate+fully_staticnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5702,7 +5702,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_12-validate+fully_staticnightly-test": {
+ "x86_64-linux-alpine3_12-validate+fully_staticnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5733,7 +5733,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_12-validate+fully_staticnightly"
+ "job": "x86_64-linux-alpine3_12-validate+fully_staticnightly-"
}
],
"rules": [
@@ -5763,7 +5763,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_23-release+no_split_sectionsrelease": {
+ "x86_64-linux-alpine3_23-release+no_split_sectionsrelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5827,7 +5827,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_23-release+no_split_sectionsrelease-test": {
+ "x86_64-linux-alpine3_23-release+no_split_sectionsrelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5858,7 +5858,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_23-release+no_split_sectionsrelease"
+ "job": "x86_64-linux-alpine3_23-release+no_split_sectionsrelease-"
}
],
"rules": [
@@ -6011,7 +6011,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-alpine3_23-validatenightly": {
+ "x86_64-linux-alpine3_23-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6074,7 +6074,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_23-validatenightly-test": {
+ "x86_64-linux-alpine3_23-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6105,7 +6105,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_23-validatenightly"
+ "job": "x86_64-linux-alpine3_23-validatenightly-"
}
],
"rules": [
@@ -6261,7 +6261,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-alpine3_23-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly": {
+ "x86_64-linux-alpine3_23-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6326,7 +6326,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_23-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-test": {
+ "x86_64-linux-alpine3_23-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6357,7 +6357,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_23-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly"
+ "job": "x86_64-linux-alpine3_23-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-"
}
],
"rules": [
@@ -6517,7 +6517,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-alpine3_23-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly": {
+ "x86_64-linux-alpine3_23-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6582,7 +6582,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_23-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-test": {
+ "x86_64-linux-alpine3_23-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6613,7 +6613,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_23-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly"
+ "job": "x86_64-linux-alpine3_23-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-"
}
],
"rules": [
@@ -6773,7 +6773,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-alpine3_23-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly": {
+ "x86_64-linux-alpine3_23-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6838,7 +6838,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-alpine3_23-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-test": {
+ "x86_64-linux-alpine3_23-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6869,7 +6869,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-alpine3_23-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly"
+ "job": "x86_64-linux-alpine3_23-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutfnightly-"
}
],
"rules": [
@@ -7027,7 +7027,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validatenightly": {
+ "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7092,7 +7092,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validatenightly-test": {
+ "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7123,7 +7123,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validatenightly"
+ "job": "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validatenightly-"
}
],
"rules": [
@@ -7155,7 +7155,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb11-release+debug_inforelease": {
+ "x86_64-linux-deb11-release+debug_inforelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7218,7 +7218,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb11-release+debug_inforelease-test": {
+ "x86_64-linux-deb11-release+debug_inforelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7249,7 +7249,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb11-release+debug_inforelease"
+ "job": "x86_64-linux-deb11-release+debug_inforelease-"
}
],
"rules": [
@@ -7279,7 +7279,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb11-releaserelease": {
+ "x86_64-linux-deb11-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7342,7 +7342,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb11-releaserelease-test": {
+ "x86_64-linux-deb11-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7373,7 +7373,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb11-releaserelease"
+ "job": "x86_64-linux-deb11-releaserelease-"
}
],
"rules": [
@@ -7584,7 +7584,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb11-validate+debug_infonightly": {
+ "x86_64-linux-deb11-validate+debug_infonightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7646,7 +7646,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb11-validate+debug_infonightly-test": {
+ "x86_64-linux-deb11-validate+debug_infonightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7677,7 +7677,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb11-validate+debug_infonightly"
+ "job": "x86_64-linux-deb11-validate+debug_infonightly-"
}
],
"rules": [
@@ -7765,7 +7765,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb11-validatenightly": {
+ "x86_64-linux-deb11-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7827,7 +7827,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb11-validatenightly-test": {
+ "x86_64-linux-deb11-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7858,7 +7858,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb11-validatenightly"
+ "job": "x86_64-linux-deb11-validatenightly-"
}
],
"rules": [
@@ -7887,7 +7887,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb12-releaserelease": {
+ "x86_64-linux-deb12-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7950,7 +7950,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb12-releaserelease-test": {
+ "x86_64-linux-deb12-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -7981,7 +7981,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb12-releaserelease"
+ "job": "x86_64-linux-deb12-releaserelease-"
}
],
"rules": [
@@ -8131,7 +8131,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb12-validatenightly": {
+ "x86_64-linux-deb12-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -8193,7 +8193,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb12-validatenightly-test": {
+ "x86_64-linux-deb12-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -8224,7 +8224,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb12-validatenightly"
+ "job": "x86_64-linux-deb12-validatenightly-"
}
],
"rules": [
@@ -8379,7 +8379,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-cross_aarch64-linux-gnu-validatenightly": {
+ "x86_64-linux-deb13-cross_aarch64-linux-gnu-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -8444,7 +8444,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-cross_aarch64-linux-gnu-validatenightly-test": {
+ "x86_64-linux-deb13-cross_aarch64-linux-gnu-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -8475,7 +8475,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-cross_aarch64-linux-gnu-validatenightly"
+ "job": "x86_64-linux-deb13-cross_aarch64-linux-gnu-validatenightly-"
}
],
"rules": [
@@ -8627,7 +8627,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-int_native-validatenightly": {
+ "x86_64-linux-deb13-int_native-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -8689,7 +8689,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-int_native-validatenightly-test": {
+ "x86_64-linux-deb13-int_native-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -8720,7 +8720,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-int_native-validatenightly"
+ "job": "x86_64-linux-deb13-int_native-validatenightly-"
}
],
"rules": [
@@ -8871,7 +8871,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-no_tntc-validatenightly": {
+ "x86_64-linux-deb13-no_tntc-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -8933,7 +8933,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-no_tntc-validatenightly-test": {
+ "x86_64-linux-deb13-no_tntc-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -8964,7 +8964,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-no_tntc-validatenightly"
+ "job": "x86_64-linux-deb13-no_tntc-validatenightly-"
}
],
"rules": [
@@ -9115,7 +9115,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-numa-slow-validatenightly": {
+ "x86_64-linux-deb13-numa-slow-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9178,7 +9178,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-numa-slow-validatenightly-test": {
+ "x86_64-linux-deb13-numa-slow-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9209,7 +9209,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-numa-slow-validatenightly"
+ "job": "x86_64-linux-deb13-numa-slow-validatenightly-"
}
],
"rules": [
@@ -9418,7 +9418,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-releasenightly": {
+ "x86_64-linux-deb13-releasenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9480,7 +9480,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-releasenightly-test": {
+ "x86_64-linux-deb13-releasenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9511,7 +9511,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-releasenightly"
+ "job": "x86_64-linux-deb13-releasenightly-"
}
],
"rules": [
@@ -9540,7 +9540,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-releasenightly-testperf": {
+ "x86_64-linux-deb13-releasenightly--testperf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9571,7 +9571,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-releasenightly"
+ "job": "x86_64-linux-deb13-releasenightly-"
}
],
"rules": [
@@ -9600,7 +9600,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-releaserelease": {
+ "x86_64-linux-deb13-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9663,7 +9663,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-releaserelease-test": {
+ "x86_64-linux-deb13-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9694,7 +9694,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-releaserelease"
+ "job": "x86_64-linux-deb13-releaserelease-"
}
],
"rules": [
@@ -9850,7 +9850,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-riscv-cross_riscv64-linux-gnu-validatenightly": {
+ "x86_64-linux-deb13-riscv-cross_riscv64-linux-gnu-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9915,7 +9915,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-riscv-cross_riscv64-linux-gnu-validatenightly-test": {
+ "x86_64-linux-deb13-riscv-cross_riscv64-linux-gnu-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -9946,7 +9946,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-riscv-cross_riscv64-linux-gnu-validatenightly"
+ "job": "x86_64-linux-deb13-riscv-cross_riscv64-linux-gnu-validatenightly-"
}
],
"rules": [
@@ -10098,7 +10098,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-unreg-validatenightly": {
+ "x86_64-linux-deb13-unreg-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10160,7 +10160,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-unreg-validatenightly-test": {
+ "x86_64-linux-deb13-unreg-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10191,7 +10191,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-unreg-validatenightly"
+ "job": "x86_64-linux-deb13-unreg-validatenightly-"
}
],
"rules": [
@@ -10401,7 +10401,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-validate+boot_nonmoving_gcnightly": {
+ "x86_64-linux-deb13-validate+boot_nonmoving_gcnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10463,7 +10463,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-validate+boot_nonmoving_gcnightly-test": {
+ "x86_64-linux-deb13-validate+boot_nonmoving_gcnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10494,7 +10494,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-validate+boot_nonmoving_gcnightly"
+ "job": "x86_64-linux-deb13-validate+boot_nonmoving_gcnightly-"
}
],
"rules": [
@@ -10643,7 +10643,7 @@
"TEST_WAYS": "llvm optllvm"
}
},
- "x86_64-linux-deb13-validate+llvmnightly": {
+ "x86_64-linux-deb13-validate+llvmnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10705,7 +10705,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-validate+llvmnightly-test": {
+ "x86_64-linux-deb13-validate+llvmnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10736,7 +10736,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-validate+llvmnightly"
+ "job": "x86_64-linux-deb13-validate+llvmnightly-"
}
],
"rules": [
@@ -10891,7 +10891,7 @@
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
}
},
- "x86_64-linux-deb13-validate+thread_sanitizer_cmmnightly": {
+ "x86_64-linux-deb13-validate+thread_sanitizer_cmmnightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10955,7 +10955,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-validate+thread_sanitizer_cmmnightly-test": {
+ "x86_64-linux-deb13-validate+thread_sanitizer_cmmnightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10986,7 +10986,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-validate+thread_sanitizer_cmmnightly"
+ "job": "x86_64-linux-deb13-validate+thread_sanitizer_cmmnightly-"
}
],
"rules": [
@@ -11076,7 +11076,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-validatenightly": {
+ "x86_64-linux-deb13-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11138,7 +11138,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-validatenightly-test": {
+ "x86_64-linux-deb13-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11169,7 +11169,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-validatenightly"
+ "job": "x86_64-linux-deb13-validatenightly-"
}
],
"rules": [
@@ -11318,7 +11318,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-zstd-validatenightly": {
+ "x86_64-linux-deb13-zstd-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11380,7 +11380,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-deb13-zstd-validatenightly-test": {
+ "x86_64-linux-deb13-zstd-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11411,7 +11411,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-deb13-zstd-validatenightly"
+ "job": "x86_64-linux-deb13-zstd-validatenightly-"
}
],
"rules": [
@@ -11501,7 +11501,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-fedora43-release+debug_inforelease": {
+ "x86_64-linux-fedora43-release+debug_inforelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11564,7 +11564,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-fedora43-release+debug_inforelease-test": {
+ "x86_64-linux-fedora43-release+debug_inforelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11595,7 +11595,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-release+debug_inforelease"
+ "job": "x86_64-linux-fedora43-release+debug_inforelease-"
}
],
"rules": [
@@ -11625,7 +11625,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-fedora43-release-test": {
+ "x86_64-linux-fedora43-release-hackage": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11655,21 +11655,23 @@
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
"needs": [
{
- "artifacts": true,
- "job": "x86_64-linux-fedora43-release"
+ "artifacts": false,
+ "job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release-hackage(\\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 test_hadrian"
+ ".gitlab/ci.sh configure",
+ ".gitlab/ci.sh build_hadrian"
],
- "stage": "testing",
+ "stage": "full-build",
"tags": [
"x86_64-linux"
],
@@ -11678,13 +11680,14 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora43-release",
"TEST_WAYS": ""
}
},
- "x86_64-linux-fedora43-releasehackage": {
+ "x86_64-linux-fedora43-release-hackage-test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11714,23 +11717,21 @@
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV",
"needs": [
{
- "artifacts": false,
- "job": "hadrian-ghc-in-ghci"
+ "artifacts": true,
+ "job": "x86_64-linux-fedora43-release-hackage"
}
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-releasehackage(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release-hackage(\\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",
+ "stage": "testing",
"tags": [
"x86_64-linux"
],
@@ -11746,7 +11747,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-fedora43-releasehackage-test": {
+ "x86_64-linux-fedora43-release-test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11777,12 +11778,12 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-releasehackage"
+ "job": "x86_64-linux-fedora43-release"
}
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-releasehackage(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
@@ -11799,14 +11800,13 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
- "HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora43-release",
"TEST_WAYS": ""
}
},
- "x86_64-linux-fedora43-releasenightly": {
+ "x86_64-linux-fedora43-releasenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11869,7 +11869,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-fedora43-releasenightly-test": {
+ "x86_64-linux-fedora43-releasenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11900,7 +11900,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-releasenightly"
+ "job": "x86_64-linux-fedora43-releasenightly-"
}
],
"rules": [
@@ -11930,7 +11930,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-fedora43-releaserelease": {
+ "x86_64-linux-fedora43-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -11993,7 +11993,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-fedora43-releaserelease-test": {
+ "x86_64-linux-fedora43-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12024,7 +12024,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-releaserelease"
+ "job": "x86_64-linux-fedora43-releaserelease-"
}
],
"rules": [
@@ -12300,7 +12300,7 @@
"UBSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.ubsan-suppressions"
}
},
- "x86_64-linux-fedora43-validate+debug_info+ubsannightly": {
+ "x86_64-linux-fedora43-validate+debug_info+ubsannightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12364,7 +12364,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-fedora43-validate+debug_info+ubsannightly-test": {
+ "x86_64-linux-fedora43-validate+debug_info+ubsannightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12395,7 +12395,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-validate+debug_info+ubsannightly"
+ "job": "x86_64-linux-fedora43-validate+debug_info+ubsannightly-"
}
],
"rules": [
@@ -12485,7 +12485,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-fedora43-validate+debug_infonightly": {
+ "x86_64-linux-fedora43-validate+debug_infonightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12547,7 +12547,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-fedora43-validate+debug_infonightly-test": {
+ "x86_64-linux-fedora43-validate+debug_infonightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12578,7 +12578,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-validate+debug_infonightly"
+ "job": "x86_64-linux-fedora43-validate+debug_infonightly-"
}
],
"rules": [
@@ -12666,7 +12666,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-fedora43-validatenightly": {
+ "x86_64-linux-fedora43-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12728,7 +12728,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-fedora43-validatenightly-test": {
+ "x86_64-linux-fedora43-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12759,7 +12759,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-validatenightly"
+ "job": "x86_64-linux-fedora43-validatenightly-"
}
],
"rules": [
@@ -12788,7 +12788,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-rocky8-releaserelease": {
+ "x86_64-linux-rocky8-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12851,7 +12851,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-rocky8-releaserelease-test": {
+ "x86_64-linux-rocky8-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12882,7 +12882,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-rocky8-releaserelease"
+ "job": "x86_64-linux-rocky8-releaserelease-"
}
],
"rules": [
@@ -13032,7 +13032,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-rocky8-validatenightly": {
+ "x86_64-linux-rocky8-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13094,7 +13094,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-rocky8-validatenightly-test": {
+ "x86_64-linux-rocky8-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13125,7 +13125,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-rocky8-validatenightly"
+ "job": "x86_64-linux-rocky8-validatenightly-"
}
],
"rules": [
@@ -13154,7 +13154,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-ubuntu22_04-releaserelease": {
+ "x86_64-linux-ubuntu22_04-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13217,7 +13217,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-ubuntu22_04-releaserelease-test": {
+ "x86_64-linux-ubuntu22_04-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13248,7 +13248,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-ubuntu22_04-releaserelease"
+ "job": "x86_64-linux-ubuntu22_04-releaserelease-"
}
],
"rules": [
@@ -13398,7 +13398,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-ubuntu22_04-validatenightly": {
+ "x86_64-linux-ubuntu22_04-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13460,7 +13460,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-ubuntu22_04-validatenightly-test": {
+ "x86_64-linux-ubuntu22_04-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13491,7 +13491,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-ubuntu22_04-validatenightly"
+ "job": "x86_64-linux-ubuntu22_04-validatenightly-"
}
],
"rules": [
@@ -13646,7 +13646,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-ubuntu24_04-loongarch-cross_loongarch64-linux-gnu-validatenightly": {
+ "x86_64-linux-ubuntu24_04-loongarch-cross_loongarch64-linux-gnu-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13711,7 +13711,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-ubuntu24_04-loongarch-cross_loongarch64-linux-gnu-validatenightly-test": {
+ "x86_64-linux-ubuntu24_04-loongarch-cross_loongarch64-linux-gnu-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13742,7 +13742,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-ubuntu24_04-loongarch-cross_loongarch64-linux-gnu-validatenightly"
+ "job": "x86_64-linux-ubuntu24_04-loongarch-cross_loongarch64-linux-gnu-validatenightly-"
}
],
"rules": [
@@ -13774,7 +13774,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-ubuntu24_04-releaserelease": {
+ "x86_64-linux-ubuntu24_04-releaserelease-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13837,7 +13837,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-ubuntu24_04-releaserelease-test": {
+ "x86_64-linux-ubuntu24_04-releaserelease--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13868,7 +13868,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-ubuntu24_04-releaserelease"
+ "job": "x86_64-linux-ubuntu24_04-releaserelease-"
}
],
"rules": [
@@ -14018,7 +14018,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-ubuntu24_04-validatenightly": {
+ "x86_64-linux-ubuntu24_04-validatenightly-": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -14080,7 +14080,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-linux-ubuntu24_04-validatenightly-test": {
+ "x86_64-linux-ubuntu24_04-validatenightly--test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -14111,7 +14111,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-ubuntu24_04-validatenightly"
+ "job": "x86_64-linux-ubuntu24_04-validatenightly-"
}
],
"rules": [
@@ -14140,7 +14140,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-windows-int_native-releaserelease": {
+ "x86_64-windows-int_native-releaserelease-": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
@@ -14203,7 +14203,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-windows-int_native-releaserelease-test": {
+ "x86_64-windows-int_native-releaserelease--test": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
@@ -14230,7 +14230,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-windows-int_native-releaserelease"
+ "job": "x86_64-windows-int_native-releaserelease-"
}
],
"rules": [
@@ -14386,7 +14386,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-windows-int_native-validatenightly": {
+ "x86_64-windows-int_native-validatenightly-": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
@@ -14448,7 +14448,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-windows-int_native-validatenightly-test": {
+ "x86_64-windows-int_native-validatenightly--test": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
@@ -14475,7 +14475,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-windows-int_native-validatenightly"
+ "job": "x86_64-windows-int_native-validatenightly-"
}
],
"rules": [
@@ -14509,7 +14509,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-windows-releaserelease": {
+ "x86_64-windows-releaserelease-": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
@@ -14572,7 +14572,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-windows-releaserelease-test": {
+ "x86_64-windows-releaserelease--test": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
@@ -14599,7 +14599,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-windows-releaserelease"
+ "job": "x86_64-windows-releaserelease-"
}
],
"rules": [
@@ -14755,7 +14755,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-windows-validatenightly": {
+ "x86_64-windows-validatenightly-": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
@@ -14817,7 +14817,7 @@
"XZ_OPT": "-9"
}
},
- "x86_64-windows-validatenightly-test": {
+ "x86_64-windows-validatenightly--test": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
@@ -14844,7 +14844,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-windows-validatenightly"
+ "job": "x86_64-windows-validatenightly-"
}
],
"rules": [
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/5a8f1182fe187f021f3d034dfe5a15a…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/5a8f1182fe187f021f3d034dfe5a15a…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/ci-stages] fixup! ci: build and test stage
by Magnus (@MangoIV) 07 Aug '26
by Magnus (@MangoIV) 07 Aug '26
07 Aug '26
Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
06d92ba9 by mangoiv at 2026-08-07T16:36:01+02:00
fixup! ci: build and test stage
- - - - -
2 changed files:
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/06d92ba951bbda5ad56867430eec085…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/06d92ba951bbda5ad56867430eec085…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/ci-stages] fixup! ci: build and test stage
by Magnus (@MangoIV) 07 Aug '26
by Magnus (@MangoIV) 07 Aug '26
07 Aug '26
Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
a3b7c581 by mangoiv at 2026-08-07T16:19:50+02:00
fixup! ci: build and test stage
- - - - -
2 changed files:
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
Changes:
=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -1032,24 +1032,24 @@ releaseRule = setJobRule ReleaseOnly
-- | Make a normal nightly CI job
nightly :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
nightly arch opsys bc =
- let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys bc
- mkJob (NamedJob n j)
- = NamedJob { name = "nightly-" ++ n
+ let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys bc { extendName = Just "nightly" }
+ mkJob NamedJob {name, jobInfo}
+ = NamedJob { name
, jobInfo = nightlyRule
. keepArtifacts "8 weeks"
- . highCompression $ j
+ . highCompression $ jobInfo
}
in MkBuildAndTestJob { buildJob = mkJob buildJob, testJobs = map mkJob testJobs}
-- | Make a normal release CI job
release :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
release arch opsys bc =
- let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys (bc { buildFlavour = Release })
- mkJob (NamedJob n j) = NamedJob { name = "release-" ++ n
+ let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys (bc { buildFlavour = Release, extendName = Just "release" })
+ mkJob NamedJob {name, jobInfo} = NamedJob { name
, jobInfo = releaseRule
. keepArtifacts "1 year"
. ignorePerfFailures
- . highCompression $ j
+ . highCompression $ jobInfo
}
in MkBuildAndTestJob {buildJob = mkJob buildJob, testJobs = map mkJob testJobs}
---------------------------------------------------------------------
=====================================
.gitlab/jobs.yaml
=====================================
The diff for this file was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/a3b7c581b9012a3e464770723211e4f…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/a3b7c581b9012a3e464770723211e4f…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/ci-stages] fixup! ci: build and test stage
by Magnus (@MangoIV) 07 Aug '26
by Magnus (@MangoIV) 07 Aug '26
07 Aug '26
Magnus pushed to branch wip/mangoiv/ci-stages at Glasgow Haskell Compiler / GHC
Commits:
1c58ba12 by mangoiv at 2026-08-07T16:12:44+02:00
fixup! ci: build and test stage
- - - - -
2 changed files:
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
Changes:
=====================================
.gitlab/generate-ci/gen_ci.hs
=====================================
@@ -12,6 +12,7 @@
{-# HLINT ignore "Use camelCase" #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE TypeFamilies #-}
import Data.Aeson as A
import qualified Data.Map as Map
@@ -174,6 +175,7 @@ data BuildConfig
, textWithSIMDUTF :: Bool
, testsuiteUsePerf :: Bool
, testsuiteWays :: [String]
+ , extendName :: Maybe String
}
-- Extra arguments to pass to ./configure due to the BuildConfig
@@ -244,6 +246,7 @@ vanilla = BuildConfig
, textWithSIMDUTF = False
, testsuiteUsePerf = False
, testsuiteWays = []
+ , extendName = Nothing
}
splitSectionsBroken :: BuildConfig -> BuildConfig
@@ -842,13 +845,22 @@ job :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
job arch opsys buildConfig =
MkBuildAndTestJob
{ buildJob = NamedJob { name = jobName, jobInfo = Job { jobScript = jobBuildScript, jobStage = "full-build", jobNeeds = [("hadrian-ghc-in-ghci", False)], ..} }
- , testJob = NamedJob { name = jobName <> "-test", jobInfo = Job {jobScript = jobTestScript, jobNeeds = [(jobName, True)], jobStage = "testing", ..}} }
+ , testJobs =
+ NamedJob { name = jobName <> "-test", jobInfo = testJobInfo } :
+ [ NamedJob
+ { name = jobName <> "-testperf"
+ , jobInfo = testJobInfo
+ { jobVariables = testJobInfo.jobVariables <> "RUNTEST_ARGS" =: "--config perf_path=perf"
+ , jobTags = [runnerPerfTag arch opsys]
+ } }
+ | testsuiteUsePerf buildConfig ] }
where
+ testJobInfo = Job {jobScript = jobTestScript, jobNeeds = [(jobName, True)], jobStage = "testing", ..}
jobPlatform = (arch, opsys)
jobRules = emptyRules jobName
- jobName = testEnv arch opsys buildConfig
+ jobName = testEnv arch opsys buildConfig <> maybe "" ("-" <>) (extendName buildConfig)
jobTags = tags arch opsys buildConfig
@@ -927,7 +939,6 @@ job arch opsys buildConfig =
| validateNonmovingGc buildConfig
]
in "RUNTEST_ARGS" =: (trim . unwords) runtestArgs
- , if testsuiteUsePerf buildConfig then "RUNTEST_ARGS" =: "--config perf_path=perf" else mempty
, "TEST_WAYS" =: unwords (testsuiteWays buildConfig)
]
@@ -1021,26 +1032,26 @@ releaseRule = setJobRule ReleaseOnly
-- | Make a normal nightly CI job
nightly :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
nightly arch opsys bc =
- let MkBuildAndTestJob {buildJob, testJob} = job arch opsys bc
+ let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys bc
mkJob (NamedJob n j)
= NamedJob { name = "nightly-" ++ n
, jobInfo = nightlyRule
. keepArtifacts "8 weeks"
. highCompression $ j
}
- in MkBuildAndTestJob { buildJob = mkJob buildJob, testJob = mkJob testJob}
+ in MkBuildAndTestJob { buildJob = mkJob buildJob, testJobs = map mkJob testJobs}
-- | Make a normal release CI job
release :: Arch -> Opsys -> BuildConfig -> BuildAndTestJob Job
release arch opsys bc =
- let MkBuildAndTestJob {buildJob, testJob} = job arch opsys (bc { buildFlavour = Release })
+ let MkBuildAndTestJob {buildJob, testJobs} = job arch opsys (bc { buildFlavour = Release })
mkJob (NamedJob n j) = NamedJob { name = "release-" ++ n
, jobInfo = releaseRule
. keepArtifacts "1 year"
. ignorePerfFailures
. highCompression $ j
}
- in MkBuildAndTestJob {buildJob = mkJob buildJob, testJob = mkJob testJob}
+ in MkBuildAndTestJob {buildJob = mkJob buildJob, testJobs = map mkJob testJobs}
---------------------------------------------------------------------
-- Specific job modification functions
---------------------------------------------------------------------
@@ -1066,11 +1077,6 @@ ignorePerfFailures = addVariable "IGNORE_PERF_FAILURES" "all"
highCompression :: Job -> Job
highCompression = addVariable "XZ_OPT" "-9"
--- | Change the tag of the job to make sure the job is scheduled on a
--- runner that has the necessary capabilties to run the job with 'perf'
--- profiling counters.
-perfProfilingJobTag :: Arch -> Opsys -> Job -> Job
-perfProfilingJobTag arch opsys j = j { jobTags = [ runnerPerfTag arch opsys ] }
-- | Mark the validate job to run in fast-ci mode
-- This is default way, to enable all jobs you have to apply the `full-ci` label.
@@ -1103,12 +1109,9 @@ disableValidate = modifyValidateJobs (removeValidateJobRule FastCI . removeValid
data NamedJob a = NamedJob { name :: String, jobInfo :: a } deriving (Show, Functor)
-data BuildAndTestJob a = MkBuildAndTestJob { buildJob :: NamedJob a, testJob :: NamedJob a}
+data BuildAndTestJob a = MkBuildAndTestJob { buildJob :: NamedJob a, testJobs :: [NamedJob a]}
deriving stock (Show, Functor)
-renameJob :: (String -> String) -> BuildAndTestJob a -> BuildAndTestJob a
-renameJob f MkBuildAndTestJob { buildJob = NamedJob n i, testJob = NamedJob n' i'} = MkBuildAndTestJob (NamedJob (f n) i) (NamedJob (f n') i')
-
instance ToJSON a => ToJSON (NamedJob a) where
toJSON nj = object
[ "name" A..= name nj
@@ -1134,11 +1137,8 @@ instance ToJSON a => ToJSON (JobGroup a) where
, "r" .= r ]
instance ToJSON a => ToJSON (BuildAndTestJob a) where
- toJSON MkBuildAndTestJob {buildJob, testJob} =
- object [ "build" .= buildJob, "test" .= testJob ]
-
-rename :: (String -> String) -> JobGroup a -> JobGroup a
-rename f (StandardTriple nv nn nr) = StandardTriple (renameJob f <$> nv) (renameJob f <$> nn) (renameJob f <$> nr)
+ toJSON MkBuildAndTestJob {buildJob, testJobs} =
+ object [ "build" .= buildJob, "test" .= testJobs ]
-- | Construct a 'JobGroup' which consists of a validate, nightly and release build with
-- a specific config.
@@ -1164,7 +1164,7 @@ flattenJobGroup :: JobGroup a -> [(String, a)]
flattenJobGroup (StandardTriple a b c) = concatMap flattenNamedJob (catMaybes [a,b,c])
flattenNamedJob :: BuildAndTestJob a -> [(String, a)]
-flattenNamedJob MkBuildAndTestJob {buildJob, testJob} = [(buildJob.name, buildJob.jobInfo), (testJob.name, testJob.jobInfo)]
+flattenNamedJob MkBuildAndTestJob {buildJob, testJobs} = (buildJob.name, buildJob.jobInfo) : map (\NamedJob {name, jobInfo} -> (name, jobInfo)) testJobs
-- | Specification for all the jobs we want to build.
jobs :: Map String Job
@@ -1191,8 +1191,9 @@ debian_x86 =
, modifyNightlyJobs allowFailure (modifyValidateJobs (allowFailure . manual) tsan_jobs)
, -- Nightly allowed to fail: #22343
modifyNightlyJobs allowFailure (modifyValidateJobs manual (validateBuilds Amd64 (Linux validate_debian) noTntc))
+
-- Run the 'perf' profiling nightly job in the release config.
- , perfProfilingJob Amd64 (Linux Debian13) releaseConfig
+ , disableValidate (validateBuilds Amd64 (Linux validate_debian) (usePerfProfilingTestsuite releaseConfig))
, onlyRule LLVMBackend (validateBuilds Amd64 (Linux validate_debian) llvm)
, addValidateRule TestPrimops (standardBuilds Amd64 (Linux validate_debian))
@@ -1203,12 +1204,6 @@ debian_x86 =
where
validate_debian = Debian13
- perfProfilingJob arch sys buildConfig =
- -- Rename the job to avoid conflicts
- rename (<> "-perf")
- $ modifyJobs (perfProfilingJobTag arch sys)
- $ disableValidate (validateBuilds arch sys $ usePerfProfilingTestsuite buildConfig)
-
tsan_jobs =
modifyJobs
( addVariable "TSAN_OPTIONS" "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
@@ -1250,7 +1245,7 @@ fedora_x86 =
-- validate pipeline which is built with perf.
fastCI (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig)
-- This job is only for generating head.hackage docs
- , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig))
+ , hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) releaseConfig { extendName = Just "hackage"}))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora43) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Fedora43))
-- For UBSan jobs, only enable for validate/nightly pipelines.
@@ -1264,7 +1259,7 @@ fedora_x86 =
$ validateBuilds Amd64 (Linux Fedora43) enableUBSan
]
where
- hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
+ hackage_doc_job = modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
windows_x86 :: [JobGroup Job]
windows_x86 =
=====================================
.gitlab/jobs.yaml
=====================================
@@ -5107,7 +5107,7 @@
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-deb13-release-perf": {
+ "nightly-x86_64-linux-deb13-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -5155,7 +5155,7 @@
],
"stage": "full-build",
"tags": [
- "x86_64-linux-perf"
+ "x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
@@ -5163,13 +5163,73 @@
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
- "RUNTEST_ARGS": " --config perf_path=perf",
+ "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb13-release",
"TEST_WAYS": "",
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-deb13-release-test-perf": {
+ "nightly-x86_64-linux-deb13-release-test": {
+ "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-deb13-release.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-linux-deb13-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb13:$DOCKER_REV",
+ "needs": [
+ {
+ "artifacts": true,
+ "job": "x86_64-linux-deb13-release"
+ }
+ ],
+ "rules": [
+ {
+ "if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
+ "when": "on_success"
+ }
+ ],
+ "script": [
+ ".gitlab/ci.sh setup",
+ ".gitlab/ci.sh test_hadrian"
+ ],
+ "stage": "testing",
+ "tags": [
+ "x86_64-linux"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-deb13-release",
+ "BUILD_FLAVOUR": "release",
+ "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-linux-deb13-release",
+ "TEST_WAYS": "",
+ "XZ_OPT": "-9"
+ }
+ },
+ "nightly-x86_64-linux-deb13-release-testperf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6218,7 +6278,7 @@
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-fedora43-release-test": {
+ "nightly-x86_64-linux-fedora43-release-hackage-test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6249,7 +6309,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-release"
+ "job": "x86_64-linux-fedora43-release-hackage"
}
],
"rules": [
@@ -6271,6 +6331,7 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora43-release",
@@ -6278,7 +6339,7 @@
"XZ_OPT": "-9"
}
},
- "nightly-x86_64-linux-fedora43-release-test-hackage": {
+ "nightly-x86_64-linux-fedora43-release-test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -6331,7 +6392,6 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
- "HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora43-release",
@@ -9971,7 +10031,7 @@
"XZ_OPT": "-9"
}
},
- "release-x86_64-linux-fedora43-release-test": {
+ "release-x86_64-linux-fedora43-release-hackage-test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10002,7 +10062,7 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-release"
+ "job": "x86_64-linux-fedora43-release-hackage"
}
],
"rules": [
@@ -10024,6 +10084,7 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "HADRIAN_ARGS": "--haddock-for-hackage",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
@@ -10032,7 +10093,7 @@
"XZ_OPT": "-9"
}
},
- "release-x86_64-linux-fedora43-release-test-hackage": {
+ "release-x86_64-linux-fedora43-release-test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -10085,7 +10146,6 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
- "HADRIAN_ARGS": "--haddock-for-hackage",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
@@ -12701,7 +12761,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-release-perf": {
+ "x86_64-linux-deb13-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -12749,7 +12809,7 @@
],
"stage": "full-build",
"tags": [
- "x86_64-linux-perf"
+ "x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
@@ -12757,12 +12817,71 @@
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
- "RUNTEST_ARGS": " --config perf_path=perf",
+ "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb13-release",
"TEST_WAYS": ""
}
},
- "x86_64-linux-deb13-release-test-perf": {
+ "x86_64-linux-deb13-release-test": {
+ "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-deb13-release.tar.xz",
+ "junit.xml",
+ "unexpected-test-output.tar.gz"
+ ],
+ "reports": {
+ "junit": "junit.xml"
+ },
+ "when": "always"
+ },
+ "cache": {
+ "key": "x86_64-linux-deb13-$CACHE_REV",
+ "paths": [
+ "cabal-cache",
+ "toolchain"
+ ]
+ },
+ "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb13:$DOCKER_REV",
+ "needs": [
+ {
+ "artifacts": true,
+ "job": "x86_64-linux-deb13-release"
+ }
+ ],
+ "rules": [
+ {
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb13-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "when": "on_success"
+ }
+ ],
+ "script": [
+ ".gitlab/ci.sh setup",
+ ".gitlab/ci.sh test_hadrian"
+ ],
+ "stage": "testing",
+ "tags": [
+ "x86_64-linux"
+ ],
+ "variables": {
+ "BIGNUM_BACKEND": "gmp",
+ "BIN_DIST_NAME": "ghc-x86_64-linux-deb13-release",
+ "BUILD_FLAVOUR": "release",
+ "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "RUNTEST_ARGS": "",
+ "TEST_ENV": "x86_64-linux-deb13-release",
+ "TEST_WAYS": ""
+ }
+ },
+ "x86_64-linux-deb13-release-testperf": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13770,7 +13889,7 @@
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release-hackage(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
@@ -13796,7 +13915,7 @@
"TEST_WAYS": ""
}
},
- "x86_64-linux-fedora43-release-test": {
+ "x86_64-linux-fedora43-release-hackage-test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13827,12 +13946,12 @@
"needs": [
{
"artifacts": true,
- "job": "x86_64-linux-fedora43-release"
+ "job": "x86_64-linux-fedora43-release-hackage"
}
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release-hackage(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
@@ -13849,13 +13968,14 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
+ "HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora43-release",
"TEST_WAYS": ""
}
},
- "x86_64-linux-fedora43-release-test-hackage": {
+ "x86_64-linux-fedora43-release-test": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
@@ -13891,7 +14011,7 @@
],
"rules": [
{
- "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
+ "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora43-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
@@ -13908,7 +14028,6 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora43-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
- "HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora43-release",
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/1c58ba123e9a008f4c58efa3bbe769c…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/1c58ba123e9a008f4c58efa3bbe769c…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0