Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ghc/ghc
  • bgamari/ghc
  • syd/ghc
  • ggreif/ghc
  • watashi/ghc
  • RolandSenn/ghc
  • mpickering/ghc
  • DavidEichmann/ghc
  • carter/ghc
  • harpocrates/ghc
  • ethercrow/ghc
  • mijicd/ghc
  • adamse/ghc
  • alexbiehl/ghc
  • gridaphobe/ghc
  • trofi/ghc
  • supersven/ghc
  • ppk/ghc
  • ulysses4ever/ghc
  • AndreasK/ghc
  • ghuntley/ghc
  • shayne-fletcher-da/ghc
  • fgaz/ghc
  • yav/ghc
  • osa1/ghc
  • mbbx6spp/ghc
  • JulianLeviston/ghc
  • reactormonk/ghc
  • rae/ghc
  • takenobu-hs/ghc
  • michalt/ghc
  • andrewthad/ghc
  • hsyl20/ghc
  • scottgw/ghc
  • sjakobi/ghc
  • angerman/ghc
  • RyanGlScott/ghc
  • hvr/ghc
  • howtonotwin/ghc
  • chessai/ghc
  • m-renaud/ghc
  • brprice/ghc
  • stevehartdata/ghc
  • sighingnow/ghc
  • kgardas/ghc
  • ckoparkar/ghc
  • alp/ghc
  • smaeul/ghc
  • kakkun61/ghc
  • sykloid/ghc
  • newhoggy/ghc
  • toonn/ghc
  • nineonine/ghc
  • Phyx/ghc
  • ezyang/ghc
  • tweag/ghc
  • langston/ghc
  • ndmitchell/ghc
  • rockbmb/ghc
  • artempyanykh/ghc
  • mniip/ghc
  • mynguyenbmc/ghc
  • alexfmpe/ghc
  • crockeea/ghc
  • nh2/ghc
  • vaibhavsagar/ghc
  • phadej/ghc
  • Haskell-mouse/ghc
  • lolotp/ghc
  • spacekitteh/ghc
  • michaelpj/ghc
  • mgsloan/ghc
  • HPCohen/ghc
  • tmobile/ghc
  • radrow/ghc
  • simonmar/ghc
  • _deepfire/ghc
  • Ericson2314/ghc
  • leitao/ghc
  • fumieval/ghc
  • trac-isovector/ghc
  • cblp/ghc
  • xich/ghc
  • ciil/ghc
  • erthalion/ghc
  • xldenis/ghc
  • autotaker/ghc
  • haskell-wasm/ghc
  • kcsongor/ghc
  • agander/ghc
  • Baranowski/ghc
  • trac-dredozubov/ghc
  • 23Skidoo/ghc
  • iustin/ghc
  • ningning/ghc
  • josefs/ghc
  • kabuhr/ghc
  • gallais/ghc
  • dten/ghc
  • expipiplus1/ghc
  • Pluralia/ghc
  • rohanjr/ghc
  • intricate/ghc
  • kirelagin/ghc
  • Javran/ghc
  • DanielG/ghc
  • trac-mizunashi_mana/ghc
  • pparkkin/ghc
  • bollu/ghc
  • ntc2/ghc
  • jaspervdj/ghc
  • JoshMeredith/ghc
  • wz1000/ghc
  • zkourouma/ghc
  • code5hot/ghc
  • jdprice/ghc
  • tdammers/ghc
  • J-mie6/ghc
  • trac-lantti/ghc
  • ch1bo/ghc
  • cgohla/ghc
  • lucamolteni/ghc
  • acairncross/ghc
  • amerocu/ghc
  • chreekat/ghc
  • txsmith/ghc
  • trupill/ghc
  • typetetris/ghc
  • sergv/ghc
  • fryguybob/ghc
  • erikd/ghc
  • trac-roland/ghc
  • setupminimal/ghc
  • Friede80/ghc
  • SkyWriter/ghc
  • xplorld/ghc
  • abrar/ghc
  • obsidiansystems/ghc
  • Icelandjack/ghc
  • adinapoli/ghc
  • trac-matthewbauer/ghc
  • heatsink/ghc
  • dwijnand/ghc
  • Cmdv/ghc
  • alinab/ghc
  • pepeiborra/ghc
  • fommil/ghc
  • luochen1990/ghc
  • rlupton20/ghc
  • applePrincess/ghc
  • lehins/ghc
  • ronmrdechai/ghc
  • leeadam/ghc
  • harendra/ghc
  • mightymosquito1991/ghc
  • trac-gershomb/ghc
  • lucajulian/ghc
  • Rizary/ghc
  • VictorCMiraldo/ghc
  • jamesbrock/ghc
  • andrewdmeier/ghc
  • luke/ghc
  • pranaysashank/ghc
  • cocreature/ghc
  • hithroc/ghc
  • obreitwi/ghc
  • slrtbtfs/ghc
  • kaol/ghc
  • yairchu/ghc
  • Mathemagician98/ghc
  • trac-taylorfausak/ghc
  • leungbk/ghc
  • MichaWiedenmann/ghc
  • chris-martin/ghc
  • TDecki/ghc
  • adithyaov/ghc
  • trac-gelisam/ghc
  • Lysxia/ghc
  • complyue/ghc
  • bwignall/ghc
  • sternmull/ghc
  • sonika/ghc
  • leif/ghc
  • broadwaylamb/ghc
  • myszon/ghc
  • danbroooks/ghc
  • Mechachleopteryx/ghc
  • zardyh/ghc
  • trac-vdukhovni/ghc
  • OmarKhaledAbdo/ghc
  • arrowd/ghc
  • Bodigrim/ghc
  • matheus23/ghc
  • cardenaso11/ghc
  • trac-Athas/ghc
  • mb720/ghc
  • DylanZA/ghc
  • liff/ghc
  • typedrat/ghc
  • trac-claude/ghc
  • jbm/ghc
  • Gertjan423/ghc
  • PHO/ghc
  • JKTKops/ghc
  • kockahonza/ghc
  • msakai/ghc
  • Sir4ur0n/ghc
  • barambani/ghc
  • vishnu.c/ghc
  • dcoutts/ghc
  • trac-runeks/ghc
  • trac-MaxGabriel/ghc
  • lexi.lambda/ghc
  • strake/ghc
  • spavikevik/ghc
  • JakobBruenker/ghc
  • rmanne/ghc
  • gdziadkiewicz/ghc
  • ani/ghc
  • iliastsi/ghc
  • smunix/ghc
  • judah/ghc
  • blackgnezdo/ghc
  • emilypi/ghc
  • trac-bpfoley/ghc
  • muesli4/ghc
  • trac-gkaracha/ghc
  • Kleidukos/ghc
  • nek0/ghc
  • TristanCacqueray/ghc
  • dwulive/ghc
  • mbakke/ghc
  • arybczak/ghc
  • Yang123321/ghc
  • maksbotan/ghc
  • QuietMisdreavus/ghc
  • trac-olshanskydr/ghc
  • emekoi/ghc
  • samuela/ghc
  • josephcsible/ghc
  • dramforever/ghc
  • lpsmith/ghc
  • DenisFrezzato/ghc
  • michivi/ghc
  • jneira/ghc
  • jeffhappily/ghc
  • Ivan-Yudin/ghc
  • nakaji-dayo/ghc
  • gdevanla/ghc
  • galen/ghc
  • fendor/ghc
  • yaitskov/ghc
  • rcythr/ghc
  • awpr/ghc
  • jeremyschlatter/ghc
  • Aver1y/ghc
  • mitchellvitez/ghc
  • merijn/ghc
  • tomjaguarpaw1/ghc
  • trac-NoidedSuper/ghc
  • erewok/ghc
  • trac-junji.hashimoto/ghc
  • adamwespiser/ghc
  • bjaress/ghc
  • jhrcek/ghc
  • leonschoorl/ghc
  • lukasz-golebiewski/ghc
  • sheaf/ghc
  • last-g/ghc
  • carassius1014/ghc
  • eschwartz/ghc
  • dwincort/ghc
  • felixwiemuth/ghc
  • TimWSpence/ghc
  • marcusmonteirodesouza/ghc
  • WJWH/ghc
  • vtols/ghc
  • theobat/ghc
  • BinderDavid/ghc
  • ckoparkar0/ghc
  • alexander-kjeldaas/ghc
  • dme2/ghc
  • philderbeast/ghc
  • aaronallen8455/ghc
  • rayshih/ghc
  • benkard/ghc
  • mpardalos/ghc
  • saidelman/ghc
  • leiftw/ghc
  • ca333/ghc
  • bwroga/ghc
  • nmichael44/ghc
  • trac-crobbins/ghc
  • felixonmars/ghc
  • adityagupta1089/ghc
  • hgsipiere/ghc
  • treeowl/ghc
  • alexpeits/ghc
  • CraigFe/ghc
  • dnlkrgr/ghc
  • kerckhove_ts/ghc
  • cptwunderlich/ghc
  • eiais/ghc
  • hahohihu/ghc
  • sanchayan/ghc
  • lemmih/ghc
  • sehqlr/ghc
  • trac-dbeacham/ghc
  • luite/ghc
  • trac-f-a/ghc
  • vados/ghc
  • luntain/ghc
  • fatho/ghc
  • alexbiehl-gc/ghc
  • dcbdan/ghc
  • tvh/ghc
  • liam-ly/ghc
  • timbobbarnes/ghc
  • GovanifY/ghc
  • shanth2600/ghc
  • gliboc/ghc
  • duog/ghc
  • moxonsghost/ghc
  • zander/ghc
  • masaeedu/ghc
  • georgefst/ghc
  • guibou/ghc
  • nicuveo/ghc
  • mdebruijne/ghc
  • stjordanis/ghc
  • emiflake/ghc
  • wygulmage/ghc
  • frasertweedale/ghc
  • coot/ghc
  • aratamizuki/ghc
  • tsandstr/ghc
  • mrBliss/ghc
  • Anton-Latukha/ghc
  • tadfisher/ghc
  • vapourismo/ghc
  • Sorokin-Anton/ghc
  • basile-henry/ghc
  • trac-mightybyte/ghc
  • AbsoluteNikola/ghc
  • cobrien99/ghc
  • songzh/ghc
  • blamario/ghc
  • aj4ayushjain/ghc
  • trac-utdemir/ghc
  • tangcl/ghc
  • hdgarrood/ghc
  • maerwald/ghc
  • arjun/ghc
  • ratherforky/ghc
  • haskieLambda/ghc
  • EmilGedda/ghc
  • Bogicevic/ghc
  • eddiejessup/ghc
  • kozross/ghc
  • AlistairB/ghc
  • 3Rafal/ghc
  • christiaanb/ghc
  • trac-bit/ghc
  • matsumonkie/ghc
  • trac-parsonsmatt/ghc
  • chisui/ghc
  • jaro/ghc
  • trac-kmiyazato/ghc
  • davidsd/ghc
  • Tritlo/ghc
  • I-B-3/ghc
  • lykahb/ghc
  • AriFordsham/ghc
  • turion1/ghc
  • berberman/ghc
  • christiantakle/ghc
  • zyklotomic/ghc
  • trac-ocramz/ghc
  • CSEdd/ghc
  • doyougnu/ghc
  • mmhat/ghc
  • why-not-try-calmer/ghc
  • plutotulp/ghc
  • kjekac/ghc
  • Manvi07/ghc
  • teo/ghc
  • cactus/ghc
  • CarrieMY/ghc
  • abel/ghc
  • yihming/ghc
  • tsakki/ghc
  • jessicah/ghc
  • oliverbunting/ghc
  • meld/ghc
  • friedbrice/ghc
  • Joald/ghc
  • abarbu/ghc
  • DigitalBrains1/ghc
  • sterni/ghc
  • alexDarcy/ghc
  • hexchain/ghc
  • minimario/ghc
  • zliu41/ghc
  • tommd/ghc
  • jazcarate/ghc
  • peterbecich/ghc
  • alirezaghey/ghc
  • solomon/ghc
  • mikael.urankar/ghc
  • davjam/ghc
  • int-index/ghc
  • MorrowM/ghc
  • nrnrnr/ghc
  • Sonfamm/ghc-test-only
  • afzt1/ghc
  • nguyenhaibinh-tpc/ghc
  • trac-lierdakil/ghc
  • MichaWiedenmann1/ghc
  • jmorag/ghc
  • Ziharrk/ghc
  • trac-MitchellSalad/ghc
  • juampe/ghc
  • jwaldmann/ghc
  • snowleopard/ghc
  • juhp/ghc
  • normalcoder/ghc
  • ksqsf/ghc
  • trac-jberryman/ghc
  • roberth/ghc
  • 1ntEgr8/ghc
  • epworth/ghc
  • MrAdityaAlok/ghc
  • JunmingZhao42/ghc
  • jappeace/ghc
  • trac-Gabriel439/ghc
  • alt-romes/ghc
  • HugoPeters1024/ghc
  • 10ne1/ghc-fork
  • agentultra/ghc
  • Garfield1002/ghc
  • ChickenProp/ghc
  • clyring/ghc
  • MaxHearnden/ghc
  • jumper149/ghc
  • vem/ghc
  • ketzacoatl/ghc
  • Rosuavio/ghc
  • jackohughes/ghc
  • p4l1ly/ghc
  • konsumlamm/ghc
  • shlevy/ghc
  • torsten.schmits/ghc
  • andremarianiello/ghc
  • amesgen/ghc
  • googleson78/ghc
  • InfiniteVerma/ghc
  • uhbif19/ghc
  • yiyunliu/ghc
  • raehik/ghc
  • mrkun/ghc
  • telser/ghc
  • 1Jajen1/ghc
  • slotThe/ghc
  • WinstonHartnett/ghc
  • mpilgrem/ghc
  • dreamsmasher/ghc
  • schuelermine/ghc
  • trac-Viwor/ghc
  • undergroundquizscene/ghc
  • evertedsphere/ghc
  • coltenwebb/ghc
  • oberblastmeister/ghc
  • agrue/ghc
  • lf-/ghc
  • zacwood9/ghc
  • steshaw/ghc
  • high-cloud/ghc
  • SkamDart/ghc
  • PiDelport/ghc
  • maoif/ghc
  • RossPaterson/ghc
  • CharlesTaylor7/ghc
  • ribosomerocker/ghc
  • trac-ramirez7/ghc
  • daig/ghc
  • NicolasT/ghc
  • FinleyMcIlwaine/ghc
  • lawtonnichols/ghc
  • jmtd/ghc
  • ozkutuk/ghc
  • wildsebastian/ghc
  • nikshalark/ghc
  • lrzlin/ghc
  • tobias/ghc
  • fw/ghc
  • hawkinsw/ghc
  • type-dance/ghc
  • rui314/ghc
  • ocharles/ghc
  • wavewave/ghc
  • TheKK/ghc
  • nomeata/ghc
  • trac-csabahruska/ghc
  • jonathanjameswatson/ghc
  • L-as/ghc
  • Axman6/ghc
  • barracuda156/ghc
  • trac-jship/ghc
  • jake-87/ghc
  • meooow/ghc
  • rebeccat/ghc
  • hamana55/ghc
  • Enigmage/ghc
  • kokobd/ghc
  • agevelt/ghc
  • gshen42/ghc
  • chrismwendt/ghc
  • MangoIV/ghc
  • teto/ghc
  • Sookr1/ghc
  • trac-thomasjm/ghc
  • barci2/ghc-dev
  • trac-m4dc4p/ghc
  • dixonary/ghc
  • breakerzirconia/ghc
  • alexsio27444/ghc
  • glocq/ghc
  • sourabhxyz/ghc
  • ryantrinkle/ghc
  • Jade/ghc
  • scedfaliako/ghc
  • martijnbastiaan/ghc
  • trac-george.colpitts/ghc
  • ammarbinfaisal/ghc
  • mimi.vx/ghc
  • lortabac/ghc
  • trac-zyla/ghc
  • benbellick/ghc
  • aadaa-fgtaa/ghc
  • jvanbruegge/ghc
  • archbung/ghc
  • gilmi/ghc
  • mfonism/ghc
  • alex-mckenna/ghc
  • Ei30metry/ghc
  • DiegoDiverio/ghc
  • jorgecunhamendes/ghc
  • liesnikov/ghc
  • akrmn/ghc
  • trac-simplifierticks/ghc
  • jacco/ghc
  • rhendric/ghc
  • damhiya/ghc
  • ryndubei/ghc
  • DaveBarton/ghc
  • trac-Profpatsch/ghc
  • GZGavinZhao/ghc
  • ncfavier/ghc
  • jameshaydon/ghc
  • ajccosta/ghc
  • dschrempf/ghc
  • cydparser/ghc
  • LinuxUserGD/ghc
  • elodielander/ghc
  • facundominguez/ghc
  • psilospore/ghc
  • lachrimae/ghc
  • dylan-thinnes/ghc-type-errors-plugin
  • hamishmack/ghc
  • Leary/ghc
  • lzszt/ghc
  • lyokha/ghc
  • trac-glaubitz/ghc
  • Rewbert/ghc
  • andreabedini/ghc
  • Jasagredo/ghc
  • sol/ghc
  • OlegAlexander/ghc
  • trac-sthibaul/ghc
  • avdv/ghc
  • Wendaolee/ghc
  • ur4t/ghc
  • daylily/ghc
  • boltzmannrain/ghc
  • mmzk1526/ghc
  • trac-fizzixnerd/ghc
  • soulomoon/ghc
  • rwmjones/ghc
  • j14i/ghc
  • tracsis/ghc
  • gesh/ghc
  • flip101/ghc
  • eldritch-cookie/ghc
  • LemonjamesD/ghc
  • pgujjula/ghc
  • skeuchel/ghc
  • noteed/ghc
  • gulin.serge/ghc
  • Torrekie/ghc
  • jlwoodwa/ghc
  • ayanamists/ghc
  • husong998/ghc
  • trac-edmundnoble/ghc
  • josephf/ghc
  • contrun/ghc
  • baulig/ghc
  • edsko/ghc
  • mzschr/ghc-issue-24732
  • ulidtko/ghc
  • Arsen/ghc
  • trac-sjoerd_visscher/ghc
  • crumbtoo/ghc
  • L0neGamer/ghc
  • DrewFenwick/ghc
  • benz0li/ghc
  • MaciejWas/ghc
  • jordanrule/ghc
  • trac-qqwy/ghc
  • LiamGoodacre/ghc
  • isomorpheme/ghc
  • trac-danidiaz/ghc
  • Kariim/ghc
  • MTaimoorZaeem/ghc
  • hololeap/ghc
  • ticat-fp/ghc
  • meritamen/ghc
  • criskell/ghc
  • trac-kraai/ghc
  • aergus/ghc
  • jdral/ghc
  • SamB/ghc
  • Tristian/ghc
  • ywgrit/ghc
  • KatsuPatrick/ghc
  • OsePedro/ghc
  • mpscholten/ghc
  • fp/ghc
  • zaquest/ghc
  • fangyi-zhou/ghc
  • augyg/ghc
640 results
Show changes
Commits on Source (5840)
Showing
with 3913 additions and 1459 deletions
--command sh ./hadrian/ghci --command sh -c "HADRIAN_ARGS=-j exec ./hadrian/ghci-multi -j"
--reload compiler --reload compiler
--reload ghc --reload ghc
--reload includes --reload includes
--restart hadrian/ghci --restart hadrian/ghci-multi
5eecb20a0368b599d03930e2dbb0e91540de4cb2
...@@ -2,3 +2,4 @@ ...@@ -2,3 +2,4 @@
# don't convert anything on checkout # don't convert anything on checkout
* text=auto eol=lf * text=auto eol=lf
mk/win32-tarballs.md5sum text=auto eol=LF mk/win32-tarballs.md5sum text=auto eol=LF
testsuite/tests/parser/should_run/T25375.hs text=auto eol=crlf
...@@ -35,6 +35,7 @@ Thumbs.db ...@@ -35,6 +35,7 @@ Thumbs.db
__pycache__ __pycache__
.mypy_cache .mypy_cache
*.SYMDEF* *.SYMDEF*
a.out
log log
tags tags
...@@ -60,7 +61,9 @@ _* ...@@ -60,7 +61,9 @@ _*
*/ghc-stage1 */ghc-stage1
.shake.* .shake.*
.hadrian_ghci .hadrian_ghci
.hadrian_ghci_multi/
.hie-bios .hie-bios
hadrian/bootstrap/jq-bin
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Ignore any overlapped darcs repos and back up files # Ignore any overlapped darcs repos and back up files
...@@ -112,7 +115,7 @@ _darcs/ ...@@ -112,7 +115,7 @@ _darcs/
/compiler/FunTypes.h /compiler/FunTypes.h
/compiler/MachRegs.h /compiler/MachRegs.h
/compiler/MachRegs /compiler/MachRegs
/compiler/ghc-llvm-version.h /compiler/GHC/CmmToLlvm/Version/Bounds.hs
/compiler/ghc.cabal /compiler/ghc.cabal
/compiler/ghc.cabal.old /compiler/ghc.cabal.old
/distrib/configure.ac /distrib/configure.ac
...@@ -165,8 +168,12 @@ _darcs/ ...@@ -165,8 +168,12 @@ _darcs/
/libraries/ghc-boot/ghc-boot.cabal /libraries/ghc-boot/ghc-boot.cabal
/libraries/ghc-boot-th/GNUmakefile /libraries/ghc-boot-th/GNUmakefile
/libraries/ghc-boot-th/ghc-boot-th.cabal /libraries/ghc-boot-th/ghc-boot-th.cabal
/libraries/ghc-boot-th-next/ghc-boot-th-next.cabal
/libraries/ghc-boot-th/ghc.mk /libraries/ghc-boot-th/ghc.mk
/libraries/ghc-heap/ghc-heap.cabal /libraries/ghc-heap/ghc-heap.cabal
/libraries/ghc-internal/ghc-internal.cabal
/libraries/ghc-experimental/ghc-experimental.cabal
/libraries/base/base.cabal
/libraries/ghci/GNUmakefile /libraries/ghci/GNUmakefile
/libraries/ghci/ghci.cabal /libraries/ghci/ghci.cabal
/libraries/ghci/ghc.mk /libraries/ghci/ghc.mk
...@@ -184,8 +191,6 @@ _darcs/ ...@@ -184,8 +191,6 @@ _darcs/
/linter.log /linter.log
/mk/are-validating.mk /mk/are-validating.mk
/mk/build.mk /mk/build.mk
/mk/unused.h
/mk/unused.h.in
/mk/config.mk /mk/config.mk
/mk/config.mk.old /mk/config.mk.old
/mk/system-cxx-std-lib-1.0.conf /mk/system-cxx-std-lib-1.0.conf
...@@ -204,10 +209,9 @@ _darcs/ ...@@ -204,10 +209,9 @@ _darcs/
/utils/runghc/runghc.cabal /utils/runghc/runghc.cabal
/utils/gen-dll/gen-dll.cabal /utils/gen-dll/gen-dll.cabal
/utils/ghc-pkg/ghc-pkg.cabal /utils/ghc-pkg/ghc-pkg.cabal
utils/lndir/fs.*
utils/unlit/fs.* utils/unlit/fs.*
libraries/base/include/fs.h libraries/ghc-internal/include/fs.h
libraries/base/cbits/fs.c libraries/ghc-internal/cbits/fs.c
missing-win32-tarballs missing-win32-tarballs
/extra-gcc-opts /extra-gcc-opts
......
...@@ -2,11 +2,11 @@ variables: ...@@ -2,11 +2,11 @@ variables:
GIT_SSL_NO_VERIFY: "1" GIT_SSL_NO_VERIFY: "1"
# Commit of ghc/ci-images repository from which to pull Docker images # Commit of ghc/ci-images repository from which to pull Docker images
DOCKER_REV: a55d4ae0f9da0a2fb3bc72a13f356e2511a4c4fd DOCKER_REV: 59da90988f9f3caa36572bf47d5f78704a969dea
# Sequential version number of all cached things. # Sequential version number of all cached things.
# Bump to invalidate GitLab CI cache. # Bump to invalidate GitLab CI cache.
CACHE_REV: 10 CACHE_REV: 11
# Disable shallow clones; they break our linting rules # Disable shallow clones; they break our linting rules
GIT_DEPTH: 0 GIT_DEPTH: 0
...@@ -22,6 +22,9 @@ variables: ...@@ -22,6 +22,9 @@ variables:
GIT_SUBMODULE_STRATEGY: "normal" GIT_SUBMODULE_STRATEGY: "normal"
# GitLab recommends using https:, not ssh:, to clone submodules. See #25528.
GIT_SUBMODULE_FORCE_HTTPS: 1
# Makes ci.sh isolate CABAL_DIR # Makes ci.sh isolate CABAL_DIR
HERMETIC: "YES" HERMETIC: "YES"
...@@ -101,12 +104,10 @@ workflow: ...@@ -101,12 +104,10 @@ workflow:
# which versions of GHC to allow bootstrap with # which versions of GHC to allow bootstrap with
.bootstrap_matrix : &bootstrap_matrix .bootstrap_matrix : &bootstrap_matrix
matrix: matrix:
- GHC_VERSION: 9.4.7
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10-ghc9_4:$DOCKER_REV"
- GHC_VERSION: 9.6.3
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10-ghc9_6:$DOCKER_REV"
- GHC_VERSION: 9.8.1 - GHC_VERSION: 9.8.1
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10-ghc9_8:$DOCKER_REV" DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12-ghc9_8:$DOCKER_REV"
- GHC_VERSION: 9.10.1
DOCKER_IMAGE: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12-ghc9_10:$DOCKER_REV"
# Allow linters to fail on draft MRs. # Allow linters to fail on draft MRs.
# This must be explicitly transcluded in lint jobs which # This must be explicitly transcluded in lint jobs which
...@@ -218,7 +219,7 @@ include: '.gitlab/jobs.yaml' ...@@ -218,7 +219,7 @@ include: '.gitlab/jobs.yaml'
ghc-linters: ghc-linters:
stage: tool-lint stage: tool-lint
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
extends: .lint-params extends: .lint-params
variables: variables:
BUILD_FLAVOUR: default BUILD_FLAVOUR: default
...@@ -258,7 +259,7 @@ typecheck-testsuite: ...@@ -258,7 +259,7 @@ typecheck-testsuite:
# accommodate, e.g., haddock changes not yet upstream) but not on `master` or # accommodate, e.g., haddock changes not yet upstream) but not on `master` or
# Marge jobs. # Marge jobs.
.lint-submods: .lint-submods:
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
extends: .lint-params extends: .lint-params
variables: variables:
BUILD_FLAVOUR: default BUILD_FLAVOUR: default
...@@ -276,7 +277,7 @@ typecheck-testsuite: ...@@ -276,7 +277,7 @@ typecheck-testsuite:
# accommodate, e.g., haddock changes not yet upstream) but not on `master` or # accommodate, e.g., haddock changes not yet upstream) but not on `master` or
# Marge jobs. # Marge jobs.
lint-author: lint-author:
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
extends: .lint-params extends: .lint-params
variables: variables:
BUILD_FLAVOUR: default BUILD_FLAVOUR: default
...@@ -291,7 +292,7 @@ lint-author: ...@@ -291,7 +292,7 @@ lint-author:
- *drafts-can-fail-lint - *drafts-can-fail-lint
lint-ci-config: lint-ci-config:
image: nixos/nix:2.14.1 image: nixos/nix:2.25.2
extends: .lint extends: .lint
# We don't need history/submodules in this job # We don't need history/submodules in this job
variables: variables:
...@@ -299,6 +300,18 @@ lint-ci-config: ...@@ -299,6 +300,18 @@ lint-ci-config:
GIT_SUBMODULE_STRATEGY: none GIT_SUBMODULE_STRATEGY: none
before_script: before_script:
- echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf - echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
# Note [Nix-in-Docker]
# ~~~~~~~~~~~~~~~~~~~~
# The nixos/nix default config is max-jobs=1 and cores=$(logical
# cores num) which doesn't play nice with our $CPUS convention. We
# fix it before invoking any nix build to avoid oversubscribing
# while allowing a reasonable degree of parallelism.
# FIXME: Disabling build-users-group=nixbld is a workaround for a Nix-in-Docker issue. See
# https://gitlab.haskell.org/ghc/head.hackage/-/issues/38#note_560487 for
# discussion.
- echo "cores = $CPUS" >> /etc/nix/nix.conf
- echo "max-jobs = $CPUS" >> /etc/nix/nix.conf
- nix run nixpkgs#gnused -- -i -e 's/ nixbld//' /etc/nix/nix.conf
script: script:
- nix run .gitlab/generate-ci#generate-jobs - nix run .gitlab/generate-ci#generate-jobs
# 1 if .gitlab/generate_jobs changed the output of the generated config # 1 if .gitlab/generate_jobs changed the output of the generated config
...@@ -345,7 +358,7 @@ lint-submods-branch: ...@@ -345,7 +358,7 @@ lint-submods-branch:
.lint-params: .lint-params:
needs: [] needs: []
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
extends: .lint extends: .lint
before_script: before_script:
- export PATH="/opt/toolchain/bin:$PATH" - export PATH="/opt/toolchain/bin:$PATH"
...@@ -386,7 +399,7 @@ hadrian-ghc-in-ghci: ...@@ -386,7 +399,7 @@ hadrian-ghc-in-ghci:
- job: lint-linters - job: lint-linters
- job: lint-submods - job: lint-submods
optional: true optional: true
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
before_script: before_script:
# workaround for docker permissions # workaround for docker permissions
- sudo chown ghc:ghc -R . - sudo chown ghc:ghc -R .
...@@ -396,13 +409,14 @@ hadrian-ghc-in-ghci: ...@@ -396,13 +409,14 @@ hadrian-ghc-in-ghci:
- x86_64-linux - x86_64-linux
script: script:
- git clean -xdf && git submodule foreach git clean -xdf - git clean -xdf && git submodule foreach git clean -xdf
- .gitlab/ci.sh setup - . .gitlab/ci.sh setup
- .gitlab/ci.sh configure - . .gitlab/ci.sh configure
# Enable -Werror when building hadrian # Enable -Werror when building hadrian
- "echo 'package hadrian' > hadrian/cabal.project.local" - "echo 'package hadrian' > hadrian/cabal.project.local"
- "echo ' ghc-options: -Werror' >> hadrian/cabal.project.local" - "echo ' ghc-options: -Werror' >> hadrian/cabal.project.local"
# Load ghc-in-ghci then immediately exit and check the modules loaded # Load ghc-in-ghci then immediately exit and check the modules loaded
- echo ":q" | hadrian/ghci -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok," - export CORES="$(mk/detect-cpu-count.sh)"
- echo ":q" | HADRIAN_ARGS=-j$CORES hadrian/ghci -j$CORES | tail -n2 | grep "Ok,"
after_script: after_script:
- .gitlab/ci.sh save_cache - .gitlab/ci.sh save_cache
- cat ci-timings - cat ci-timings
...@@ -430,7 +444,12 @@ hadrian-multi: ...@@ -430,7 +444,12 @@ hadrian-multi:
# workaround for docker permissions # workaround for docker permissions
- sudo chown ghc:ghc -R . - sudo chown ghc:ghc -R .
variables: variables:
GHC_FLAGS: "-Werror -Wwarn=deprecations" GHC_FLAGS: "-Werror=-Wno-error=incomplete-record-selectors -Wwarn=deprecations -Wwarn=unused-imports"
# -Wno-error=incomplete-record-selectors is present because -Wall now
# includes -Wincomplete-record-selectors, and hadrian-multi has many, many
# warnings about incomplete record selectors. A better fix would be to
# remove the use of incomplete record selectors, since each of them represents
# a potential crash.
CONFIGURE_ARGS: --enable-bootstrap-with-devel-snapshot CONFIGURE_ARGS: --enable-bootstrap-with-devel-snapshot
tags: tags:
- x86_64-linux - x86_64-linux
...@@ -449,12 +468,13 @@ hadrian-multi: ...@@ -449,12 +468,13 @@ hadrian-multi:
- export HC=$root/bin/ghc - export HC=$root/bin/ghc
# This GHC means, use this GHC to configure with # This GHC means, use this GHC to configure with
- export GHC=$root/bin/ghc - export GHC=$root/bin/ghc
- .gitlab/ci.sh setup - . .gitlab/ci.sh setup
- .gitlab/ci.sh configure - . .gitlab/ci.sh configure
# Now GHC means, use this GHC for hadrian # Now GHC means, use this GHC for hadrian
- export GHC=$BOOT_HC - export GHC=$BOOT_HC
- export CORES="$(mk/detect-cpu-count.sh)"
# Load hadrian-multi then immediately exit and check the modules loaded # Load hadrian-multi then immediately exit and check the modules loaded
- echo ":q" | hadrian/ghci-multi -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok," - echo ":q" | HADRIAN_ARGS=-j$CORES hadrian/ghci-multi -j$CORES | tail -n2 | grep "Ok,"
after_script: after_script:
- .gitlab/ci.sh save_cache - .gitlab/ci.sh save_cache
cache: cache:
...@@ -475,8 +495,8 @@ stack-hadrian-build: ...@@ -475,8 +495,8 @@ stack-hadrian-build:
extends: hadrian-ghc-in-ghci extends: hadrian-ghc-in-ghci
stage: quick-build stage: quick-build
script: script:
- .gitlab/ci.sh setup - . .gitlab/ci.sh setup
- .gitlab/ci.sh configure - . .gitlab/ci.sh configure
- hadrian/build-stack --version - hadrian/build-stack --version
#################################### ####################################
...@@ -530,11 +550,11 @@ abi-test-nightly: ...@@ -530,11 +550,11 @@ abi-test-nightly:
doc-tarball: doc-tarball:
stage: packaging stage: packaging
needs: needs:
- job: x86_64-linux-deb10-numa-slow-validate - job: x86_64-linux-deb12-numa-slow-validate
optional: true optional: true
- job: nightly-x86_64-linux-deb10-validate - job: nightly-x86_64-linux-deb12-validate
optional: true optional: true
- job: release-x86_64-linux-deb10-release - job: release-x86_64-linux-deb12-release
optional: true optional: true
- job: x86_64-windows-validate - job: x86_64-windows-validate
...@@ -546,23 +566,28 @@ doc-tarball: ...@@ -546,23 +566,28 @@ doc-tarball:
tags: tags:
- x86_64-linux - x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
dependencies: null dependencies: null
variables: variables:
LINUX_BINDIST: "ghc-x86_64-linux-deb10.tar.xz" LINUX_BINDIST: "ghc-x86_64-linux-deb12.tar.xz"
WINDOWS_BINDIST: "ghc-x86_64-windows.tar.xz" WINDOWS_BINDIST: "ghc-x86_64-windows.tar.xz"
artifacts: artifacts:
expose_as: "Documentation Preview"
paths: paths:
- haddock.html.tar.xz - haddock.html.tar.xz
- docs/haddock/
- libraries.html.tar.xz - libraries.html.tar.xz
- docs/libraries/
- users_guide.html.tar.xz - users_guide.html.tar.xz
- index.html - docs/users_guide/
- "*.pdf" - docs/index.html
- Haddock.pdf
- users_guide.pdf
script: script:
- | - |
mv "ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz" "$LINUX_BINDIST" \ mv "ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz" "$LINUX_BINDIST" \
|| mv "ghc-x86_64-linux-deb10-validate.tar.xz" "$LINUX_BINDIST" \ || mv "ghc-x86_64-linux-deb12-validate.tar.xz" "$LINUX_BINDIST" \
|| mv "ghc-x86_64-linux-deb10-release.tar.xz" "$LINUX_BINDIST" \ || mv "ghc-x86_64-linux-deb12-release.tar.xz" "$LINUX_BINDIST" \
|| true || true
mv "ghc-x86_64-windows-validate.tar.xz" "$WINDOWS_BINDIST" \ mv "ghc-x86_64-windows-validate.tar.xz" "$WINDOWS_BINDIST" \
|| mv "ghc-x86_64-windows-release.tar.xz" "$WINDOWS_BINDIST" \ || mv "ghc-x86_64-windows-release.tar.xz" "$WINDOWS_BINDIST" \
...@@ -577,8 +602,8 @@ doc-tarball: ...@@ -577,8 +602,8 @@ doc-tarball:
fi fi
- rm -Rf docs - rm -Rf docs
- bash -ex distrib/mkDocs/mkDocs $LINUX_BINDIST $WINDOWS_BINDIST - bash -ex distrib/mkDocs/mkDocs $LINUX_BINDIST $WINDOWS_BINDIST
- mv docs/*.tar.xz docs/*.pdf .
- ls -lh - ls -lh
- mv docs/*.tar.xz docs/index.html .
hackage-doc-tarball: hackage-doc-tarball:
stage: packaging stage: packaging
...@@ -590,7 +615,7 @@ hackage-doc-tarball: ...@@ -590,7 +615,7 @@ hackage-doc-tarball:
- job: source-tarball - job: source-tarball
tags: tags:
- x86_64-linux - x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
dependencies: null dependencies: null
variables: variables:
# Don't clone the git repo.. # Don't clone the git repo..
...@@ -606,8 +631,8 @@ hackage-doc-tarball: ...@@ -606,8 +631,8 @@ hackage-doc-tarball:
script: script:
- cd ghc*/ - cd ghc*/
- mv .gitlab/rel_eng/upload_ghc_libs.py . - mv .gitlab/rel_eng/upload_ghc_libs.py .
- .gitlab/ci.sh setup - . .gitlab/ci.sh setup
- .gitlab/ci.sh configure - . .gitlab/ci.sh configure
- ./upload_ghc_libs.py prepare --bindist ghc*linux/ - ./upload_ghc_libs.py prepare --bindist ghc*linux/
- mv .upload-libs/docs ../hackage_docs - mv .upload-libs/docs ../hackage_docs
rules: rules:
...@@ -616,17 +641,19 @@ hackage-doc-tarball: ...@@ -616,17 +641,19 @@ hackage-doc-tarball:
source-tarball: source-tarball:
stage: full-build stage: full-build
needs:
- hadrian-ghc-in-ghci
tags: tags:
- x86_64-linux - x86_64-linux
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
dependencies: [] dependencies: []
artifacts: artifacts:
paths: paths:
- ghc-*.tar.xz - ghc-*.tar.xz
script: script:
- sudo chown ghc:ghc -R . - sudo chown ghc:ghc -R .
- ./boot - . .gitlab/ci.sh setup
- ./configure - . .gitlab/ci.sh configure
- ./hadrian/build source-dist - ./hadrian/build source-dist
- mv _build/source-dist/*.xz . - mv _build/source-dist/*.xz .
rules: rules:
...@@ -637,6 +664,8 @@ source-tarball: ...@@ -637,6 +664,8 @@ source-tarball:
generate-hadrian-bootstrap-sources: generate-hadrian-bootstrap-sources:
stage: full-build stage: full-build
needs:
- hadrian-ghc-in-ghci
tags: tags:
- x86_64-linux - x86_64-linux
image: "$DOCKER_IMAGE" image: "$DOCKER_IMAGE"
...@@ -660,7 +689,7 @@ package-hadrian-bootstrap-sources: ...@@ -660,7 +689,7 @@ package-hadrian-bootstrap-sources:
tags: tags:
- x86_64-linux - x86_64-linux
needs: ["generate-hadrian-bootstrap-sources"] needs: ["generate-hadrian-bootstrap-sources"]
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
artifacts: artifacts:
paths: paths:
- hadrian-bootstrap-sources-all.tar.gz - hadrian-bootstrap-sources-all.tar.gz
...@@ -692,7 +721,10 @@ test-bootstrap: ...@@ -692,7 +721,10 @@ test-bootstrap:
- .gitlab/ci.sh setup - .gitlab/ci.sh setup
# Bootstrapping should not depend on HAPPY or ALEX so set them to false # Bootstrapping should not depend on HAPPY or ALEX so set them to false
# so the build fails if they are invoked. # so the build fails if they are invoked.
- export HAPPY=/bin/false; export ALEX=/bin/false - unset HAPPY; unset ALEX
# Check the commands are not available, parens are crucial to start a subshell
- (! command -v alex --version)
- (! command -v happy --version)
- .gitlab/ci.sh configure - .gitlab/ci.sh configure
- .gitlab/ci.sh build_hadrian - .gitlab/ci.sh build_hadrian
- .gitlab/ci.sh test_hadrian - .gitlab/ci.sh test_hadrian
...@@ -701,7 +733,7 @@ test-bootstrap: ...@@ -701,7 +733,7 @@ test-bootstrap:
variables: variables:
# Don't record performance benchmarks # Don't record performance benchmarks
TEST_ENV: "" TEST_ENV: ""
BIN_DIST_NAME: "ghc-x86_64-deb10-linux" BIN_DIST_NAME: "ghc-x86_64-deb12-linux"
BUILD_FLAVOUR: "validate" BUILD_FLAVOUR: "validate"
NO_BOOT: "1" NO_BOOT: "1"
rules: rules:
...@@ -750,16 +782,16 @@ test-bootstrap: ...@@ -750,16 +782,16 @@ test-bootstrap:
hackage-lint: hackage-lint:
needs: needs:
- job: x86_64-linux-deb10-numa-slow-validate - job: x86_64-linux-deb12-numa-slow-validate
optional: true optional: true
artifacts: false artifacts: false
- job: nightly-x86_64-linux-deb10-numa-slow-validate - job: nightly-x86_64-linux-deb12-numa-slow-validate
optional: true optional: true
artifacts: false artifacts: false
- job: nightly-aarch64-linux-deb10-validate - job: nightly-aarch64-linux-deb12-validate
optional: true optional: true
artifacts: false artifacts: false
- job: aarch64-linux-deb10-validate - job: aarch64-linux-deb12-validate
optional: true optional: true
artifacts: false artifacts: false
extends: .hackage extends: .hackage
...@@ -774,10 +806,10 @@ hackage-lint: ...@@ -774,10 +806,10 @@ hackage-lint:
hackage-label-lint: hackage-label-lint:
needs: needs:
- job: x86_64-linux-deb10-numa-slow-validate - job: x86_64-linux-deb12-numa-slow-validate
optional: true optional: true
artifacts: false artifacts: false
- job: aarch64-linux-deb10-validate - job: aarch64-linux-deb12-validate
optional: true optional: true
artifacts: false artifacts: false
extends: .hackage extends: .hackage
...@@ -791,10 +823,10 @@ hackage-label-lint: ...@@ -791,10 +823,10 @@ hackage-label-lint:
# affects the total allocation numbers for the simplifier portion significantly. # affects the total allocation numbers for the simplifier portion significantly.
nightly-hackage-lint: nightly-hackage-lint:
needs: needs:
- job: nightly-x86_64-linux-deb10-numa-slow-validate - job: nightly-x86_64-linux-deb12-numa-slow-validate
optional: true optional: true
artifacts: false artifacts: false
- job: nightly-aarch64-linux-deb10-validate - job: nightly-aarch64-linux-deb12-validate
optional: true optional: true
artifacts: false artifacts: false
rules: rules:
...@@ -811,7 +843,7 @@ nightly-hackage-perf: ...@@ -811,7 +843,7 @@ nightly-hackage-perf:
- job: nightly-x86_64-linux-fedora33-release - job: nightly-x86_64-linux-fedora33-release
optional: true optional: true
artifacts: false artifacts: false
- job: nightly-aarch64-linux-deb10-validate - job: nightly-aarch64-linux-deb12-validate
optional: true optional: true
artifacts: false artifacts: false
rules: rules:
...@@ -830,12 +862,16 @@ release-hackage-lint: ...@@ -830,12 +862,16 @@ release-hackage-lint:
- job: release-x86_64-linux-fedora33-release - job: release-x86_64-linux-fedora33-release
optional: true optional: true
artifacts: false artifacts: false
- job: release-aarch64-linux-deb10-release+no_split_sections - job: release-aarch64-linux-deb12-release+no_split_sections
optional: true optional: true
artifacts: false artifacts: false
rules: rules:
- if: '$RELEASE_JOB == "yes"' - if: '$RELEASE_JOB == "yes"'
extends: .hackage extends: .hackage
# The ghcup metadata pipeline requires all prior jobs to
# pass. The hackage job can easily fail due to API changes
# or similar - so we allow it to fail.
allow_failure: true
variables: variables:
# No slow-validate bindist on release pipeline # No slow-validate bindist on release pipeline
EXTRA_HC_OPTS: "-dlint" EXTRA_HC_OPTS: "-dlint"
...@@ -859,9 +895,9 @@ release-hackage-lint: ...@@ -859,9 +895,9 @@ release-hackage-lint:
.test-primops-validate-template: .test-primops-validate-template:
needs: needs:
- job: x86_64-linux-deb10-validate+debug_info - job: x86_64-linux-deb12-validate
artifacts: false artifacts: false
- job: aarch64-linux-deb10-validate - job: aarch64-linux-deb12-validate
artifacts: false artifacts: false
- job: aarch64-darwin-validate - job: aarch64-darwin-validate
artifacts: false artifacts: false
...@@ -873,13 +909,17 @@ test-primops-label: ...@@ -873,13 +909,17 @@ test-primops-label:
extends: .test-primops-validate-template extends: .test-primops-validate-template
rules: rules:
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/' - if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/'
# We do not use *.full-ci here since that would imply running in nightly
# where we do not have the normal validate jobs. We have the -nightly job
# below to handle this case.
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/'
test-primops-nightly: test-primops-nightly:
extends: .test-primops extends: .test-primops
needs: needs:
- job: nightly-x86_64-linux-deb10-validate - job: nightly-x86_64-linux-deb12-validate
artifacts: false artifacts: false
- job: nightly-aarch64-linux-deb10-validate - job: nightly-aarch64-linux-deb12-validate
artifacts: false artifacts: false
- job: nightly-aarch64-darwin-validate - job: nightly-aarch64-darwin-validate
artifacts: false artifacts: false
...@@ -1018,6 +1058,7 @@ abi-test: ...@@ -1018,6 +1058,7 @@ abi-test:
- out - out
rules: rules:
- *full-ci - *full-ci
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*test-abi.*/'
############################################################ ############################################################
...@@ -1045,7 +1086,7 @@ pages: ...@@ -1045,7 +1086,7 @@ pages:
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="refresh" content="1; url=doc/"> <meta http-equiv="refresh" content="1; url=doc/">
EOF EOF
- cp -f index.html public/doc - cp -f docs/index.html public/doc
rules: rules:
# N.B. only run this on ghc/ghc since the deployed pages are quite large # N.B. only run this on ghc/ghc since the deployed pages are quite large
# and we only serve GitLab Pages for ghc/ghc. # and we only serve GitLab Pages for ghc/ghc.
...@@ -1063,7 +1104,7 @@ pages: ...@@ -1063,7 +1104,7 @@ pages:
project-version: project-version:
stage: packaging stage: packaging
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
tags: tags:
- x86_64-linux - x86_64-linux
variables: variables:
...@@ -1083,7 +1124,7 @@ project-version: ...@@ -1083,7 +1124,7 @@ project-version:
.ghcup-metadata: .ghcup-metadata:
stage: deploy stage: deploy
image: nixos/nix:2.14.1 image: nixos/nix:2.25.2
dependencies: null dependencies: null
tags: tags:
- x86_64-linux - x86_64-linux
...@@ -1092,6 +1133,10 @@ project-version: ...@@ -1092,6 +1133,10 @@ project-version:
GIT_SUBMODULE_STRATEGY: "none" GIT_SUBMODULE_STRATEGY: "none"
before_script: before_script:
- echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf - echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
# FIXME: See Note [Nix-in-Docker]
- echo "cores = $CPUS" >> /etc/nix/nix.conf
- echo "max-jobs = $CPUS" >> /etc/nix/nix.conf
- nix run nixpkgs#gnused -- -i -e 's/ nixbld//' /etc/nix/nix.conf
- nix-channel --update - nix-channel --update
- cat version.sh - cat version.sh
# Calculate the project version # Calculate the project version
...@@ -1114,7 +1159,7 @@ ghcup-metadata-nightly: ...@@ -1114,7 +1159,7 @@ ghcup-metadata-nightly:
needs: needs:
- job: nightly-x86_64-linux-fedora33-release - job: nightly-x86_64-linux-fedora33-release
artifacts: false artifacts: false
- job: nightly-x86_64-linux-centos7-validate - job: nightly-x86_64-linux-ubuntu22_04-validate
artifacts: false artifacts: false
- job: nightly-x86_64-linux-ubuntu20_04-validate - job: nightly-x86_64-linux-ubuntu20_04-validate
artifacts: false artifacts: false
...@@ -1130,21 +1175,31 @@ ghcup-metadata-nightly: ...@@ -1130,21 +1175,31 @@ ghcup-metadata-nightly:
artifacts: false artifacts: false
- job: nightly-x86_64-linux-alpine3_12-validate - job: nightly-x86_64-linux-alpine3_12-validate
artifacts: false artifacts: false
- job: nightly-x86_64-linux-alpine3_20-validate
artifacts: false
- job: nightly-x86_64-linux-deb9-validate - job: nightly-x86_64-linux-deb9-validate
artifacts: false artifacts: false
- job: nightly-i386-linux-deb10-validate - job: nightly-i386-linux-deb10-validate
artifacts: false artifacts: false
- job: nightly-i386-linux-deb12-validate
artifacts: false
- job: nightly-x86_64-linux-deb10-validate - job: nightly-x86_64-linux-deb10-validate
artifacts: false artifacts: false
- job: nightly-aarch64-linux-deb10-validate - job: nightly-aarch64-linux-deb10-validate
artifacts: false artifacts: false
- job: nightly-x86_64-linux-deb11-validate - job: nightly-x86_64-linux-deb11-validate
artifacts: false artifacts: false
- job: nightly-x86_64-linux-deb12-validate
artifacts: false
- job: nightly-aarch64-linux-deb12-validate
artifacts: false
- job: nightly-aarch64-linux-alpine3_18-validate
artifacts: false
- job: source-tarball - job: source-tarball
artifacts: false artifacts: false
- job: project-version - job: project-version
script: script:
- nix shell --extra-experimental-features nix-command -f .gitlab/rel_eng -c ghcup-metadata --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml" - nix shell -f .gitlab/rel_eng -c ghcup-metadata --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml"
rules: rules:
- if: $NIGHTLY - if: $NIGHTLY
...@@ -1182,7 +1237,8 @@ ghcup-metadata-release: ...@@ -1182,7 +1237,8 @@ ghcup-metadata-release:
# No explicit needs for release pipeline as we assume we need everything and everything will pass. # No explicit needs for release pipeline as we assume we need everything and everything will pass.
extends: .ghcup-metadata extends: .ghcup-metadata
script: script:
- nix shell --extra-experimental-features nix-command -f .gitlab/rel_eng -c ghcup-metadata --release-mode --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml" - nix shell -f .gitlab/rel_eng -c ghcup-metadata --release-mode --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" --fragment
- nix shell -f .gitlab/rel_eng -c ghcup-metadata --release-mode --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml"
rules: rules:
- if: '$RELEASE_JOB == "yes"' - if: '$RELEASE_JOB == "yes"'
...@@ -1193,10 +1249,17 @@ ghcup-metadata-release: ...@@ -1193,10 +1249,17 @@ ghcup-metadata-release:
UPSTREAM_PROJECT_ID: "$CI_PROJECT_ID" UPSTREAM_PROJECT_ID: "$CI_PROJECT_ID"
UPSTREAM_PIPELINE_ID: "$CI_PIPELINE_ID" UPSTREAM_PIPELINE_ID: "$CI_PIPELINE_ID"
RELEASE_JOB: "$RELEASE_JOB" RELEASE_JOB: "$RELEASE_JOB"
# Do not inherit global variables (such as CONFIGURE_ARGS) as these take
# precedence over the variables defined in the downstream job.
inherit:
variables: false
trigger: trigger:
project: "ghc/ghcup-ci" project: "ghc/ghcup-ci"
branch: "upstream-testing" branch: "upstream-testing"
strategy: "depend" strategy: "depend"
forward:
yaml_variables: true
pipeline_variables: false
ghcup-metadata-testing-nightly: ghcup-metadata-testing-nightly:
needs: needs:
......
# Where the GitLab happens
## Updating PERF_NOTES_PUSH_CREDENTIALS
This CI variable is used by test-metrics.sh to push performance data as a git
note to https://gitlab.haskell.org/ghc/ghc-performance-notes.
The current token will expire on 2025-07-02.
### STEPS
Set and fetch the updated token:
```
GITLAB_WRITE=<Your Gitlab API token>
one_year_later="$(date --date='1 year' --iso-8601)"
curl -X POST --header "PRIVATE-TOKEN: $GITLAB_WRITE" -H "Content-Type: application/json" \
--data '{"name":"test-metrics.sh", "scopes":["write_repository"], "expires_at":"$one_year_later"}' \
https://gitlab.haskell.org/api/v4/projects/117/access_tokens \
| jq .token
```
Update the variable:
```
GITLAB_WRITE=<Your Gitlab API token>
NEW_VALUE=<Output from the above>
curl --fail-with-body --request PUT --header "PRIVATE-TOKEN: $GITLAB_WRITE" \
"https://gitlab.haskell.org/api/v4/projects/1/variables/PERF_NOTES_PUSH_CREDENTIALS" \
--form "value=$NEW_VALUE"
```
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
set -Eeuo pipefail set -Eeuo pipefail
# Configuration: # Configuration:
HACKAGE_INDEX_STATE="2023-10-05T11:38:51Z" # N.B. You may want to also update the index-state in hadrian/cabal.project.
HACKAGE_INDEX_STATE="2025-01-27T17:45:32Z"
MIN_HAPPY_VERSION="1.20" MIN_HAPPY_VERSION="1.20"
MIN_ALEX_VERSION="3.2.6" MIN_ALEX_VERSION="3.2.6"
...@@ -151,6 +152,8 @@ function mingw_init() { ...@@ -151,6 +152,8 @@ function mingw_init() {
# We always use mingw64 Python to avoid path length issues like #17483. # We always use mingw64 Python to avoid path length issues like #17483.
export PYTHON="/mingw64/bin/python3" export PYTHON="/mingw64/bin/python3"
# And need to use sphinx-build from the environment
export SPHINXBUILD="/mingw64/bin/sphinx-build.exe"
} }
# This will contain GHC's local native toolchain # This will contain GHC's local native toolchain
...@@ -305,7 +308,7 @@ function fetch_cabal() { ...@@ -305,7 +308,7 @@ function fetch_cabal() {
fail "neither CABAL nor CABAL_INSTALL_VERSION are not set" fail "neither CABAL nor CABAL_INSTALL_VERSION are not set"
fi fi
start_section "fetch GHC" start_section "fetch cabal"
case "$(uname)" in case "$(uname)" in
# N.B. Windows uses zip whereas all others use .tar.xz # N.B. Windows uses zip whereas all others use .tar.xz
MSYS_*|MINGW*) MSYS_*|MINGW*)
...@@ -323,16 +326,22 @@ function fetch_cabal() { ...@@ -323,16 +326,22 @@ function fetch_cabal() {
local base_url="https://downloads.haskell.org/~cabal/cabal-install-$v/" local base_url="https://downloads.haskell.org/~cabal/cabal-install-$v/"
case "$(uname)" in case "$(uname)" in
Darwin) cabal_url="$base_url/cabal-install-$v-x86_64-apple-darwin17.7.0.tar.xz" ;; Darwin) cabal_url="$base_url/cabal-install-$v-x86_64-apple-darwin17.7.0.tar.xz" ;;
FreeBSD) cabal_url="$base_url/cabal-install-$v-x86_64-freebsd13.tar.xz" ;; FreeBSD) cabal_url="$base_url/cabal-install-$v-x86_64-freebsd14.tar.xz" ;;
*) fail "don't know where to fetch cabal-install for $(uname)" *) fail "don't know where to fetch cabal-install for $(uname)"
esac esac
echo "Fetching cabal-install from $cabal_url" echo "Fetching cabal-install from $cabal_url"
curl "$cabal_url" > cabal.tar.xz curl "$cabal_url" > cabal.tar.xz
tmp="$(tar -tJf cabal.tar.xz | head -n1)"
$TAR -xJf cabal.tar.xz $TAR -xJf cabal.tar.xz
mv cabal "$toolchain/bin" # Check if the bindist has directory structure
if [[ "$tmp" = "cabal" ]]; then
mv cabal "$toolchain/bin"
else
mv "$tmp/cabal" "$toolchain/bin"
fi
;; ;;
esac esac
end_section "fetch GHC" end_section "fetch cabal"
fi fi
} }
...@@ -401,6 +410,12 @@ function configure() { ...@@ -401,6 +410,12 @@ function configure() {
else else
args+=("--disable-numa") args+=("--disable-numa")
fi fi
if [[ -n ${HAPPY:-} ]]; then
args+=("HAPPY=$HAPPY")
fi
if [[ -n ${ALEX:-} ]]; then
args+=("ALEX=$ALEX")
fi
start_section "configuring" start_section "configuring"
# See https://stackoverflow.com/questions/7577052 for a rationale for the # See https://stackoverflow.com/questions/7577052 for a rationale for the
...@@ -409,8 +424,6 @@ function configure() { ...@@ -409,8 +424,6 @@ function configure() {
--enable-tarballs-autodownload \ --enable-tarballs-autodownload \
"${args[@]+"${args[@]}"}" \ "${args[@]+"${args[@]}"}" \
GHC="$GHC" \ GHC="$GHC" \
HAPPY="$HAPPY" \
ALEX="$ALEX" \
|| ( cat config.log; fail "configure failed" ) || ( cat config.log; fail "configure failed" )
end_section "configuring" end_section "configuring"
} }
...@@ -425,7 +438,9 @@ function push_perf_notes() { ...@@ -425,7 +438,9 @@ function push_perf_notes() {
return return
fi fi
if [ -n "${CROSS_TARGET:-}" ] && [ "${CROSS_EMULATOR:-}" != "js-emulator" ]; then # TODO: Remove this check, see #25299
# It is easy to forget to update this when testing a new cross platform
if [[ -n "${CROSS_TARGET:-}" ]] && [[ "${CROSS_TARGET:-}" != *"javascript"* ]] && [[ "${CROSS_TARGET:-}" != *"wasm"* ]]; then
info "Can't test cross-compiled build." info "Can't test cross-compiled build."
return return
fi fi
...@@ -554,8 +569,10 @@ function install_bindist() { ...@@ -554,8 +569,10 @@ function install_bindist() {
run ${CONFIGURE_WRAPPER:-} ./configure \ run ${CONFIGURE_WRAPPER:-} ./configure \
--prefix="$instdir" \ --prefix="$instdir" \
"${args[@]+"${args[@]}"}" "${args[@]+"${args[@]}"}" || fail "bindist configure failed"
make_install_destdir "$TOP"/destdir "$instdir" make_install_destdir "$TOP"/destdir "$instdir"
# And check the `--info` of the installed compiler, sometimes useful in CI log.
"$instdir"/bin/ghc --info
;; ;;
esac esac
popd popd
...@@ -671,12 +688,25 @@ function test_hadrian() { ...@@ -671,12 +688,25 @@ function test_hadrian() {
} }
function summarise_hi_files() { function summarise_hi_files() {
for iface in $(find . -type f -name "*.hi" | sort); do echo "$iface $($HC --show-iface $iface | grep " ABI hash:")"; done | tee $OUT/abis hi_files=$(find . -type f -name "*.hi" | sort)
for iface in $(find . -type f -name "*.hi" | sort); do echo "$iface $($HC --show-iface $iface | grep " interface hash:")"; done | tee $OUT/interfaces for iface in $hi_files; do echo "$iface $($HC --show-iface "$iface" | grep " ABI hash:")"; done | tee $OUT/abis
for iface in $(find . -type f -name "*.hi" | sort); do for iface in $hi_files; do echo "$iface $($HC --show-iface "$iface" | grep " interface hash:")"; done | tee $OUT/interfaces
fname="$OUT/$(dirname $iface)" for iface in $hi_files; do
mkdir -p $fname fname="$OUT/$(dirname "$iface")"
$HC --show-iface $iface > "$OUT/$iface" mkdir -p "$fname"
$HC --show-iface "$iface" > "$OUT/$iface"
done
}
function summarise_o_files() {
OBJDUMP=$(if test "$(uname)" == "Darwin"; then echo "objdump -m"; else echo "objdump"; fi)
o_files=$(find . -type f -name "*.o" | sort)
for o in $o_files; do
fname="$OUT/objs/$(dirname "$o")"
mkdir -p "$fname"
# To later compare object dumps except for the first line which prints the file path
$OBJDUMP --all-headers "$o" | tail -n+2 > "$OUT/objs/$o.all-headers"
$OBJDUMP --disassemble-all "$o" | tail -n+2 > "$OUT/objs/$o.disassemble-all"
done done
} }
...@@ -691,11 +721,13 @@ function cabal_abi_test() { ...@@ -691,11 +721,13 @@ function cabal_abi_test() {
start_section "Cabal test: $OUT" start_section "Cabal test: $OUT"
mkdir -p "$OUT" mkdir -p "$OUT"
run "$HC" \ "$HC" \
-hidir tmp -odir tmp -fforce-recomp -haddock \ -hidir tmp -odir tmp -fforce-recomp -haddock \
-iCabal/Cabal/src -XNoPolyKinds Distribution.Simple -j"$cores" \ -iCabal/Cabal/src -XNoPolyKinds Distribution.Simple -j"$cores" \
"$@" 2>&1 | tee $OUT/log -fobject-determinism \
"$@" 2>&1 | sed '1d' | tee $OUT/log
summarise_hi_files summarise_hi_files
summarise_o_files
popd popd
end_section "Cabal test: $OUT" end_section "Cabal test: $OUT"
} }
...@@ -740,12 +772,40 @@ function check_interfaces(){ ...@@ -740,12 +772,40 @@ function check_interfaces(){
for line in $(echo "$difference" | tr ' ' '\n' | grep ".hi" | sort | uniq); do for line in $(echo "$difference" | tr ' ' '\n' | grep ".hi" | sort | uniq); do
diff "$1/$line" "$2/$line" diff "$1/$line" "$2/$line"
done done
fail "$3" fail "$4"
fi fi
} }
function check_objects(){
# Big fast check
if diff -r "$1" "$2"
then
echo "Objects are the same"
else
echo "--------------------------------------------------------------------------------"
echo "Comparing all objects (1. headers, 2. disassembly). Stopping at first failure..."
echo "--------------------------------------------------------------------------------"
pushd "$1" >/dev/null
OBJ_DUMPS=$(find . -type f -name "*.all-headers" -or -name "*.disassemble-all")
popd >/dev/null
for dump in $OBJ_DUMPS
do
if diff "$1/$dump" "$2/$dump"
then
fail "Mismatched object: $dump"
fi
done
fail "Some objects are mismatched, but theres no diff with --all-headers or --disassemble-all. Perhaps try objdump -s"
fi
}
function abi_test() { function abi_test() {
for i in {1..20}; do info "iteration $i"; run_abi_test; done for i in {1..10}; do info "iteration $i"; run_abi_test; done
} }
function run_abi_test() { function run_abi_test() {
...@@ -753,10 +813,12 @@ function run_abi_test() { ...@@ -753,10 +813,12 @@ function run_abi_test() {
fail "HC not set" fail "HC not set"
fi fi
mkdir -p out mkdir -p out
OUT="$PWD/out/run1" DIR=$(mktemp -d XXXX-looooooooong) cabal_abi_test -O0 OUT="$PWD/out/run1" DIR=$(mktemp -d XXXX-looooooooong) cabal_abi_test -O1 -haddock
OUT="$PWD/out/run2" DIR=$(mktemp -d XXXX-short) cabal_abi_test -O0 # Count uniques in reverse one of the runs to get more non-determinism exposed
OUT="$PWD/out/run2" DIR=$(mktemp -d XXXX-short) cabal_abi_test -O1 -haddock -dunique-increment=-1 -dinitial-unique=16777215
check_interfaces out/run1 out/run2 abis "Mismatched ABI hash" check_interfaces out/run1 out/run2 abis "Mismatched ABI hash"
check_interfaces out/run1 out/run2 interfaces "Mismatched interface hashes" check_interfaces out/run1 out/run2 interfaces "Mismatched interface hashes"
check_objects out/run1 out/run2
} }
function save_test_output() { function save_test_output() {
...@@ -898,7 +960,7 @@ if [ "${CI_COMMIT_BRANCH:-}" == "master" ] && [ "${CI_PROJECT_PATH:-}" == "ghc/ ...@@ -898,7 +960,7 @@ if [ "${CI_COMMIT_BRANCH:-}" == "master" ] && [ "${CI_PROJECT_PATH:-}" == "ghc/
fi fi
fi fi
if [ -n "${IGNORE_PERF_FAILURES:-}" ]; then if [ -n "${IGNORE_PERF_FAILURES:-}" ]; then
RUNTEST_ARGS="--ignore-perf-failures=$IGNORE_PERF_FAILURES" RUNTEST_ARGS=( "${RUNTEST_ARGS[@]:-}" "--ignore-perf-failures=$IGNORE_PERF_FAILURES" )
fi fi
if [[ -z ${BIGNUM_BACKEND:-} ]]; then BIGNUM_BACKEND=gmp; fi if [[ -z ${BIGNUM_BACKEND:-} ]]; then BIGNUM_BACKEND=gmp; fi
......
...@@ -12,15 +12,15 @@ ...@@ -12,15 +12,15 @@
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}, },
"nixpkgs": { "nixpkgs": {
"branch": "master", "branch": "nixos-unstable",
"description": "Nix Packages collection", "description": "Nix Packages collection",
"homepage": "", "homepage": "",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ce1aa29621356706746c53e2d480da7c68f6c972", "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60",
"sha256": "sha256:1sbs3gi1nf4rcbmnw69fw0fpvb3qvlsa84hqimv78vkpd6xb0bgg", "sha256": "1anwxmjpm21msnnlrjdz19w31bxnbpn4kgf93sn3npihi7wf4a8h",
"type": "tarball", "type": "tarball",
"url": "https://github.com/nixos/nixpkgs/archive/ce1aa29621356706746c53e2d480da7c68f6c972.tar.gz", "url": "https://github.com/nixos/nixpkgs/archive/2893f56de08021cffd9b6b6dfc70fd9ccd51eb60.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
} }
} }
...@@ -4,6 +4,7 @@ let ...@@ -4,6 +4,7 @@ let
sources = import ./nix/sources.nix; sources = import ./nix/sources.nix;
nixpkgsSrc = sources.nixpkgs; nixpkgsSrc = sources.nixpkgs;
pkgs = import nixpkgsSrc { inherit system; }; pkgs = import nixpkgsSrc { inherit system; };
hostPkgs = import nixpkgsSrc { };
in in
let let
...@@ -13,25 +14,29 @@ let ...@@ -13,25 +14,29 @@ let
targetTriple = pkgs.stdenv.targetPlatform.config; targetTriple = pkgs.stdenv.targetPlatform.config;
ghcBindists = let version = ghc.version; in { ghcBindists = let version = ghc.version; in {
aarch64-darwin = pkgs.fetchurl { aarch64-darwin = hostPkgs.fetchurl {
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-aarch64-apple-darwin.tar.xz"; url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-aarch64-apple-darwin.tar.xz";
sha256 = "sha256-tQUHsingxBizLktswGAoi6lJf92RKWLjsHB9CisANlg="; sha256 = "sha256-c1GTMJf3/yiW/t4QL532EswD5JVlgA4getkfsxj4TaA=";
}; };
x86_64-darwin = pkgs.fetchurl { x86_64-darwin = hostPkgs.fetchurl {
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz"; url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
sha256 = "sha256-OjXjVe+ZODDCc/hqtihqqz6CX25TKI0ZgORzkR5O3pQ="; sha256 = "sha256-LrYniMG0phsvyW6dhQC+3ompvzcxnwAe6GezEqqzoTQ=";
}; };
}; };
ghc = pkgs.stdenv.mkDerivation rec { ghc = pkgs.stdenv.mkDerivation rec {
version = "9.4.4"; # Using 9.6.2 because of #24050
version = "9.6.2";
name = "ghc"; name = "ghc";
src = ghcBindists.${pkgs.stdenv.hostPlatform.system}; src = ghcBindists.${pkgs.stdenv.hostPlatform.system};
configureFlags = [ configureFlags = [
"CC=/usr/bin/clang" "CC=/usr/bin/clang"
"CLANG=/usr/bin/clang" "CLANG=/usr/bin/clang"
"AR=/usr/bin/ar"
"LLC=${llvm}/bin/llc" "LLC=${llvm}/bin/llc"
"OPT=${llvm}/bin/opt" "OPT=${llvm}/bin/opt"
"LLVMAS=${llvm_clang}/bin/clang"
"CONF_CC_OPTS_STAGE2=--target=${targetTriple}" "CONF_CC_OPTS_STAGE2=--target=${targetTriple}"
"CONF_CXX_OPTS_STAGE2=--target=${targetTriple}" "CONF_CXX_OPTS_STAGE2=--target=${targetTriple}"
"CONF_GCC_LINKER_OPTS_STAGE2=--target=${targetTriple}" "CONF_GCC_LINKER_OPTS_STAGE2=--target=${targetTriple}"
...@@ -92,7 +97,8 @@ let ...@@ -92,7 +97,8 @@ let
}; };
fonts = with pkgs; makeFontsConf { fontDirectories = [ dejavu_fonts ]; }; fonts = with pkgs; makeFontsConf { fontDirectories = [ dejavu_fonts ]; };
llvm = pkgs.llvm_11; llvm = pkgs.llvm_15;
llvm_clang = pkgs.llvmPackages_15.clang-unwrapped;
in in
pkgs.writeTextFile { pkgs.writeTextFile {
name = "toolchain"; name = "toolchain";
...@@ -108,6 +114,7 @@ pkgs.writeTextFile { ...@@ -108,6 +114,7 @@ pkgs.writeTextFile {
export GHC="${ghc}/bin/ghc" export GHC="${ghc}/bin/ghc"
export LLC="${llvm}/bin/llc" export LLC="${llvm}/bin/llc"
export OPT="${llvm}/bin/opt" export OPT="${llvm}/bin/opt"
export LLVMAS="${llvm_clang}/bin/clang"
export SPHINXBUILD="${pkgs.python3Packages.sphinx}/bin/sphinx-build" export SPHINXBUILD="${pkgs.python3Packages.sphinx}/bin/sphinx-build"
export CABAL_INSTALL="${pkgs.cabal-install}/bin/cabal" export CABAL_INSTALL="${pkgs.cabal-install}/bin/cabal"
export CABAL="$CABAL_INSTALL" export CABAL="$CABAL_INSTALL"
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1687709756, "lastModified": 1710146030,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github" "type": "github"
}, },
"original": { "original": {
...@@ -20,11 +20,11 @@ ...@@ -20,11 +20,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1687886075, "lastModified": 1724334015,
"narHash": "sha256-PeayJDDDy+uw1Ats4moZnRdL1OFuZm1Tj+KiHlD67+o=", "narHash": "sha256-5sfvc0MswIRNdRWioUhG58rGKGn2o90Ck6l6ClpwQqA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a565059a348422af5af9026b5174dc5c0dcefdae", "rev": "6d204f819efff3d552a88d0a44b5aaaee172b784",
"type": "github" "type": "github"
}, },
"original": { "original": {
......
...@@ -5,6 +5,12 @@ ...@@ -5,6 +5,12 @@
{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE ViewPatterns #-} {-# LANGUAGE ViewPatterns #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
{-# HLINT ignore "Use newtype instead of data" #-}
{-# HLINT ignore "Use camelCase" #-}
{-# LANGUAGE DerivingStrategies #-}
import Data.Aeson as A import Data.Aeson as A
import qualified Data.Map as Map import qualified Data.Map as Map
import Data.Map (Map) import Data.Map (Map)
...@@ -101,21 +107,24 @@ There are two different modes this script can operate in: ...@@ -101,21 +107,24 @@ There are two different modes this script can operate in:
data Opsys data Opsys
= Linux LinuxDistro = Linux LinuxDistro
| Darwin | Darwin
| FreeBSD13 | FreeBSD14
| Windows deriving (Eq) | Windows deriving (Eq)
data LinuxDistro data LinuxDistro
= Debian12 = Debian12
| Debian12Riscv
| Debian11 | Debian11
| Debian11Js
| Debian10 | Debian10
| Debian9 | Debian9
| Fedora33 | Fedora33
| Fedora38 | Fedora38
| Ubuntu2204
| Ubuntu2004 | Ubuntu2004
| Ubuntu1804 | Ubuntu1804
| Centos7
| Alpine312 | Alpine312
| Alpine318 | Alpine318
| Alpine320
| AlpineWasm | AlpineWasm
| Rocky8 | Rocky8
deriving (Eq) deriving (Eq)
...@@ -148,10 +157,13 @@ data BuildConfig ...@@ -148,10 +157,13 @@ data BuildConfig
, crossEmulator :: CrossEmulator , crossEmulator :: CrossEmulator
, configureWrapper :: Maybe String , configureWrapper :: Maybe String
, fullyStatic :: Bool , fullyStatic :: Bool
, hostFullyStatic :: Bool
, tablesNextToCode :: Bool , tablesNextToCode :: Bool
, threadSanitiser :: Bool , threadSanitiser :: Bool
, noSplitSections :: Bool , noSplitSections :: Bool
, validateNonmovingGc :: Bool , validateNonmovingGc :: Bool
, textWithSIMDUTF :: Bool
, testsuiteUsePerf :: Bool
} }
-- Extra arguments to pass to ./configure due to the BuildConfig -- Extra arguments to pass to ./configure due to the BuildConfig
...@@ -171,9 +183,11 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts ...@@ -171,9 +183,11 @@ mkJobFlavour BuildConfig{..} = Flavour buildFlavour opts
opts = [Llvm | llvmBootstrap] ++ opts = [Llvm | llvmBootstrap] ++
[Dwarf | withDwarf] ++ [Dwarf | withDwarf] ++
[FullyStatic | fullyStatic] ++ [FullyStatic | fullyStatic] ++
[HostFullyStatic | hostFullyStatic] ++
[ThreadSanitiser | threadSanitiser] ++ [ThreadSanitiser | threadSanitiser] ++
[NoSplitSections | noSplitSections, buildFlavour == Release ] ++ [NoSplitSections | noSplitSections, buildFlavour == Release ] ++
[BootNonmovingGc | validateNonmovingGc ] [BootNonmovingGc | validateNonmovingGc ] ++
[TextWithSIMDUTF | textWithSIMDUTF]
data Flavour = Flavour BaseFlavour [FlavourTrans] data Flavour = Flavour BaseFlavour [FlavourTrans]
...@@ -181,14 +195,16 @@ data FlavourTrans = ...@@ -181,14 +195,16 @@ data FlavourTrans =
Llvm Llvm
| Dwarf | Dwarf
| FullyStatic | FullyStatic
| HostFullyStatic
| ThreadSanitiser | ThreadSanitiser
| NoSplitSections | NoSplitSections
| BootNonmovingGc | BootNonmovingGc
| TextWithSIMDUTF
data BaseFlavour = Release | Validate | SlowValidate deriving Eq data BaseFlavour = Release | Validate | SlowValidate deriving Eq
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Build Configs -- Build Configurations
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- | A standard build config -- | A standard build config
...@@ -206,10 +222,13 @@ vanilla = BuildConfig ...@@ -206,10 +222,13 @@ vanilla = BuildConfig
, crossEmulator = NoEmulator , crossEmulator = NoEmulator
, configureWrapper = Nothing , configureWrapper = Nothing
, fullyStatic = False , fullyStatic = False
, hostFullyStatic = False
, tablesNextToCode = True , tablesNextToCode = True
, threadSanitiser = False , threadSanitiser = False
, noSplitSections = False , noSplitSections = False
, validateNonmovingGc = False , validateNonmovingGc = False
, textWithSIMDUTF = False
, testsuiteUsePerf = False
} }
splitSectionsBroken :: BuildConfig -> BuildConfig splitSectionsBroken :: BuildConfig -> BuildConfig
...@@ -230,7 +249,7 @@ releaseConfig = vanilla { buildFlavour = Release } ...@@ -230,7 +249,7 @@ releaseConfig = vanilla { buildFlavour = Release }
debug :: BuildConfig debug :: BuildConfig
debug = vanilla { buildFlavour = SlowValidate debug = vanilla { buildFlavour = SlowValidate
, withAssertions = True , withAssertions = True
-- WithNuma so at least one job tests Numa -- WithNuma so at least one job tests Numa
, withNuma = True , withNuma = True
} }
...@@ -262,53 +281,62 @@ tsan = vanilla { threadSanitiser = True } ...@@ -262,53 +281,62 @@ tsan = vanilla { threadSanitiser = True }
noTntc :: BuildConfig noTntc :: BuildConfig
noTntc = vanilla { tablesNextToCode = False } noTntc = vanilla { tablesNextToCode = False }
usePerfProfilingTestsuite :: BuildConfig -> BuildConfig
usePerfProfilingTestsuite bc = bc { testsuiteUsePerf = True }
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Platform specific variables -- Identifying Platforms
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- | These tags have to match what we call the runners on gitlab -- | These tags have to match what we call the runners on gitlab
runnerTag :: Arch -> Opsys -> String runnerTag :: Arch -> Opsys -> String
runnerTag arch (Linux _) = runnerTag arch (Linux _) =
case arch of case arch of
Amd64 -> "x86_64-linux" Amd64 -> "x86_64-linux"
AArch64 -> "aarch64-linux" AArch64 -> "aarch64-linux"
I386 -> "x86_64-linux" I386 -> "x86_64-linux"
runnerTag AArch64 Darwin = "aarch64-darwin" runnerTag AArch64 Darwin = "aarch64-darwin"
runnerTag Amd64 Darwin = "x86_64-darwin-m1" runnerTag Amd64 Darwin = "x86_64-darwin-m1"
runnerTag Amd64 Windows = "new-x86_64-windows" runnerTag Amd64 Windows = "new-x86_64-windows"
runnerTag Amd64 FreeBSD13 = "x86_64-freebsd13" runnerTag Amd64 FreeBSD14 = "x86_64-freebsd14"
runnerTag _ _ = error "Invalid arch/opsys" runnerTag _ _ = error "Invalid arch/opsys"
tags :: Arch -> Opsys -> BuildConfig -> [String] tags :: Arch -> Opsys -> BuildConfig -> [String]
tags arch opsys _bc = [runnerTag arch opsys] -- Tag for which runners we can use tags arch opsys _bc = [runnerTag arch opsys] -- Tag for which runners we can use
runnerPerfTag :: Arch -> Opsys -> String
runnerPerfTag arch sys = runnerTag arch sys ++ "-perf"
-- These names are used to find the docker image so they have to match what is -- These names are used to find the docker image so they have to match what is
-- in the docker registry. -- in the docker registry.
distroName :: LinuxDistro -> String distroName :: LinuxDistro -> String
distroName Debian12 = "deb12" distroName Debian12 = "deb12"
distroName Debian11 = "deb11" distroName Debian11 = "deb11"
distroName Debian10 = "deb10" distroName Debian11Js = "deb11-emsdk-closure"
distroName Debian9 = "deb9" distroName Debian12Riscv = "deb12-riscv"
distroName Fedora33 = "fedora33" distroName Debian10 = "deb10"
distroName Fedora38 = "fedora38" distroName Debian9 = "deb9"
distroName Ubuntu1804 = "ubuntu18_04" distroName Fedora33 = "fedora33"
distroName Ubuntu2004 = "ubuntu20_04" distroName Fedora38 = "fedora38"
distroName Centos7 = "centos7" distroName Ubuntu1804 = "ubuntu18_04"
distroName Alpine312 = "alpine3_12" distroName Ubuntu2004 = "ubuntu20_04"
distroName Alpine318 = "alpine3_18" distroName Ubuntu2204 = "ubuntu22_04"
distroName AlpineWasm = "alpine3_17-wasm" distroName Alpine312 = "alpine3_12"
distroName Rocky8 = "rocky8" distroName Alpine318 = "alpine3_18"
distroName Alpine320 = "alpine3_20"
distroName AlpineWasm = "alpine3_20-wasm"
distroName Rocky8 = "rocky8"
opsysName :: Opsys -> String opsysName :: Opsys -> String
opsysName (Linux distro) = "linux-" ++ distroName distro opsysName (Linux distro) = "linux-" ++ distroName distro
opsysName Darwin = "darwin" opsysName Darwin = "darwin"
opsysName FreeBSD13 = "freebsd13" opsysName FreeBSD14 = "freebsd14"
opsysName Windows = "windows" opsysName Windows = "windows"
archName :: Arch -> String archName :: Arch -> String
archName Amd64 = "x86_64" archName Amd64 = "x86_64"
archName AArch64 = "aarch64" archName AArch64 = "aarch64"
archName I386 = "i386" archName I386 = "i386"
binDistName :: Arch -> Opsys -> BuildConfig -> String binDistName :: Arch -> Opsys -> BuildConfig -> String
binDistName arch opsys bc = "ghc-" ++ testEnv arch opsys bc binDistName arch opsys bc = "ghc-" ++ testEnv arch opsys bc
...@@ -317,16 +345,18 @@ binDistName arch opsys bc = "ghc-" ++ testEnv arch opsys bc ...@@ -317,16 +345,18 @@ binDistName arch opsys bc = "ghc-" ++ testEnv arch opsys bc
-- Either the change is reflected by modifying the flavourString or directly (as is -- Either the change is reflected by modifying the flavourString or directly (as is
-- the case for settings which affect environment variables) -- the case for settings which affect environment variables)
testEnv :: Arch -> Opsys -> BuildConfig -> String testEnv :: Arch -> Opsys -> BuildConfig -> String
testEnv arch opsys bc = intercalate "-" $ testEnv arch opsys bc =
[ archName arch intercalate "-" $ concat
, opsysName opsys ] [ [ archName arch
++ ["int_" ++ bignumString (bignumBackend bc) | bignumBackend bc /= Gmp] , opsysName opsys ]
++ ["unreg" | unregisterised bc ] , ["int_" ++ bignumString (bignumBackend bc) | bignumBackend bc /= Gmp]
++ ["numa" | withNuma bc ] , ["unreg" | unregisterised bc ]
++ ["zstd" | withZstd bc ] , ["numa" | withNuma bc ]
++ ["no_tntc" | not (tablesNextToCode bc) ] , ["zstd" | withZstd bc ]
++ ["cross_"++triple | Just triple <- pure $ crossTarget bc ] , ["no_tntc" | not (tablesNextToCode bc) ]
++ [flavourString (mkJobFlavour bc)] , ["cross_"++triple | Just triple <- pure $ crossTarget bc ]
, [flavourString (mkJobFlavour bc)]
]
-- | The hadrian flavour string we are going to use for this build -- | The hadrian flavour string we are going to use for this build
flavourString :: Flavour -> String flavourString :: Flavour -> String
...@@ -339,9 +369,11 @@ flavourString (Flavour base trans) = base_string base ++ concatMap (("+" ++) . f ...@@ -339,9 +369,11 @@ flavourString (Flavour base trans) = base_string base ++ concatMap (("+" ++) . f
flavour_string Llvm = "llvm" flavour_string Llvm = "llvm"
flavour_string Dwarf = "debug_info" flavour_string Dwarf = "debug_info"
flavour_string FullyStatic = "fully_static" flavour_string FullyStatic = "fully_static"
flavour_string ThreadSanitiser = "thread_sanitizer" flavour_string HostFullyStatic = "host_fully_static"
flavour_string ThreadSanitiser = "thread_sanitizer_cmm"
flavour_string NoSplitSections = "no_split_sections" flavour_string NoSplitSections = "no_split_sections"
flavour_string BootNonmovingGc = "boot_nonmoving_gc" flavour_string BootNonmovingGc = "boot_nonmoving_gc"
flavour_string TextWithSIMDUTF = "text_simdutf"
-- The path to the docker image (just for linux builders) -- The path to the docker image (just for linux builders)
dockerImage :: Arch -> Opsys -> Maybe String dockerImage :: Arch -> Opsys -> Maybe String
...@@ -358,7 +390,7 @@ dockerImage arch (Linux distro) = ...@@ -358,7 +390,7 @@ dockerImage arch (Linux distro) =
dockerImage _ _ = Nothing dockerImage _ _ = Nothing
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Platform specific variables -- Platform-specific variables
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- The variables map is a monoidal map so that we don't ever accidentally lose -- The variables map is a monoidal map so that we don't ever accidentally lose
...@@ -389,86 +421,99 @@ type Variables = MonoidalMap String [String] ...@@ -389,86 +421,99 @@ type Variables = MonoidalMap String [String]
(=:) :: String -> String -> Variables (=:) :: String -> String -> Variables
a =: b = MonoidalMap (Map.singleton a [b]) a =: b = MonoidalMap (Map.singleton a [b])
type TestName = String
brokenTest :: TestName -- ^ test name
-> String -- ^ explanation of breakage
-> Variables
brokenTest test _why = "BROKEN_TESTS" =: test
opsysVariables :: Arch -> Opsys -> Variables opsysVariables :: Arch -> Opsys -> Variables
opsysVariables _ FreeBSD13 = mconcat opsysVariables _ FreeBSD14 = mconcat
[ -- N.B. we use iconv from ports as I see linker errors when we attempt [ -- N.B. we use iconv from ports as I see linker errors when we attempt
-- to use the "native" iconv embedded in libc as suggested by the -- to use the "native" iconv embedded in libc as suggested by the
-- porting guide [1]. -- porting guide [1].
-- [1] https://www.freebsd.org/doc/en/books/porters-handbook/using-iconv.html) -- [1] https://www.freebsd.org/doc/en/books/porters-handbook/using-iconv.html)
"CONFIGURE_ARGS" =: "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib" "CONFIGURE_ARGS" =: "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib"
, "HADRIAN_ARGS" =: "--docs=no-sphinx" , "CONFIGURE_ARGS" =: "--with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib"
, "GHC_VERSION" =: "9.4.3" , "CONFIGURE_ARGS" =: "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib"
, "CABAL_INSTALL_VERSION" =: "3.8.1.0" -- Prefer to use the system's clang-based toolchain and not gcc
, "CC" =: "cc"
, "CXX" =: "c++"
, "GHC_VERSION" =: "9.6.4"
, "CABAL_INSTALL_VERSION" =: "3.10.3.0"
] ]
opsysVariables _ (Linux distro) = distroVariables distro opsysVariables arch (Linux distro) = distroVariables arch distro
opsysVariables AArch64 (Darwin {}) = opsysVariables AArch64 (Darwin {}) = mconcat
mconcat [ "NIX_SYSTEM" =: "aarch64-darwin" [ "NIX_SYSTEM" =: "aarch64-darwin"
, "MACOSX_DEPLOYMENT_TARGET" =: "11.0" , "MACOSX_DEPLOYMENT_TARGET" =: "11.0"
, "LANG" =: "en_US.UTF-8" , "LANG" =: "en_US.UTF-8"
, "CONFIGURE_ARGS" =: "--with-intree-gmp --with-system-libffi" , "CONFIGURE_ARGS" =: "--with-intree-gmp --with-system-libffi"
-- Fonts can't be installed on darwin -- Fonts can't be installed on darwin
, "HADRIAN_ARGS" =: "--docs=no-sphinx" , "HADRIAN_ARGS" =: "--docs=no-sphinx-pdfs"
] ]
opsysVariables Amd64 (Darwin {}) = opsysVariables Amd64 (Darwin {}) = mconcat
mconcat [ "NIX_SYSTEM" =: "x86_64-darwin" [ "NIX_SYSTEM" =: "x86_64-darwin"
, "MACOSX_DEPLOYMENT_TARGET" =: "10.13" , "MACOSX_DEPLOYMENT_TARGET" =: "11.0"
-- "# Only Sierra and onwards supports clock_gettime. See #12858" -- Only Sierra and onwards supports clock_gettime. See #12858
, "ac_cv_func_clock_gettime" =: "no" , "ac_cv_func_clock_gettime" =: "no"
-- # Only newer OS Xs support utimensat. See #17895 -- Only newer OS Xs support utimensat. See #17895
, "ac_cv_func_utimensat" =: "no" , "ac_cv_func_utimensat" =: "no"
-- # Only newer OS Xs support futimens. See #22938 -- Only newer OS Xs support futimens. See #22938
, "ac_cv_func_futimens" =: "no" , "ac_cv_func_futimens" =: "no"
, "LANG" =: "en_US.UTF-8" , "LANG" =: "en_US.UTF-8"
, "CONFIGURE_ARGS" =: "--with-intree-gmp --with-system-libffi" , "CONFIGURE_ARGS" =: "--with-intree-gmp --with-system-libffi"
-- Fonts can't be installed on darwin -- Fonts can't be installed on darwin
, "HADRIAN_ARGS" =: "--docs=no-sphinx" , "HADRIAN_ARGS" =: "--docs=no-sphinx-pdfs"
] ]
opsysVariables _ (Windows {}) = opsysVariables _ (Windows {}) = mconcat
mconcat [ "MSYSTEM" =: "CLANG64" [ "MSYSTEM" =: "CLANG64"
, "HADRIAN_ARGS" =: "--docs=no-sphinx" , "LANG" =: "en_US.UTF-8"
, "LANG" =: "en_US.UTF-8" , "CABAL_INSTALL_VERSION" =: "3.10.2.0"
, "CABAL_INSTALL_VERSION" =: "3.8.1.0" , "HADRIAN_ARGS" =: "--docs=no-sphinx-pdfs"
, "GHC_VERSION" =: "9.4.3" ] , "GHC_VERSION" =: "9.6.4"
]
opsysVariables _ _ = mempty opsysVariables _ _ = mempty
alpineVariables = mconcat alpineVariables :: Arch -> Variables
alpineVariables arch = mconcat $
[ -- Due to #20266 [ -- Due to #20266
"CONFIGURE_ARGS" =: "--disable-ld-override" "CONFIGURE_ARGS" =: "--disable-ld-override"
, "INSTALL_CONFIGURE_ARGS" =: "--disable-ld-override" , "INSTALL_CONFIGURE_ARGS" =: "--disable-ld-override"
, "HADRIAN_ARGS" =: "--docs=no-sphinx" , brokenTest "encoding004" "due to lack of locale support"
-- encoding004: due to lack of locale support , brokenTest "T10458" "#17869"
-- T10458, ghcilink002: due to #17869 ] ++
, "BROKEN_TESTS" =: "encoding004 T10458" [ mconcat [ brokenTest test "#25498" | test <- ["simd009", "T25062_V16", "T25169", "T22187_run"] ]
| I386 <- [arch]
] ++
[ brokenTest "T22033" "#25497" | I386 <- [arch] ] ++
[ -- Bootstrap compiler has incorrectly configured target triple #25200
"CONFIGURE_ARGS" =: "--enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux"
| AArch64 <- [arch]
] ]
distroVariables :: LinuxDistro -> Variables distroVariables :: Arch -> LinuxDistro -> Variables
distroVariables Alpine312 = alpineVariables distroVariables arch Alpine312 = alpineVariables arch
distroVariables Alpine318 = alpineVariables distroVariables arch Alpine318 = alpineVariables arch
distroVariables Centos7 = mconcat [ distroVariables arch Alpine320 = alpineVariables arch
"HADRIAN_ARGS" =: "--docs=no-sphinx" distroVariables _ Fedora33 = mconcat
, "BROKEN_TESTS" =: "T22012" -- due to #23979
]
distroVariables Rocky8 = mconcat [
"HADRIAN_ARGS" =: "--docs=no-sphinx"
]
distroVariables Fedora33 = mconcat
-- LLC/OPT do not work for some reason in our fedora images -- LLC/OPT do not work for some reason in our fedora images
-- These tests fail with this error: T11649 T5681 T7571 T8131b -- These tests fail with this error: T11649 T5681 T7571 T8131b
-- +/opt/llvm/bin/opt: /lib64/libtinfo.so.5: no version information available (required by /opt/llvm/bin/opt) -- +/opt/llvm/bin/opt: /lib64/libtinfo.so.5: no version information available (required by /opt/llvm/bin/opt)
-- +/opt/llvm/bin/llc: /lib64/libtinfo.so.5: no version information available (required by /opt/llvm/bin/llc) -- +/opt/llvm/bin/llc: /lib64/libtinfo.so.5: no version information available (required by /opt/llvm/bin/llc)
[ "LLC" =: "/bin/false" [ "LLC" =: "/bin/false"
, "OPT" =: "/bin/false" , "OPT" =: "/bin/false"
] ]
distroVariables _ = mempty distroVariables _ _ = mempty
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Cache settings, what to cache and when can we share the cache -- Cache settings, what to cache and when can we share the cache
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
data Cache data Cache
= Cache { cacheKey :: String = Cache { cacheKey :: String
, cachePaths :: [String] , cachePaths :: [String]
} }
...@@ -508,25 +553,27 @@ data ArtifactsWhen = ArtifactsOnSuccess | ArtifactsOnFailure | ArtifactsAlways ...@@ -508,25 +553,27 @@ data ArtifactsWhen = ArtifactsOnSuccess | ArtifactsOnFailure | ArtifactsAlways
instance ToJSON ArtifactsWhen where instance ToJSON ArtifactsWhen where
toJSON ArtifactsOnSuccess = "on_success" toJSON ArtifactsOnSuccess = "on_success"
toJSON ArtifactsOnFailure = "on_failure" toJSON ArtifactsOnFailure = "on_failure"
toJSON ArtifactsAlways = "always" toJSON ArtifactsAlways = "always"
----------------------------------------------------------------------------- ---------------------------------------------------------------------
-- Rules, when do we run a job -- Rules, when do we run a job
----------------------------------------------------------------------------- ---------------------------------------------------------------------
-- Data structure which records the condition when a job is run. -- | Data structure which records the condition when a job is run.
data OnOffRules = OnOffRules { rule_set :: Rule -- ^ The enabled rules data OnOffRules
, when :: ManualFlag -- ^ The additional condition about when to run this job. = OnOffRules { rule_set :: Rule -- ^ The enabled rules
} , when :: ManualFlag -- ^ The additional condition about when to run this job.
}
-- The initial set of rules, which assumes a Validate pipeline which is run with FullCI. -- The initial set of rules, which assumes a Validate pipeline which is run with FullCI.
emptyRules :: OnOffRules emptyRules :: String -> OnOffRules
emptyRules = OnOffRules (ValidateOnly (S.singleton FullCI)) OnSuccess emptyRules jobName = OnOffRules (ValidateOnly jobName (S.fromList [FullCI])) OnSuccess
-- When to run the job -- When to run the job
data ManualFlag = Manual -- ^ Only run the job when explicitly triggered by a user data ManualFlag
| OnSuccess -- ^ Always run it, if the rules pass (the default) = Manual -- ^ Only run the job when explicitly triggered by a user
deriving Eq | OnSuccess -- ^ Always run it, if the rules pass (the default)
deriving Eq
setRule :: Rule -> OnOffRules -> OnOffRules setRule :: Rule -> OnOffRules -> OnOffRules
setRule r (OnOffRules _ m) = OnOffRules r m setRule r (OnOffRules _ m) = OnOffRules r m
...@@ -538,10 +585,10 @@ onlyValidateRule :: ValidateRule -> OnOffRules -> OnOffRules ...@@ -538,10 +585,10 @@ onlyValidateRule :: ValidateRule -> OnOffRules -> OnOffRules
onlyValidateRule r = modifyValidateRules (const (S.singleton r)) onlyValidateRule r = modifyValidateRules (const (S.singleton r))
removeValidateRule :: ValidateRule -> OnOffRules -> OnOffRules removeValidateRule :: ValidateRule -> OnOffRules -> OnOffRules
removeValidateRule r = modifyValidateRules (S.delete r) removeValidateRule v = modifyValidateRules (S.delete v)
modifyValidateRules :: (S.Set ValidateRule -> S.Set ValidateRule) -> OnOffRules -> OnOffRules modifyValidateRules :: (S.Set ValidateRule -> S.Set ValidateRule) -> OnOffRules -> OnOffRules
modifyValidateRules f (OnOffRules (ValidateOnly rs) m) = OnOffRules (ValidateOnly (f rs)) m modifyValidateRules f (OnOffRules (ValidateOnly s rs) m) = OnOffRules (ValidateOnly s (f rs)) m
modifyValidateRules _ r = error $ "Applying validate rule to nightly/release job:" ++ show (rule_set r) modifyValidateRules _ r = error $ "Applying validate rule to nightly/release job:" ++ show (rule_set r)
manualRule :: OnOffRules -> OnOffRules manualRule :: OnOffRules -> OnOffRules
...@@ -553,18 +600,23 @@ manualRule rules = rules { when = Manual } ...@@ -553,18 +600,23 @@ manualRule rules = rules { when = Manual }
enumRules :: OnOffRules -> [OnOffRule] enumRules :: OnOffRules -> [OnOffRule]
enumRules (OnOffRules r _) = rulesList enumRules (OnOffRules r _) = rulesList
where where
rulesList = case r of rulesList =
ValidateOnly rs -> [OnOffRule On (ValidateOnly rs) case r of
, OnOffRule Off ReleaseOnly ValidateOnly s rs ->
, OnOffRule Off Nightly ] [ OnOffRule On (ValidateOnly s rs)
Nightly -> [ OnOffRule Off (ValidateOnly S.empty) , OnOffRule Off ReleaseOnly
, OnOffRule Off ReleaseOnly , OnOffRule Off Nightly
, OnOffRule On Nightly ] ]
ReleaseOnly -> [ OnOffRule Off (ValidateOnly S.empty) Nightly ->
, OnOffRule On ReleaseOnly [ OnOffRule Off (ValidateOnly "" S.empty)
, OnOffRule Off Nightly ] , OnOffRule Off ReleaseOnly
, OnOffRule On Nightly
]
ReleaseOnly ->
[ OnOffRule Off (ValidateOnly "" S.empty)
, OnOffRule On ReleaseOnly
, OnOffRule Off Nightly
]
data OnOffRule = OnOffRule OnOff Rule data OnOffRule = OnOffRule OnOff Rule
...@@ -575,86 +627,149 @@ instance ToJSON ManualFlag where ...@@ -575,86 +627,149 @@ instance ToJSON ManualFlag where
toJSON OnSuccess = "on_success" toJSON OnSuccess = "on_success"
instance ToJSON OnOffRules where instance ToJSON OnOffRules where
toJSON rules = toJSON [object ([ toJSON rules = toJSON
"if" A..= and_all (map one_rule (enumRules rules)) [object $
, "when" A..= toJSON (when rules)] [ "if" A..= and_all (map one_rule (enumRules rules))
-- Necessary to stop manual jobs stopping pipeline progress , "when" A..= toJSON (when rules)
-- https://docs.gitlab.com/ee/ci/yaml/#rulesallow_failure ] ++
++ -- Necessary to stop manual jobs stopping pipeline progress
["allow_failure" A..= True | when rules == Manual ])] -- https://docs.gitlab.com/ee/ci/yaml/#rulesallow_failure
[ "allow_failure" A..= True | when rules == Manual ]
]
where where
one_rule (OnOffRule onoff r) = ruleString onoff r one_rule (OnOffRule onoff r) = ruleToCond onoff r
---------------------------------------------------------------------
-- Rule conditions
---------------------------------------------------------------------
parens :: [Char] -> [Char] -- | A predicate in GitLab's rules language.
parens s = "(" ++ s ++ ")" newtype Cond = Cond { getCond :: String }
and_all :: [[Char]] -> [Char] deriving newtype (ToJSON)
and_all rs = intercalate " && " (map parens rs)
or_all :: [[Char]] -> [Char]
or_all rs = intercalate " || " (map parens rs)
-- | A Rule corresponds to some condition which must be satisifed in order to parens :: Cond -> Cond
-- run the job. parens (Cond s) = Cond $ "(" ++ s ++ ")"
data Rule = ReleaseOnly -- ^ Only run this job in a release pipeline
| Nightly -- ^ Only run this job in the nightly pipeline and_all :: [Cond] -> Cond
| ValidateOnly (S.Set ValidateRule) -- ^ Only run this job in a validate pipeline, when any of these rules are enabled. and_all =
deriving (Show, Ord, Eq) Cond . intercalate " && " . map (getCond . parens)
data ValidateRule = or_all :: [Cond] -> Cond
FullCI -- ^ Run this job when the "full-ci" label is present. or_all =
| LLVMBackend -- ^ Run this job when the "LLVM backend" label is present Cond . intercalate " || " . map (getCond . parens)
| JSBackend -- ^ Run this job when the "javascript" label is present
| FreeBSDLabel -- ^ Run this job when the "FreeBSD" label is set. type Var = String
| NonmovingGc -- ^ Run this job when the "non-moving GC" label is set.
| IpeData -- ^ Run this job when the "IPE" label is set varIsSet :: Var -> Cond
| TestPrimops -- ^ Run this job when "test-primops" label is set varIsSet var =
deriving (Show, Enum, Bounded, Ord, Eq) Cond $ "$" <> var
-- A constant evaluating to True because gitlab doesn't support "true" in the -- | A constant evaluating to True because gitlab doesn't support "true" in the
-- expression language. -- expression language.
true :: String true :: Cond
true = "\"true\" == \"true\"" true = Cond "\"true\" == \"true\""
-- A constant evaluating to False because gitlab doesn't support "true" in the
-- | A constant evaluating to False because gitlab doesn't support "true" in the
-- expression language. -- expression language.
_false :: String _false :: Cond
_false = "\"disabled\" != \"disabled\"" _false = Cond "\"disabled\" != \"disabled\""
-- Convert the state of the rule into a string that gitlab understand. labelString :: String -> Cond
ruleString :: OnOff -> Rule -> String labelString s =
ruleString On (ValidateOnly vs) = Cond $ "$CI_MERGE_REQUEST_LABELS =~ /.*" ++ s ++ ".*/"
case S.toList vs of
[] -> true branchStringExact :: String -> Cond
conds -> or_all (map validateRuleString conds) branchStringExact =
ruleString Off (ValidateOnly {}) = true varEqString "CI_COMMIT_BRANCH"
ruleString On ReleaseOnly = "$RELEASE_JOB == \"yes\""
ruleString Off ReleaseOnly = "$RELEASE_JOB != \"yes\"" branchStringLike :: String -> Cond
ruleString On Nightly = "$NIGHTLY" branchStringLike s =
ruleString Off Nightly = "$NIGHTLY == null" Cond $ "$CI_COMMIT_BRANCH =~ /" ++ s ++ "/"
labelString :: String -> String varEqString :: String -> String -> Cond
labelString s = "$CI_MERGE_REQUEST_LABELS =~ /.*" ++ s ++ ".*/" varEqString var s =
Cond $ "$" ++ var ++ " == \"" ++ s ++ "\""
branchStringExact :: String -> String
branchStringExact s = "$CI_COMMIT_BRANCH == \"" ++ s ++ "\"" varNeString :: String -> String -> Cond
varNeString var s =
branchStringLike :: String -> String Cond $ "$" ++ var ++ " != \"" ++ s ++ "\""
branchStringLike s = "$CI_COMMIT_BRANCH =~ /" ++ s ++ "/"
varIsNull :: String -> Cond
varIsNull var =
validateRuleString :: ValidateRule -> String Cond $ "$" ++ var ++ " == null"
validateRuleString FullCI = or_all ([ labelString "full-ci"
, labelString "marge_bot_batch_merge_job" ---------------------------------------------------------------------
, branchStringExact "master" -- Our Rules
, branchStringLike "ghc-[0-9]+\\.[0-9]+" ---------------------------------------------------------------------
])
-- | A Rule corresponds to some condition which must be satisifed in order to
-- run the job.
data Rule
= ReleaseOnly -- ^ Only run this job in a release pipeline
| Nightly -- ^ Only run this job in the nightly pipeline
| ValidateOnly String (S.Set ValidateRule) -- ^ Only run this job in a validate pipeline, when any of these rules are enabled.
deriving (Show, Ord, Eq)
data ValidateRule
= FullCI -- ^ Run this job when the "full-ci" label is present.
| FastCI -- ^ Run this job on every validation pipeline
| LLVMBackend -- ^ Run this job when the "LLVM backend" label is present
| JSBackend -- ^ Run this job when the "javascript" label is present
| RiscV -- ^ Run this job when the "RISC-V" label is present
| WasmBackend -- ^ Run this job when the "wasm" label is present
| FreeBSDLabel -- ^ Run this job when the "FreeBSD" label is set.
| NonmovingGc -- ^ Run this job when the "non-moving GC" label is set.
| IpeData -- ^ Run this job when the "IPE" label is set
| TestPrimops -- ^ Run this job when "test-primops" label is set
| I386Backend -- ^ Run this job when the "i386" label is set
deriving (Show, Ord, Eq)
-- | Convert the state of the rule into a string that gitlab understand.
ruleToCond :: OnOff -> Rule -> Cond
ruleToCond On (ValidateOnly only_job_name vs) =
or_all
[ -- 1. Case when ONLY_JOBS is set
and_all [ varIsSet "ONLY_JOBS"
, Cond $ "$ONLY_JOBS =~ /.*\\b" ++ escape only_job_name ++ "(\\s|$).*/"
]
-- 2. Case when ONLY_JOBS is null
, and_all [ varIsNull "ONLY_JOBS"
, case S.toList vs of
[] -> _false
cs -> or_all (map validateRuleString cs)
]
]
where
escape :: String -> String
escape = concatMap (\c -> if c == '+' then "\\+" else [c])
ruleToCond Off (ValidateOnly {}) = true
ruleToCond On ReleaseOnly = "RELEASE_JOB" `varEqString` "yes"
ruleToCond Off ReleaseOnly = "RELEASE_JOB" `varNeString` "yes"
ruleToCond On Nightly = varIsSet "NIGHTLY"
ruleToCond Off Nightly = varIsNull "NIGHTLY"
validateRuleString :: ValidateRule -> Cond
validateRuleString FullCI = or_all [ labelString "full-ci"
, labelString "marge_bot_batch_merge_job"
, branchStringExact "master"
, branchStringLike "ghc-[0-9]+\\.[0-9]+"
]
validateRuleString FastCI = true
validateRuleString LLVMBackend = labelString "LLVM backend" validateRuleString LLVMBackend = labelString "LLVM backend"
validateRuleString JSBackend = labelString "javascript" validateRuleString JSBackend = labelString "javascript"
validateRuleString RiscV = labelString "RISC-V"
validateRuleString WasmBackend = labelString "wasm"
validateRuleString FreeBSDLabel = labelString "FreeBSD" validateRuleString FreeBSDLabel = labelString "FreeBSD"
validateRuleString NonmovingGc = labelString "non-moving GC" validateRuleString NonmovingGc = labelString "non-moving GC"
validateRuleString IpeData = labelString "IPE" validateRuleString IpeData = labelString "IPE"
validateRuleString TestPrimops = labelString "test-primops" validateRuleString TestPrimops = labelString "test-primops"
validateRuleString I386Backend = labelString "i386"
---------------------------------------------------------------------
-- The Job type
---------------------------------------------------------------------
-- | A 'Job' is the description of a single job in a gitlab pipeline. The -- | A 'Job' is the description of a single job in a gitlab pipeline. The
-- job contains all the information about how to do the build but can be further -- job contains all the information about how to do the build but can be further
...@@ -679,15 +794,15 @@ data Job ...@@ -679,15 +794,15 @@ data Job
instance ToJSON Job where instance ToJSON Job where
toJSON Job{..} = object toJSON Job{..} = object
[ "stage" A..= jobStage [ "stage" A..= jobStage
-- Convoluted to avoid download artifacts from ghci job -- Convoluted to avoid download artifacts from ghci job
-- https://docs.gitlab.com/ee/ci/yaml/#needsartifacts -- https://docs.gitlab.com/ee/ci/yaml/#needsartifacts
, "needs" A..= map (\j -> object [ "job" A..= j, "artifacts" A..= False ]) jobNeeds , "needs" A..= map (\j -> object [ "job" A..= j, "artifacts" A..= False ]) jobNeeds
, "dependencies" A..= jobDependencies , "dependencies" A..= jobDependencies
, "image" A..= jobDockerImage , "image" A..= jobDockerImage
, "tags" A..= jobTags , "tags" A..= jobTags
, "allow_failure" A..= jobAllowFailure , "allow_failure" A..= jobAllowFailure
-- Joining up variables like this may well be the wrong thing to do but -- Joining up variables like this may well be the wrong thing to do but
-- at least it doesn't lose information silently by overriding. -- at least it doesn't lose information silently by overriding.
, "variables" A..= fmap unwords jobVariables , "variables" A..= fmap unwords jobVariables
, "artifacts" A..= jobArtifacts , "artifacts" A..= jobArtifacts
, "cache" A..= jobCache , "cache" A..= jobCache
...@@ -702,7 +817,7 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } ...@@ -702,7 +817,7 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
where where
jobPlatform = (arch, opsys) jobPlatform = (arch, opsys)
jobRules = emptyRules jobRules = emptyRules jobName
jobName = testEnv arch opsys buildConfig jobName = testEnv arch opsys buildConfig
...@@ -715,7 +830,8 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } ...@@ -715,7 +830,8 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
= [ "bash .gitlab/ci.sh setup" = [ "bash .gitlab/ci.sh setup"
, "bash .gitlab/ci.sh configure" , "bash .gitlab/ci.sh configure"
, "bash .gitlab/ci.sh build_hadrian" , "bash .gitlab/ci.sh build_hadrian"
, "bash .gitlab/ci.sh test_hadrian" ] , "bash .gitlab/ci.sh test_hadrian"
]
| otherwise | otherwise
= [ "find libraries -name config.sub -exec cp config.sub {} \\;" | Darwin == opsys ] ++ = [ "find libraries -name config.sub -exec cp config.sub {} \\;" | Darwin == opsys ] ++
[ "sudo chown ghc:ghc -R ." | Linux {} <- [opsys]] ++ [ "sudo chown ghc:ghc -R ." | Linux {} <- [opsys]] ++
...@@ -735,7 +851,8 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } ...@@ -735,7 +851,8 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
[ ".gitlab/ci.sh save_cache" [ ".gitlab/ci.sh save_cache"
, ".gitlab/ci.sh save_test_output" , ".gitlab/ci.sh save_test_output"
, ".gitlab/ci.sh clean" , ".gitlab/ci.sh clean"
, "cat ci_timings" ] , "cat ci_timings"
]
jobFlavour = mkJobFlavour buildConfig jobFlavour = mkJobFlavour buildConfig
...@@ -747,12 +864,15 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } ...@@ -747,12 +864,15 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
, "BUILD_FLAVOUR" =: flavourString jobFlavour , "BUILD_FLAVOUR" =: flavourString jobFlavour
, "BIGNUM_BACKEND" =: bignumString (bignumBackend buildConfig) , "BIGNUM_BACKEND" =: bignumString (bignumBackend buildConfig)
, "CONFIGURE_ARGS" =: configureArgsStr buildConfig , "CONFIGURE_ARGS" =: configureArgsStr buildConfig
, "INSTALL_CONFIGURE_ARGS" =: "--enable-strict-ghc-toolchain-check"
, maybe mempty ("CONFIGURE_WRAPPER" =:) (configureWrapper buildConfig) , maybe mempty ("CONFIGURE_WRAPPER" =:) (configureWrapper buildConfig)
, maybe mempty ("CROSS_TARGET" =:) (crossTarget buildConfig) , maybe mempty ("CROSS_TARGET" =:) (crossTarget buildConfig)
, case crossEmulator buildConfig of , case crossEmulator buildConfig of
NoEmulator -> case crossTarget buildConfig of NoEmulator
Nothing -> mempty -- we need an emulator but it isn't set. Won't run the testsuite
Just _ -> "CROSS_EMULATOR" =: "NOT_SET" -- we need an emulator but it isn't set. Won't run the testsuite | Just _ <- crossTarget buildConfig
-> "CROSS_EMULATOR" =: "NOT_SET"
| otherwise -> mempty
Emulator s -> "CROSS_EMULATOR" =: s Emulator s -> "CROSS_EMULATOR" =: s
NoEmulatorNeeded -> mempty NoEmulatorNeeded -> mempty
, if withNuma buildConfig then "ENABLE_NUMA" =: "1" else mempty , if withNuma buildConfig then "ENABLE_NUMA" =: "1" else mempty
...@@ -761,6 +881,7 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } ...@@ -761,6 +881,7 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
| validateNonmovingGc buildConfig | validateNonmovingGc buildConfig
] ]
in "RUNTEST_ARGS" =: unwords runtestArgs in "RUNTEST_ARGS" =: unwords runtestArgs
, if testsuiteUsePerf buildConfig then "RUNTEST_ARGS" =: "--config perf_path=perf" else mempty
] ]
jobArtifacts = Artifacts jobArtifacts = Artifacts
...@@ -831,8 +952,10 @@ setVariable k v j = j { jobVariables = MonoidalMap $ Map.insert k [v] $ unMonoid ...@@ -831,8 +952,10 @@ setVariable k v j = j { jobVariables = MonoidalMap $ Map.insert k [v] $ unMonoid
delVariable :: String -> Job -> Job delVariable :: String -> Job -> Job
delVariable k j = j { jobVariables = MonoidalMap $ Map.delete k $ unMonoidalMap $ jobVariables j } delVariable k j = j { jobVariables = MonoidalMap $ Map.delete k $ unMonoidalMap $ jobVariables j }
---------------------------------------------------------------------
-- Building the standard jobs -- Building the standard jobs
-- ---------------------------------------------------------------------
-- | Make a normal validate CI job -- | Make a normal validate CI job
validate :: Arch -> Opsys -> BuildConfig -> NamedJob Job validate :: Arch -> Opsys -> BuildConfig -> NamedJob Job
validate = job validate = job
...@@ -849,15 +972,27 @@ releaseRule = setJobRule ReleaseOnly ...@@ -849,15 +972,27 @@ releaseRule = setJobRule ReleaseOnly
nightly :: Arch -> Opsys -> BuildConfig -> NamedJob Job nightly :: Arch -> Opsys -> BuildConfig -> NamedJob Job
nightly arch opsys bc = nightly arch opsys bc =
let NamedJob n j = job arch opsys bc let NamedJob n j = job arch opsys bc
in NamedJob { name = "nightly-" ++ n, jobInfo = nightlyRule . keepArtifacts "8 weeks" . highCompression $ j} in NamedJob { name = "nightly-" ++ n
, jobInfo = nightlyRule
. keepArtifacts "8 weeks"
. highCompression $ j
}
-- | Make a normal release CI job -- | Make a normal release CI job
release :: Arch -> Opsys -> BuildConfig -> NamedJob Job release :: Arch -> Opsys -> BuildConfig -> NamedJob Job
release arch opsys bc = release arch opsys bc =
let NamedJob n j = job arch opsys (bc { buildFlavour = Release }) let NamedJob n j = job arch opsys (bc { buildFlavour = Release })
in NamedJob { name = "release-" ++ n, jobInfo = releaseRule . keepArtifacts "1 year" . ignorePerfFailures . useHashUnitIds . highCompression $ j} in NamedJob { name = "release-" ++ n
, jobInfo = releaseRule
. keepArtifacts "1 year"
. ignorePerfFailures
. useHashUnitIds
. highCompression $ j
}
---------------------------------------------------------------------
-- Specific job modification functions -- Specific job modification functions
---------------------------------------------------------------------
-- | Mark a job as requiring a manual trigger. -- | Mark a job as requiring a manual trigger.
manual :: Job -> Job manual :: Job -> Job
...@@ -883,10 +1018,16 @@ highCompression = addVariable "XZ_OPT" "-9" ...@@ -883,10 +1018,16 @@ highCompression = addVariable "XZ_OPT" "-9"
useHashUnitIds :: Job -> Job useHashUnitIds :: Job -> Job
useHashUnitIds = addVariable "HADRIAN_ARGS" "--hash-unit-ids" useHashUnitIds = addVariable "HADRIAN_ARGS" "--hash-unit-ids"
-- | 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 -- | 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. -- This is default way, to enable all jobs you have to apply the `full-ci` label.
fastCI :: JobGroup Job -> JobGroup Job fastCI :: JobGroup Job -> JobGroup Job
fastCI = modifyValidateJobs (removeValidateJobRule FullCI) fastCI = onlyRule FastCI
-- | Mark a group of jobs as allowed to fail. -- | Mark a group of jobs as allowed to fail.
allowFailureGroup :: JobGroup Job -> JobGroup Job allowFailureGroup :: JobGroup Job -> JobGroup Job
...@@ -903,8 +1044,14 @@ onlyRule t = modifyValidateJobs (onlyValidateJobRule t) ...@@ -903,8 +1044,14 @@ onlyRule t = modifyValidateJobs (onlyValidateJobRule t)
-- | Don't run the validate job, normally used to alleviate CI load by marking -- | Don't run the validate job, normally used to alleviate CI load by marking
-- jobs which are unlikely to fail (ie different linux distros) -- jobs which are unlikely to fail (ie different linux distros)
--
-- These jobs can still be triggered by using the ONLY_JOBS environment variable
disableValidate :: JobGroup Job -> JobGroup Job disableValidate :: JobGroup Job -> JobGroup Job
disableValidate st = st { v = Nothing } disableValidate = modifyValidateJobs (removeValidateJobRule FastCI . removeValidateJobRule FullCI)
---------------------------------------------------------------------
-- NamedJob
---------------------------------------------------------------------
data NamedJob a = NamedJob { name :: String, jobInfo :: a } deriving (Show, Functor) data NamedJob a = NamedJob { name :: String, jobInfo :: a } deriving (Show, Functor)
...@@ -916,14 +1063,18 @@ instance ToJSON a => ToJSON (NamedJob a) where ...@@ -916,14 +1063,18 @@ instance ToJSON a => ToJSON (NamedJob a) where
[ "name" A..= name nj [ "name" A..= name nj
, "jobInfo" A..= jobInfo nj ] , "jobInfo" A..= jobInfo nj ]
---------------------------------------------------------------------
--data NamedJobGroup a = NamedJobGroup { platform :: String, jg :: JobGroup a } -- JobGroup
---------------------------------------------------------------------
-- Jobs are grouped into either triples or pairs depending on whether the -- Jobs are grouped into either triples or pairs depending on whether the
-- job is just validate and nightly, or also release. -- job is just validate and nightly, or also release.
data JobGroup a = StandardTriple { v :: Maybe (NamedJob a) data JobGroup a
, n :: Maybe (NamedJob a) = StandardTriple { v :: Maybe (NamedJob a)
, r :: Maybe (NamedJob a) } deriving (Functor, Show) , n :: Maybe (NamedJob a)
, r :: Maybe (NamedJob a)
}
deriving (Functor, Show)
instance ToJSON a => ToJSON (JobGroup a) where instance ToJSON a => ToJSON (JobGroup a) where
toJSON StandardTriple{..} = object toJSON StandardTriple{..} = object
...@@ -961,104 +1112,195 @@ flattenJobGroup (StandardTriple a b c) = map flattenNamedJob (catMaybes [a,b,c]) ...@@ -961,104 +1112,195 @@ flattenJobGroup (StandardTriple a b c) = map flattenNamedJob (catMaybes [a,b,c])
flattenNamedJob :: NamedJob a -> (String, a) flattenNamedJob :: NamedJob a -> (String, a)
flattenNamedJob (NamedJob n i) = (n, i) flattenNamedJob (NamedJob n i) = (n, i)
-- | Specification for all the jobs we want to build. -- | Specification for all the jobs we want to build.
jobs :: Map String Job jobs :: Map String Job
jobs = Map.fromList $ concatMap (flattenJobGroup) job_groups jobs = Map.fromList $ concatMap flattenJobGroup job_groups
---------------------------------------------------------------------
-- Job definitions
---------------------------------------------------------------------
debian_x86 :: [JobGroup Job]
debian_x86 =
[ -- Release configurations
-- We still build Deb9 bindists for now due to Ubuntu 18 and Linux Mint 19
-- not being at EOL until April 2023 and they still need tinfo5.
disableValidate (standardBuildsWithConfig Amd64 (Linux Debian9) (splitSectionsBroken vanilla))
, disableValidate (standardBuilds Amd64 (Linux Debian10))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Debian10) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Debian11))
, disableValidate (standardBuilds Amd64 (Linux Debian12))
-- Validate only builds
, fastCI (validateBuilds Amd64 (Linux validate_debian) debug)
, validateBuilds Amd64 (Linux validate_debian) nativeInt
, validateBuilds Amd64 (Linux validate_debian) unreg
-- More work is needed to address TSAN failures: #22520
, 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 Debian12) releaseConfig
, onlyRule LLVMBackend (validateBuilds Amd64 (Linux validate_debian) llvm)
, addValidateRule TestPrimops (standardBuilds Amd64 (Linux validate_debian))
, onlyRule NonmovingGc (validateBuilds Amd64 (Linux validate_debian) vanilla {validateNonmovingGc = True})
, onlyRule IpeData (validateBuilds Amd64 (Linux validate_debian) zstdIpe)
]
where
validate_debian = Debian12
job_groups :: [JobGroup Job] perfProfilingJob arch sys buildConfig =
job_groups = -- Rename the job to avoid conflicts
[ disableValidate (standardBuilds Amd64 (Linux Debian10)) rename (<> "-perf")
, addValidateRule TestPrimops (standardBuildsWithConfig Amd64 (Linux Debian10) dwarf) $ modifyJobs (perfProfilingJobTag arch sys)
, validateBuilds Amd64 (Linux Debian10) nativeInt $ disableValidate (validateBuilds arch sys $ usePerfProfilingTestsuite buildConfig)
, validateBuilds Amd64 (Linux Debian10) unreg
, fastCI (validateBuilds Amd64 (Linux Debian10) debug) tsan_jobs =
, -- Nightly allowed to fail: #22520 modifyJobs
modifyNightlyJobs allowFailure ( addVariable "TSAN_OPTIONS" "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
(modifyValidateJobs manual tsan_jobs) -- Haddock is large enough to make TSAN choke without massive quantities of
, -- Nightly allowed to fail: #22343 -- memory.
modifyNightlyJobs allowFailure . addVariable "HADRIAN_ARGS" "--docs=none") $
(modifyValidateJobs manual (validateBuilds Amd64 (Linux Debian10) noTntc)) validateBuilds Amd64 (Linux validate_debian) tsan
, onlyRule LLVMBackend (validateBuilds Amd64 (Linux Debian12) llvm)
, disableValidate (standardBuilds Amd64 (Linux Debian11)) debian_aarch64 :: [JobGroup Job]
, disableValidate (standardBuilds Amd64 (Linux Debian12)) debian_aarch64 =
-- We still build Deb9 bindists for now due to Ubuntu 18 and Linux Mint 19 [
-- not being at EOL until April 2023 and they still need tinfo5. disableValidate (standardBuildsWithConfig AArch64 (Linux Debian10) (splitSectionsBroken vanilla))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Debian9) (splitSectionsBroken vanilla)) , fastCI (standardBuildsWithConfig AArch64 (Linux Debian12) (splitSectionsBroken vanilla))
, disableValidate (standardBuilds Amd64 (Linux Ubuntu1804)) -- LLVM backend bootstrap
, disableValidate (standardBuilds Amd64 (Linux Ubuntu2004)) , onlyRule LLVMBackend (validateBuilds AArch64 (Linux Debian12) llvm)
, disableValidate (standardBuilds Amd64 (Linux Rocky8)) ]
, disableValidate (standardBuildsWithConfig Amd64 (Linux Centos7) (splitSectionsBroken vanilla))
-- Fedora33 job is always built with perf so there's one job in the normal debian_i386 :: [JobGroup Job]
-- validate pipeline which is built with perf. debian_i386 =
, fastCI (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig) [ disableValidate (standardBuildsWithConfig I386 (Linux Debian10) (splitSectionsBroken vanilla))
-- This job is only for generating head.hackage docs , addValidateRule I386Backend (standardBuildsWithConfig I386 (Linux Debian12) (splitSectionsBroken vanilla))
, hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig)) ]
, disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Fedora38)) ubuntu_x86 :: [JobGroup Job]
, fastCI (standardBuildsWithConfig Amd64 Windows vanilla) ubuntu_x86 =
, disableValidate (standardBuildsWithConfig Amd64 Windows nativeInt) [ disableValidate (standardBuilds Amd64 (Linux Ubuntu1804))
, addValidateRule TestPrimops (standardBuilds Amd64 Darwin) , disableValidate (standardBuilds Amd64 (Linux Ubuntu2004))
, allowFailureGroup (onlyRule FreeBSDLabel (validateBuilds Amd64 FreeBSD13 vanilla)) , disableValidate (standardBuilds Amd64 (Linux Ubuntu2204))
, fastCI (standardBuilds AArch64 Darwin) ]
, fastCI (standardBuildsWithConfig AArch64 (Linux Debian10) (splitSectionsBroken vanilla))
, disableValidate (standardBuildsWithConfig AArch64 (Linux Debian11) (splitSectionsBroken vanilla))
, onlyRule LLVMBackend (validateBuilds AArch64 (Linux Debian12) llvm)
, standardBuildsWithConfig I386 (Linux Debian10) (splitSectionsBroken vanilla)
-- Fully static build, in theory usable on any linux distribution.
, fullyStaticBrokenTests (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken static))
-- Dynamically linked build, suitable for building your own static executables on alpine
, disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken vanilla))
, disableValidate (standardBuildsWithConfig AArch64 (Linux Alpine318) (splitSectionsBroken vanilla))
, fullyStaticBrokenTests (disableValidate (allowFailureGroup (standardBuildsWithConfig Amd64 (Linux Alpine312) staticNativeInt)))
, validateBuilds Amd64 (Linux Debian11) (crossConfig "aarch64-linux-gnu" (Emulator "qemu-aarch64 -L /usr/aarch64-linux-gnu") Nothing)
, addValidateRule JSBackend (validateBuilds Amd64 (Linux Debian11) javascriptConfig)
, make_wasm_jobs wasm_build_config
, modifyValidateJobs manual $
make_wasm_jobs wasm_build_config {bignumBackend = Native}
, modifyValidateJobs manual $
make_wasm_jobs wasm_build_config {unregisterised = True}
, onlyRule NonmovingGc (standardBuildsWithConfig Amd64 (Linux Debian11) vanilla {validateNonmovingGc = True})
, onlyRule IpeData (validateBuilds Amd64 (Linux Debian10) zstdIpe)
]
rhel_x86 :: [JobGroup Job]
rhel_x86 =
[ disableValidate (standardBuilds Amd64 (Linux Rocky8))
]
fedora_x86 :: [JobGroup Job]
fedora_x86 =
[ -- Fedora33 job is always built with perf so there's one job in the normal
-- validate pipeline which is built with perf.
fastCI (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig)
-- This job is only for generating head.hackage docs
, hackage_doc_job (disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) releaseConfig))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Fedora33) dwarf)
, disableValidate (standardBuilds Amd64 (Linux Fedora38))
]
where where
javascriptConfig = (crossConfig "javascript-unknown-ghcjs" (Emulator "js-emulator") (Just "emconfigure")) hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-for-hackage")
{ bignumBackend = Native }
windows_x86 :: [JobGroup Job]
windows_x86 =
[ fastCI (standardBuildsWithConfig Amd64 Windows vanilla)
, disableValidate (standardBuildsWithConfig Amd64 Windows nativeInt)
]
darwin :: [JobGroup Job]
darwin =
[ addValidateRule TestPrimops (standardBuilds Amd64 Darwin)
, fastCI (standardBuilds AArch64 Darwin)
]
freebsd_jobs :: [JobGroup Job]
freebsd_jobs =
[ addValidateRule FreeBSDLabel (standardBuilds Amd64 FreeBSD14)
]
alpine_x86 :: [JobGroup Job]
alpine_x86 =
[ -- Fully static build, in theory usable on any linux distribution.
fullyStaticBrokenTests (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken static))
, fullyStaticBrokenTests (disableValidate (allowFailureGroup (standardBuildsWithConfig Amd64 (Linux Alpine312) staticNativeInt)))
-- Dynamically linked build, suitable for building your own static executables on alpine
, disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine312) (splitSectionsBroken vanilla))
, disableValidate (standardBuildsWithConfig Amd64 (Linux Alpine320) (splitSectionsBroken vanilla))
, allowFailureGroup (standardBuildsWithConfig I386 (Linux Alpine320) (splitSectionsBroken vanilla))
]
where
-- ghcilink002 broken due to #17869 -- ghcilink002 broken due to #17869
-- --
-- linker_unload_native: due to musl not supporting any means of probing dynlib dependencies -- linker_unload_native: due to musl not supporting any means of probing dynlib dependencies
-- (see Note [Object unloading]). -- (see Note [Object unloading]).
fullyStaticBrokenTests = modifyJobs (addVariable "BROKEN_TESTS" "ghcilink002 linker_unload_native") fullyStaticBrokenTests = modifyJobs (addVariable "BROKEN_TESTS" "ghcilink002 linker_unload_native")
hackage_doc_job = rename (<> "-hackage") . modifyJobs (addVariable "HADRIAN_ARGS" "--haddock-base-url") alpine_aarch64 :: [JobGroup Job]
alpine_aarch64 = [
disableValidate (standardBuildsWithConfig AArch64 (Linux Alpine318) (splitSectionsBroken vanilla))
]
tsan_jobs = cross_jobs :: [JobGroup Job]
modifyJobs cross_jobs = [
( addVariable "TSAN_OPTIONS" "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions" -- x86 -> aarch64
-- Haddock is large enough to make TSAN choke without massive quantities of validateBuilds Amd64 (Linux Debian11) (crossConfig "aarch64-linux-gnu" (Emulator "qemu-aarch64 -L /usr/aarch64-linux-gnu") Nothing)
-- memory.
. addVariable "HADRIAN_ARGS" "--docs=none") $ -- x86_64 -> riscv
validateBuilds Amd64 (Linux Debian10) tsan , addValidateRule RiscV (validateBuilds Amd64 (Linux Debian12Riscv) (crossConfig "riscv64-linux-gnu" (Emulator "qemu-riscv64 -L /usr/riscv64-linux-gnu") Nothing))
-- Javascript
, addValidateRule JSBackend (validateBuilds Amd64 (Linux Debian11Js) javascriptConfig)
-- Wasm
, make_wasm_jobs wasm_build_config
, modifyValidateJobs manual $
make_wasm_jobs wasm_build_config {bignumBackend = Native}
, modifyValidateJobs manual $
make_wasm_jobs wasm_build_config {unregisterised = True}
]
where
javascriptConfig = (crossConfig "javascript-unknown-ghcjs" (Emulator "js-emulator") (Just "emconfigure"))
{ bignumBackend = Native }
make_wasm_jobs cfg = make_wasm_jobs cfg =
modifyJobs modifyJobs
( delVariable "BROKEN_TESTS" ( -- See Note [Testing wasm ghci browser mode]
. setVariable "HADRIAN_ARGS" "--docs=none" setVariable "FIREFOX_LAUNCH_OPTS" "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}"
. setVariable "HADRIAN_ARGS" "--docs=no-sphinx-pdfs --docs=no-sphinx-man"
. delVariable "INSTALL_CONFIGURE_ARGS" . delVariable "INSTALL_CONFIGURE_ARGS"
) )
$ validateBuilds Amd64 (Linux AlpineWasm) cfg $ addValidateRule WasmBackend $ validateBuilds Amd64 (Linux AlpineWasm) cfg
wasm_build_config = wasm_build_config =
(crossConfig "wasm32-wasi" NoEmulatorNeeded Nothing) (crossConfig "wasm32-wasi" NoEmulatorNeeded Nothing)
{ { hostFullyStatic = True
fullyStatic = True , buildFlavour = Release -- TODO: This needs to be validate but wasm backend doesn't pass yet
, buildFlavour = Release -- TODO: This needs to be validate but wasm backend doesn't pass yet , textWithSIMDUTF = True
} }
job_groups :: [JobGroup Job]
job_groups =
debian_x86
++ debian_aarch64
++ debian_i386
++ fedora_x86
++ windows_x86
++ darwin
++ ubuntu_x86
++ rhel_x86
++ alpine_x86
++ alpine_aarch64
++ cross_jobs
++ freebsd_jobs
---------------------------------------------------------------------
-- Platform mapping for GHCup metadata
---------------------------------------------------------------------
mkPlatform :: Arch -> Opsys -> String mkPlatform :: Arch -> Opsys -> String
mkPlatform arch opsys = archName arch <> "-" <> opsysName opsys mkPlatform arch opsys = archName arch <> "-" <> opsysName opsys
...@@ -1082,11 +1324,14 @@ platform_mapping = Map.map go combined_result ...@@ -1082,11 +1324,14 @@ platform_mapping = Map.map go combined_result
, "x86_64-linux-fedora33-release" , "x86_64-linux-fedora33-release"
, "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate" , "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate"
, "x86_64-windows-validate" , "x86_64-windows-validate"
, "nightly-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static" , "aarch64-linux-deb12-validate"
, "nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
, "nightly-x86_64-linux-deb11-validate" , "nightly-x86_64-linux-deb11-validate"
, "nightly-x86_64-linux-deb12-validate" , "nightly-x86_64-linux-deb12-validate"
, "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static" , "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
, "x86_64-linux-deb12-validate+thread_sanitizer_cmm"
, "nightly-aarch64-linux-deb10-validate" , "nightly-aarch64-linux-deb10-validate"
, "nightly-aarch64-linux-deb12-validate"
, "nightly-x86_64-linux-alpine3_12-validate" , "nightly-x86_64-linux-alpine3_12-validate"
, "nightly-x86_64-linux-deb10-validate" , "nightly-x86_64-linux-deb10-validate"
, "nightly-x86_64-linux-fedora33-release" , "nightly-x86_64-linux-fedora33-release"
...@@ -1099,7 +1344,11 @@ platform_mapping = Map.map go combined_result ...@@ -1099,7 +1344,11 @@ platform_mapping = Map.map go combined_result
, "release-x86_64-windows-release" , "release-x86_64-windows-release"
] ]
process sel = Map.fromListWith combine [ (uncurry mkPlatform (jobPlatform (jobInfo $ j)), j) | (sel -> Just j) <- job_groups ] process sel =
Map.fromListWith combine
[ (uncurry mkPlatform (jobPlatform (jobInfo j)), j)
| (sel -> Just j) <- job_groups
]
vs = process v vs = process v
ns = process n ns = process n
...@@ -1107,10 +1356,13 @@ platform_mapping = Map.map go combined_result ...@@ -1107,10 +1356,13 @@ platform_mapping = Map.map go combined_result
all_platforms = Map.keysSet vs <> Map.keysSet ns <> Map.keysSet rs all_platforms = Map.keysSet vs <> Map.keysSet ns <> Map.keysSet rs
combined_result = Map.fromList [ (p, StandardTriple { v = Map.lookup p vs combined_result =
, n = Map.lookup p ns Map.fromList
, r = Map.lookup p rs }) [ (p, StandardTriple { v = Map.lookup p vs
| p <- S.toList all_platforms ] , n = Map.lookup p ns
, r = Map.lookup p rs })
| p <- S.toList all_platforms
]
combine a b combine a b
| name a `elem` whitelist = a -- Explicitly selected | name a `elem` whitelist = a -- Explicitly selected
...@@ -1125,6 +1377,9 @@ data BindistInfo = BindistInfo { bindistName :: String } deriving Show ...@@ -1125,6 +1377,9 @@ data BindistInfo = BindistInfo { bindistName :: String } deriving Show
instance ToJSON BindistInfo where instance ToJSON BindistInfo where
toJSON (BindistInfo n) = object [ "bindistName" A..= n ] toJSON (BindistInfo n) = object [ "bindistName" A..= n ]
---------------------------------------------------------------------
-- Main entrypoint
---------------------------------------------------------------------
main :: IO () main :: IO ()
main = do main = do
......
{-# OPTIONS_GHC -Wall -Wno-missing-fields #-} {-# OPTIONS_GHC -Wall -Wno-missing-fields #-}
import GHC.Unit.Types (stringToUnitId)
import GHC hiding (parseModule) import GHC hiding (parseModule)
import GHC.Data.StringBuffer import GHC.Data.StringBuffer
import GHC.Driver.Config.Parser import GHC.Driver.Config.Parser
...@@ -26,7 +27,8 @@ fakeSettings = ...@@ -26,7 +27,8 @@ fakeSettings =
sToolSettings = ToolSettings {}, sToolSettings = ToolSettings {},
sTargetPlatform = sTargetPlatform =
genericPlatform, genericPlatform,
sPlatformMisc = PlatformMisc {} sPlatformMisc = PlatformMisc {},
sUnitSettings = UnitSettings { unitSettings_baseUnitId = stringToUnitId "base" }
} }
fakeDynFlags :: DynFlags fakeDynFlags :: DynFlags
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-darwin-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -57,7 +57,8 @@ ...@@ -57,7 +57,8 @@
"BIN_DIST_NAME": "ghc-aarch64-darwin-validate", "BIN_DIST_NAME": "ghc-aarch64-darwin-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx", "HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8", "LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0", "MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin", "NIX_SYSTEM": "aarch64-darwin",
...@@ -65,7 +66,7 @@ ...@@ -65,7 +66,7 @@
"TEST_ENV": "aarch64-darwin-validate" "TEST_ENV": "aarch64-darwin-validate"
} }
}, },
"aarch64-linux-deb10-validate": { "aarch64-linux-alpine3_18-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -76,7 +77,7 @@ ...@@ -76,7 +77,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-aarch64-linux-deb10-validate.tar.xz", "ghc-aarch64-linux-alpine3_18-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -86,14 +87,14 @@ ...@@ -86,14 +87,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-deb10-$CACHE_REV", "key": "aarch64-linux-alpine3_18-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -102,7 +103,7 @@ ...@@ -102,7 +103,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-alpine3_18-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -119,14 +120,16 @@ ...@@ -119,14 +120,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate", "BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb10-validate" "TEST_ENV": "aarch64-linux-alpine3_18-validate"
} }
}, },
"aarch64-linux-deb12-validate+llvm": { "aarch64-linux-deb10-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -137,7 +140,7 @@ ...@@ -137,7 +140,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-aarch64-linux-deb12-validate+llvm.tar.xz", "ghc-aarch64-linux-deb10-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -147,14 +150,14 @@ ...@@ -147,14 +150,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-deb12-$CACHE_REV", "key": "aarch64-linux-deb10-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -163,7 +166,7 @@ ...@@ -163,7 +166,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-deb10-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -180,14 +183,15 @@ ...@@ -180,14 +183,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate+llvm", "BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate",
"BUILD_FLAVOUR": "validate+llvm", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb12-validate+llvm" "TEST_ENV": "aarch64-linux-deb10-validate"
} }
}, },
"i386-linux-deb10-validate": { "aarch64-linux-deb12-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -198,7 +202,7 @@ ...@@ -198,7 +202,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-i386-linux-deb10-validate.tar.xz", "ghc-aarch64-linux-deb12-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -208,14 +212,14 @@ ...@@ -208,14 +212,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "i386-linux-deb10-$CACHE_REV", "key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -224,7 +228,7 @@ ...@@ -224,7 +228,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-deb12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -237,18 +241,19 @@ ...@@ -237,18 +241,19 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "aarch64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-validate", "BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb10-validate" "TEST_ENV": "aarch64-linux-deb12-validate"
} }
}, },
"nightly-aarch64-darwin-validate": { "aarch64-linux-deb12-validate+llvm": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -257,9 +262,9 @@ ...@@ -257,9 +262,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-aarch64-darwin-validate.tar.xz", "ghc-aarch64-linux-deb12-validate+llvm.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -269,14 +274,14 @@ ...@@ -269,14 +274,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-darwin-$CACHE_REV", "key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -285,12 +290,12 @@ ...@@ -285,12 +290,12 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\baarch64-linux-deb12-validate\\+llvm(\\s|$).*/)) || (($ONLY_JOBS == null) && (($CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
"script": [ "script": [
"find libraries -name config.sub -exec cp config.sub {} \\;", "sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -298,34 +303,30 @@ ...@@ -298,34 +303,30 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-darwin" "aarch64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-darwin-validate", "BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate+llvm",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-darwin-validate", "TEST_ENV": "aarch64-linux-deb12-validate+llvm"
"XZ_OPT": "-9"
} }
}, },
"nightly-aarch64-linux-alpine3_18-validate": { "i386-linux-alpine3_20-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": false, "allow_failure": true,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-aarch64-linux-alpine3_18-validate.tar.xz", "ghc-i386-linux-alpine3_20-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -335,14 +336,14 @@ ...@@ -335,14 +336,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-alpine3_18-$CACHE_REV", "key": "i386-linux-alpine3_20-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -351,7 +352,7 @@ ...@@ -351,7 +352,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bi386-linux-alpine3_20-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -364,22 +365,20 @@ ...@@ -364,22 +365,20 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-validate", "BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-validate",
"BROKEN_TESTS": "encoding004 T10458", "BROKEN_TESTS": "encoding004 T10458 simd009 T25062_V16 T25169 T22187_run T22033",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-alpine3_18-validate", "TEST_ENV": "i386-linux-alpine3_20-validate"
"XZ_OPT": "-9"
} }
}, },
"nightly-aarch64-linux-deb10-validate": { "i386-linux-deb10-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -388,9 +387,9 @@ ...@@ -388,9 +387,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-aarch64-linux-deb10-validate.tar.xz", "ghc-i386-linux-deb10-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -400,14 +399,14 @@ ...@@ -400,14 +399,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-deb10-$CACHE_REV", "key": "i386-linux-deb10-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -416,7 +415,7 @@ ...@@ -416,7 +415,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bi386-linux-deb10-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -429,19 +428,19 @@ ...@@ -429,19 +428,19 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate", "BIN_DIST_NAME": "ghc-i386-linux-deb10-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb10-validate", "TEST_ENV": "i386-linux-deb10-validate"
"XZ_OPT": "-9"
} }
}, },
"nightly-aarch64-linux-deb11-validate": { "i386-linux-deb12-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -450,9 +449,9 @@ ...@@ -450,9 +449,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-aarch64-linux-deb11-validate.tar.xz", "ghc-i386-linux-deb12-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -462,14 +461,14 @@ ...@@ -462,14 +461,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-deb11-$CACHE_REV", "key": "i386-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -478,7 +477,7 @@ ...@@ -478,7 +477,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bi386-linux-deb12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*i386.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -491,19 +490,19 @@ ...@@ -491,19 +490,19 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb11-validate", "BIN_DIST_NAME": "ghc-i386-linux-deb12-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb11-validate", "TEST_ENV": "i386-linux-deb12-validate"
"XZ_OPT": "-9"
} }
}, },
"nightly-aarch64-linux-deb12-validate+llvm": { "nightly-aarch64-darwin-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -514,7 +513,7 @@ ...@@ -514,7 +513,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-aarch64-linux-deb12-validate+llvm.tar.xz", "ghc-aarch64-darwin-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -524,14 +523,14 @@ ...@@ -524,14 +523,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-deb12-$CACHE_REV", "key": "aarch64-darwin-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV", "image": null,
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -545,7 +544,7 @@ ...@@ -545,7 +544,7 @@
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .", "find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -553,19 +552,24 @@ ...@@ -553,19 +552,24 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-linux" "aarch64-darwin"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate+llvm", "BIN_DIST_NAME": "ghc-aarch64-darwin-validate",
"BUILD_FLAVOUR": "validate+llvm", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb12-validate+llvm", "TEST_ENV": "aarch64-darwin-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-i386-linux-deb10-validate": { "nightly-aarch64-linux-alpine3_18-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -576,7 +580,7 @@ ...@@ -576,7 +580,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-i386-linux-deb10-validate.tar.xz", "ghc-aarch64-linux-alpine3_18-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -586,14 +590,14 @@ ...@@ -586,14 +590,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "i386-linux-deb10-$CACHE_REV", "key": "aarch64-linux-alpine3_18-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -615,19 +619,21 @@ ...@@ -615,19 +619,21 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "aarch64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-validate", "BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb10-validate", "TEST_ENV": "aarch64-linux-alpine3_18-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-darwin-validate": { "nightly-aarch64-linux-deb10-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -638,7 +644,7 @@ ...@@ -638,7 +644,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-darwin-validate.tar.xz", "ghc-aarch64-linux-deb10-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -648,14 +654,14 @@ ...@@ -648,14 +654,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-darwin-$CACHE_REV", "key": "aarch64-linux-deb10-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -669,7 +675,7 @@ ...@@ -669,7 +675,7 @@
} }
], ],
"script": [ "script": [
"find libraries -name config.sub -exec cp config.sub {} \\;", "sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -677,37 +683,31 @@ ...@@ -677,37 +683,31 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-darwin-m1" "aarch64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-validate", "BIN_DIST_NAME": "ghc-aarch64-linux-deb10-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "10.13",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-darwin-validate", "TEST_ENV": "aarch64-linux-deb10-validate",
"XZ_OPT": "-9", "XZ_OPT": "-9"
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
} }
}, },
"nightly-x86_64-freebsd13-validate": { "nightly-aarch64-linux-deb12-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": true, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-freebsd13-validate.tar.xz", "ghc-aarch64-linux-deb12-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -717,14 +717,14 @@ ...@@ -717,14 +717,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-freebsd13-$CACHE_REV", "key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -738,6 +738,7 @@ ...@@ -738,6 +738,7 @@
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -745,33 +746,31 @@ ...@@ -745,33 +746,31 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-freebsd13" "aarch64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-freebsd13-validate", "BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--docs=no-sphinx",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-freebsd13-validate", "TEST_ENV": "aarch64-linux-deb12-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static": { "nightly-aarch64-linux-deb12-validate+llvm": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": true, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static.tar.xz", "ghc-aarch64-linux-deb12-validate+llvm.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -781,14 +780,14 @@ ...@@ -781,14 +780,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV", "key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -810,33 +809,31 @@ ...@@ -810,33 +809,31 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "aarch64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static", "BIN_DIST_NAME": "ghc-aarch64-linux-deb12-validate+llvm",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458", "BUILD_FLAVOUR": "validate+llvm",
"BUILD_FLAVOUR": "validate+fully_static", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-validate+fully_static", "TEST_ENV": "aarch64-linux-deb12-validate+llvm",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-alpine3_12-validate": { "nightly-i386-linux-alpine3_20-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": false, "allow_failure": true,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_12-validate.tar.xz", "ghc-i386-linux-alpine3_20-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -846,14 +843,14 @@ ...@@ -846,14 +843,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV", "key": "i386-linux-alpine3_20-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -879,18 +876,17 @@ ...@@ -879,18 +876,17 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate", "BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-validate",
"BROKEN_TESTS": "encoding004 T10458", "BROKEN_TESTS": "encoding004 T10458 simd009 T25062_V16 T25169 T22187_run T22033",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-validate", "TEST_ENV": "i386-linux-alpine3_20-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-alpine3_12-validate+fully_static": { "nightly-i386-linux-deb10-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -901,7 +897,7 @@ ...@@ -901,7 +897,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_12-validate+fully_static.tar.xz", "ghc-i386-linux-deb10-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -911,14 +907,14 @@ ...@@ -911,14 +907,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV", "key": "i386-linux-deb10-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -944,18 +940,16 @@ ...@@ -944,18 +940,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate+fully_static", "BIN_DIST_NAME": "ghc-i386-linux-deb10-validate",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458", "BUILD_FLAVOUR": "validate",
"BUILD_FLAVOUR": "validate+fully_static", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static", "TEST_ENV": "i386-linux-deb10-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static": { "nightly-i386-linux-deb12-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -966,7 +960,7 @@ ...@@ -966,7 +960,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static.tar.xz", "ghc-i386-linux-deb12-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -976,14 +970,14 @@ ...@@ -976,14 +970,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", "key": "i386-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1009,17 +1003,16 @@ ...@@ -1009,17 +1003,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static", "BIN_DIST_NAME": "ghc-i386-linux-deb12-validate",
"BUILD_FLAVOUR": "release+fully_static", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static", "TEST_ENV": "i386-linux-deb12-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static": { "nightly-x86_64-darwin-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1030,7 +1023,7 @@ ...@@ -1030,7 +1023,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static.tar.xz", "ghc-x86_64-darwin-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1040,14 +1033,14 @@ ...@@ -1040,14 +1033,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", "key": "x86_64-darwin-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", "image": null,
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1061,7 +1054,7 @@ ...@@ -1061,7 +1054,7 @@
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .", "find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -1069,21 +1062,27 @@ ...@@ -1069,21 +1062,27 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "x86_64-darwin-m1"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static", "BIN_DIST_NAME": "ghc-x86_64-darwin-validate",
"BUILD_FLAVOUR": "release+fully_static", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi", "HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"HADRIAN_ARGS": "--docs=none", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static", "TEST_ENV": "x86_64-darwin-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
} }
}, },
"nightly-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static": { "nightly-x86_64-freebsd14-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1094,7 +1093,7 @@ ...@@ -1094,7 +1093,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static.tar.xz", "ghc-x86_64-freebsd14-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1104,14 +1103,14 @@ ...@@ -1104,14 +1103,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", "key": "x86_64-freebsd14-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", "image": null,
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1125,7 +1124,6 @@ ...@@ -1125,7 +1124,6 @@
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -1133,32 +1131,35 @@ ...@@ -1133,32 +1131,35 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "x86_64-freebsd14"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static", "BIN_DIST_NAME": "ghc-x86_64-freebsd14-validate",
"BUILD_FLAVOUR": "release+fully_static", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CABAL_INSTALL_VERSION": "3.10.3.0",
"CROSS_TARGET": "wasm32-wasi", "CC": "cc",
"HADRIAN_ARGS": "--docs=none", "CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
"CXX": "c++",
"GHC_VERSION": "9.6.4",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static", "TEST_ENV": "x86_64-freebsd14-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-centos7-validate": { "nightly-x86_64-linux-alpine3_12-int_native-validate+fully_static": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": false, "allow_failure": true,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-centos7-validate.tar.xz", "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1168,14 +1169,14 @@ ...@@ -1168,14 +1169,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-centos7-$CACHE_REV", "key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1200,18 +1201,18 @@ ...@@ -1200,18 +1201,18 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-centos7-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static",
"BROKEN_TESTS": "T22012", "BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-centos7-validate", "TEST_ENV": "x86_64-linux-alpine3_12-int_native-validate+fully_static",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb10-int_native-validate": { "nightly-x86_64-linux-alpine3_12-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1222,7 +1223,7 @@ ...@@ -1222,7 +1223,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-int_native-validate.tar.xz", "ghc-x86_64-linux-alpine3_12-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1232,14 +1233,14 @@ ...@@ -1232,14 +1233,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1264,27 +1265,29 @@ ...@@ -1264,27 +1265,29 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-int_native-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-int_native-validate", "TEST_ENV": "x86_64-linux-alpine3_12-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb10-no_tntc-validate": { "nightly-x86_64-linux-alpine3_12-validate+fully_static": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": true, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-no_tntc-validate.tar.xz", "ghc-x86_64-linux-alpine3_12-validate+fully_static.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1294,14 +1297,14 @@ ...@@ -1294,14 +1297,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1327,15 +1330,17 @@ ...@@ -1327,15 +1330,17 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-no_tntc-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate+fully_static",
"BUILD_FLAVOUR": "validate", "BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"CONFIGURE_ARGS": "--disable-tables-next-to-code --enable-strict-ghc-toolchain-check", "BUILD_FLAVOUR": "validate+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-no_tntc-validate", "TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb10-numa-slow-validate": { "nightly-x86_64-linux-alpine3_20-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1346,7 +1351,7 @@ ...@@ -1346,7 +1351,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz", "ghc-x86_64-linux-alpine3_20-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1356,14 +1361,14 @@ ...@@ -1356,14 +1361,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-alpine3_20-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1389,16 +1394,17 @@ ...@@ -1389,16 +1394,17 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-numa-slow-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-validate",
"BUILD_FLAVOUR": "slow-validate", "BROKEN_TESTS": "encoding004 T10458",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "BUILD_FLAVOUR": "validate",
"ENABLE_NUMA": "1", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-numa-slow-validate", "TEST_ENV": "x86_64-linux-alpine3_20-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb10-unreg-validate": { "nightly-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1409,7 +1415,7 @@ ...@@ -1409,7 +1415,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-unreg-validate.tar.xz", "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1419,14 +1425,14 @@ ...@@ -1419,14 +1425,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1452,15 +1458,18 @@ ...@@ -1452,15 +1458,18 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-unreg-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-unregisterised --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-unreg-validate", "TEST_ENV": "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb10-validate": { "nightly-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1471,7 +1480,7 @@ ...@@ -1471,7 +1480,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-validate.tar.xz", "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1481,14 +1490,14 @@ ...@@ -1481,14 +1490,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1513,16 +1522,19 @@ ...@@ -1513,16 +1522,19 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate", "TEST_ENV": "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb10-validate+debug_info": { "nightly-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1533,7 +1545,7 @@ ...@@ -1533,7 +1545,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-validate+debug_info.tar.xz", "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1543,14 +1555,14 @@ ...@@ -1543,14 +1555,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1576,26 +1588,29 @@ ...@@ -1576,26 +1588,29 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+debug_info", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "validate+debug_info", "BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi",
"FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate+debug_info", "TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb10-validate+thread_sanitizer": { "nightly-x86_64-linux-deb10-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": true, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-validate+thread_sanitizer.tar.xz", "ghc-x86_64-linux-deb10-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1638,17 +1653,16 @@ ...@@ -1638,17 +1653,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+thread_sanitizer", "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate",
"BUILD_FLAVOUR": "validate+thread_sanitizer", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate+thread_sanitizer", "TEST_ENV": "x86_64-linux-deb10-validate",
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb10-zstd-validate": { "nightly-x86_64-linux-deb10-validate+debug_info": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1659,7 +1673,7 @@ ...@@ -1659,7 +1673,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-zstd-validate.tar.xz", "ghc-x86_64-linux-deb10-validate+debug_info.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1702,11 +1716,12 @@ ...@@ -1702,11 +1716,12 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-zstd-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+debug_info",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-ipe-data-compression --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-zstd-validate", "TEST_ENV": "x86_64-linux-deb10-validate+debug_info",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
...@@ -1769,12 +1784,13 @@ ...@@ -1769,12 +1784,13 @@
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CROSS_EMULATOR": "qemu-aarch64 -L /usr/aarch64-linux-gnu", "CROSS_EMULATOR": "qemu-aarch64 -L /usr/aarch64-linux-gnu",
"CROSS_TARGET": "aarch64-linux-gnu", "CROSS_TARGET": "aarch64-linux-gnu",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate", "TEST_ENV": "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate": { "nightly-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1785,7 +1801,7 @@ ...@@ -1785,7 +1801,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate.tar.xz", "ghc-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1795,14 +1811,14 @@ ...@@ -1795,14 +1811,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb11-$CACHE_REV", "key": "x86_64-linux-deb11-emsdk-closure-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11-emsdk-closure:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1828,14 +1844,15 @@ ...@@ -1828,14 +1844,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CONFIGURE_WRAPPER": "emconfigure", "CONFIGURE_WRAPPER": "emconfigure",
"CROSS_EMULATOR": "js-emulator", "CROSS_EMULATOR": "js-emulator",
"CROSS_TARGET": "javascript-unknown-ghcjs", "CROSS_TARGET": "javascript-unknown-ghcjs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate", "TEST_ENV": "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
...@@ -1896,12 +1913,13 @@ ...@@ -1896,12 +1913,13 @@
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-validate", "TEST_ENV": "x86_64-linux-deb11-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb11-validate+boot_nonmoving_gc": { "nightly-x86_64-linux-deb12-int_native-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -1912,7 +1930,7 @@ ...@@ -1912,7 +1930,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb11-validate+boot_nonmoving_gc.tar.xz", "ghc-x86_64-linux-deb12-int_native-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -1922,14 +1940,14 @@ ...@@ -1922,14 +1940,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb11-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -1954,27 +1972,28 @@ ...@@ -1954,27 +1972,28 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate+boot_nonmoving_gc", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-int_native-validate",
"BUILD_FLAVOUR": "validate+boot_nonmoving_gc", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"TEST_ENV": "x86_64-linux-deb11-validate+boot_nonmoving_gc", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-int_native-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb12-validate": { "nightly-x86_64-linux-deb12-no_tntc-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": false, "allow_failure": true,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb12-validate.tar.xz", "ghc-x86_64-linux-deb12-no_tntc-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2017,15 +2036,16 @@ ...@@ -2017,15 +2036,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-no_tntc-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--disable-tables-next-to-code --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-validate", "TEST_ENV": "x86_64-linux-deb12-no_tntc-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb12-validate+llvm": { "nightly-x86_64-linux-deb12-numa-slow-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2036,7 +2056,7 @@ ...@@ -2036,7 +2056,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb12-validate+llvm.tar.xz", "ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2079,15 +2099,17 @@ ...@@ -2079,15 +2099,17 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+llvm", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-numa-slow-validate",
"BUILD_FLAVOUR": "validate+llvm", "BUILD_FLAVOUR": "slow-validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"ENABLE_NUMA": "1",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-validate+llvm", "TEST_ENV": "x86_64-linux-deb12-numa-slow-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-deb9-validate": { "nightly-x86_64-linux-deb12-release-perf": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2098,7 +2120,7 @@ ...@@ -2098,7 +2120,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb9-validate.tar.xz", "ghc-x86_64-linux-deb12-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2108,14 +2130,14 @@ ...@@ -2108,14 +2130,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb9-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2137,19 +2159,20 @@ ...@@ -2137,19 +2159,20 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "x86_64-linux-perf"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb9-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-release",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"TEST_ENV": "x86_64-linux-deb9-validate", "RUNTEST_ARGS": " --config perf_path=perf",
"TEST_ENV": "x86_64-linux-deb12-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-fedora33-release": { "nightly-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2160,7 +2183,7 @@ ...@@ -2160,7 +2183,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz", "ghc-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2170,14 +2193,14 @@ ...@@ -2170,14 +2193,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV", "key": "x86_64-linux-deb12-riscv-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12-riscv:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2203,17 +2226,18 @@ ...@@ -2203,17 +2226,18 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"LLC": "/bin/false", "CROSS_EMULATOR": "qemu-riscv64 -L /usr/riscv64-linux-gnu",
"OPT": "/bin/false", "CROSS_TARGET": "riscv64-linux-gnu",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release", "TEST_ENV": "x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-fedora33-release-hackage": { "nightly-x86_64-linux-deb12-unreg-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2224,7 +2248,7 @@ ...@@ -2224,7 +2248,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz", "ghc-x86_64-linux-deb12-unreg-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2234,14 +2258,14 @@ ...@@ -2234,14 +2258,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2267,18 +2291,16 @@ ...@@ -2267,18 +2291,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-unreg-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-unregisterised --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-base-url", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release", "TEST_ENV": "x86_64-linux-deb12-unreg-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-fedora33-validate+debug_info": { "nightly-x86_64-linux-deb12-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2289,7 +2311,7 @@ ...@@ -2289,7 +2311,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora33-validate+debug_info.tar.xz", "ghc-x86_64-linux-deb12-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2299,14 +2321,14 @@ ...@@ -2299,14 +2321,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2332,17 +2354,16 @@ ...@@ -2332,17 +2354,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-validate+debug_info", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate",
"BUILD_FLAVOUR": "validate+debug_info", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-validate+debug_info", "TEST_ENV": "x86_64-linux-deb12-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-fedora38-validate": { "nightly-x86_64-linux-deb12-validate+boot_nonmoving_gc": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2353,7 +2374,7 @@ ...@@ -2353,7 +2374,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora38-validate.tar.xz", "ghc-x86_64-linux-deb12-validate+boot_nonmoving_gc.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2363,14 +2384,14 @@ ...@@ -2363,14 +2384,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora38-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2396,15 +2417,16 @@ ...@@ -2396,15 +2417,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+boot_nonmoving_gc",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate+boot_nonmoving_gc",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"TEST_ENV": "x86_64-linux-fedora38-validate", "RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity",
"TEST_ENV": "x86_64-linux-deb12-validate+boot_nonmoving_gc",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-rocky8-validate": { "nightly-x86_64-linux-deb12-validate+llvm": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2415,7 +2437,7 @@ ...@@ -2415,7 +2437,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-rocky8-validate.tar.xz", "ghc-x86_64-linux-deb12-validate+llvm.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2425,14 +2447,14 @@ ...@@ -2425,14 +2447,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-rocky8-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2458,27 +2480,27 @@ ...@@ -2458,27 +2480,27 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate+llvm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-rocky8-validate", "TEST_ENV": "x86_64-linux-deb12-validate+llvm",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-ubuntu18_04-validate": { "nightly-x86_64-linux-deb12-validate+thread_sanitizer_cmm": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": false, "allow_failure": true,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-ubuntu18_04-validate.tar.xz", "ghc-x86_64-linux-deb12-validate+thread_sanitizer_cmm.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2488,14 +2510,14 @@ ...@@ -2488,14 +2510,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-ubuntu18_04-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2521,15 +2543,18 @@ ...@@ -2521,15 +2543,18 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+thread_sanitizer_cmm",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate+thread_sanitizer_cmm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu18_04-validate", "TEST_ENV": "x86_64-linux-deb12-validate+thread_sanitizer_cmm",
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-linux-ubuntu20_04-validate": { "nightly-x86_64-linux-deb12-zstd-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2540,7 +2565,7 @@ ...@@ -2540,7 +2565,7 @@
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-ubuntu20_04-validate.tar.xz", "ghc-x86_64-linux-deb12-zstd-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2550,14 +2575,14 @@ ...@@ -2550,14 +2575,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-ubuntu20_04-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2583,25 +2608,27 @@ ...@@ -2583,25 +2608,27 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-zstd-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-ipe-data-compression --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu20_04-validate", "TEST_ENV": "x86_64-linux-deb12-zstd-validate",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-windows-int_native-validate": { "nightly-x86_64-linux-deb9-validate": {
"after_script": [ "after_script": [
"bash .gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean" ".gitlab/ci.sh clean",
"cat ci_timings"
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "8 weeks",
"paths": [ "paths": [
"ghc-x86_64-windows-int_native-validate.tar.xz", "ghc-x86_64-linux-deb9-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2611,11 +2638,14 @@ ...@@ -2611,11 +2638,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "no-caching", "key": "x86_64-linux-deb9-$CACHE_REV",
"paths": [] "paths": [
"cabal-cache",
"toolchain"
]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2629,41 +2659,1864 @@ ...@@ -2629,41 +2659,1864 @@
} }
], ],
"script": [ "script": [
"bash .gitlab/ci.sh setup", "sudo chown ghc:ghc -R .",
"bash .gitlab/ci.sh configure", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb9-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb9-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-release-hackage": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora33-validate+debug_info": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora33-validate+debug_info.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-validate+debug_info",
"BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-validate+debug_info",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-fedora38-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-fedora38-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora38-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora38-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-rocky8-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-rocky8-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-rocky8-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-rocky8-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-ubuntu18_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu18_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu18_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu18_04-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-ubuntu20_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu20_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu20_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu20_04-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-linux-ubuntu22_04-validate": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-linux-ubuntu22_04-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-ubuntu22_04-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu22_04:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu22_04-validate",
"BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu22_04-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-windows-int_native-validate": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-windows-int_native-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "no-caching",
"paths": []
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"new-x86_64-windows"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-windows-int_native-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-int_native-validate",
"XZ_OPT": "-9"
}
},
"nightly-x86_64-windows-validate": {
"after_script": [
"bash .gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean"
],
"allow_failure": false,
"artifacts": {
"expire_in": "8 weeks",
"paths": [
"ghc-x86_64-windows-validate.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "no-caching",
"paths": []
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)",
"when": "on_success"
}
],
"script": [
"bash .gitlab/ci.sh setup",
"bash .gitlab/ci.sh configure",
"bash .gitlab/ci.sh build_hadrian", "bash .gitlab/ci.sh build_hadrian",
"bash .gitlab/ci.sh test_hadrian" "bash .gitlab/ci.sh test_hadrian"
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"new-x86_64-windows" "new-x86_64-windows"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-validate",
"BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-validate",
"XZ_OPT": "-9"
}
},
"release-aarch64-darwin-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-darwin-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "aarch64-darwin-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"aarch64-darwin"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-darwin-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "aarch64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-darwin-release",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-alpine3_18-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-alpine3_18-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "aarch64-linux-alpine3_18-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-ignore-build-platform-mismatch --build=aarch64-unknown-linux --host=aarch64-unknown-linux --target=aarch64-unknown-linux --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-alpine3_18-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-deb10-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-deb10-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb10-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-aarch64-linux-deb12-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-aarch64-linux-deb12-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "aarch64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb12:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"aarch64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb12-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb12-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-i386-linux-alpine3_20-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-i386-linux-alpine3_20-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "i386-linux-alpine3_20-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-alpine3_20:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-alpine3_20-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458 simd009 T25062_V16 T25169 T22187_run T22033",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-alpine3_20-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-i386-linux-deb10-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-i386-linux-deb10-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "i386-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb10-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-i386-linux-deb12-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-i386-linux-deb12-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "i386-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb12:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb12-release+no_split_sections",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb12-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-x86_64-darwin-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-darwin-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-darwin-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
"find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-darwin-m1"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-darwin-release",
"XZ_OPT": "-9",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
}
},
"release-x86_64-freebsd14-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-freebsd14-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-freebsd14-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": null,
"needs": [
{
"artifacts": false,
"job": "hadrian-ghc-in-ghci"
}
],
"rules": [
{
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success"
}
],
"script": [
".gitlab/ci.sh setup",
".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-freebsd14"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-freebsd14-release",
"BUILD_FLAVOUR": "release",
"CABAL_INSTALL_VERSION": "3.10.3.0",
"CC": "cc",
"CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
"CXX": "c++",
"GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-freebsd14-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-int_native-release+fully_static": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": true,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_12-int_native-release+fully_static.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-release+fully_static",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "release+fully_static",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-release+fully_static",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-release+fully_static+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_12-release+fully_static+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+fully_static+no_split_sections",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"BUILD_FLAVOUR": "release+fully_static+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-release+fully_static+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_12-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_12-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-alpine3_20-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-alpine3_20-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-alpine3_20-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-release+no_split_sections",
"BROKEN_TESTS": "encoding004 T10458",
"BUILD_FLAVOUR": "release+no_split_sections",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_20-release+no_split_sections",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb10-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb10-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb10-release+debug_info": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb10-release+debug_info.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb10-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release+debug_info",
"BUILD_FLAVOUR": "release+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-release+debug_info",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb11-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb11-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb11-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb12-release": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb12-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-release",
"BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-release",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-deb9-release+no_split_sections": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-deb9-release+no_split_sections.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-deb9-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-int_native-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb9-release+no_split_sections",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "release+no_split_sections",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3", "HADRIAN_ARGS": "--hash-unit-ids",
"HADRIAN_ARGS": "--docs=no-sphinx", "IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-int_native-validate", "TEST_ENV": "x86_64-linux-deb9-release+no_split_sections",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"nightly-x86_64-windows-validate": { "release-x86_64-linux-fedora33-release": {
"after_script": [ "after_script": [
"bash .gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean" ".gitlab/ci.sh clean",
"cat ci_timings"
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "8 weeks", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-x86_64-windows-validate.tar.xz", "ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2673,11 +4526,14 @@ ...@@ -2673,11 +4526,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "no-caching", "key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [] "paths": [
"cabal-cache",
"toolchain"
]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2686,36 +4542,37 @@ ...@@ -2686,36 +4542,37 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY)", "if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
"script": [ "script": [
"bash .gitlab/ci.sh setup", "sudo chown ghc:ghc -R .",
"bash .gitlab/ci.sh configure", ".gitlab/ci.sh setup",
"bash .gitlab/ci.sh build_hadrian", ".gitlab/ci.sh configure",
"bash .gitlab/ci.sh test_hadrian" ".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"new-x86_64-windows" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "release",
"CABAL_INSTALL_VERSION": "3.8.1.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3", "HADRIAN_ARGS": "--hash-unit-ids",
"HADRIAN_ARGS": "--docs=no-sphinx", "IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"MSYSTEM": "CLANG64", "LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-validate", "TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"release-aarch64-darwin-release": { "release-x86_64-linux-fedora33-release+debug_info": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2726,7 +4583,7 @@ ...@@ -2726,7 +4583,7 @@
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-aarch64-darwin-release.tar.xz", "ghc-x86_64-linux-fedora33-release+debug_info.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2736,14 +4593,14 @@ ...@@ -2736,14 +4593,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-darwin-$CACHE_REV", "key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2757,7 +4614,7 @@ ...@@ -2757,7 +4614,7 @@
} }
], ],
"script": [ "script": [
"find libraries -name config.sub -exec cp config.sub {} \\;", "sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -2765,24 +4622,91 @@ ...@@ -2765,24 +4622,91 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-darwin" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-darwin-release", "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release+debug_info",
"BUILD_FLAVOUR": "release+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release+debug_info",
"XZ_OPT": "-9"
}
},
"release-x86_64-linux-fedora33-release-hackage": {
"after_script": [
".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean",
"cat ci_timings"
],
"allow_failure": false,
"artifacts": {
"expire_in": "1 year",
"paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml",
"unexpected-test-output.tar.gz"
],
"reports": {
"junit": "junit.xml"
},
"when": "always"
},
"cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [
"cabal-cache",
"toolchain"
]
},
"dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$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",
".gitlab/ci.sh test_hadrian"
],
"stage": "full-build",
"tags": [
"x86_64-linux"
],
"variables": {
"BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx", "HADRIAN_ARGS": "--haddock-for-hackage --hash-unit-ids",
"IGNORE_PERF_FAILURES": "all", "IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"MACOSX_DEPLOYMENT_TARGET": "11.0", "LLC": "/bin/false",
"NIX_SYSTEM": "aarch64-darwin", "OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-darwin-release", "TEST_ENV": "x86_64-linux-fedora33-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"release-aarch64-linux-alpine3_18-release+no_split_sections": { "release-x86_64-linux-fedora38-release": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2793,7 +4717,7 @@ ...@@ -2793,7 +4717,7 @@
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-aarch64-linux-alpine3_18-release+no_split_sections.tar.xz", "ghc-x86_64-linux-fedora38-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2803,14 +4727,14 @@ ...@@ -2803,14 +4727,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-alpine3_18-$CACHE_REV", "key": "x86_64-linux-fedora38-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-alpine3_18:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2832,23 +4756,22 @@ ...@@ -2832,23 +4756,22 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-alpine3_18-release+no_split_sections", "BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-release",
"BROKEN_TESTS": "encoding004 T10458", "BUILD_FLAVOUR": "release",
"BUILD_FLAVOUR": "release+no_split_sections", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "HADRIAN_ARGS": "--hash-unit-ids",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"IGNORE_PERF_FAILURES": "all", "IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-alpine3_18-release+no_split_sections", "TEST_ENV": "x86_64-linux-fedora38-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"release-aarch64-linux-deb10-release+no_split_sections": { "release-x86_64-linux-rocky8-release": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2859,7 +4782,7 @@ ...@@ -2859,7 +4782,7 @@
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-aarch64-linux-deb10-release+no_split_sections.tar.xz", "ghc-x86_64-linux-rocky8-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2869,14 +4792,14 @@ ...@@ -2869,14 +4792,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-rocky8-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2898,21 +4821,22 @@ ...@@ -2898,21 +4821,22 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb10-release+no_split_sections", "BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-release",
"BUILD_FLAVOUR": "release+no_split_sections", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all", "IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb10-release+no_split_sections", "TEST_ENV": "x86_64-linux-rocky8-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"release-aarch64-linux-deb11-release+no_split_sections": { "release-x86_64-linux-ubuntu18_04-release": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2923,7 +4847,7 @@ ...@@ -2923,7 +4847,7 @@
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-aarch64-linux-deb11-release+no_split_sections.tar.xz", "ghc-x86_64-linux-ubuntu18_04-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2933,14 +4857,14 @@ ...@@ -2933,14 +4857,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "aarch64-linux-deb11-$CACHE_REV", "key": "x86_64-linux-ubuntu18_04-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -2962,21 +4886,22 @@ ...@@ -2962,21 +4886,22 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"aarch64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-aarch64-linux-deb11-release+no_split_sections", "BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-release",
"BUILD_FLAVOUR": "release+no_split_sections", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all", "IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "aarch64-linux-deb11-release+no_split_sections", "TEST_ENV": "x86_64-linux-ubuntu18_04-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"release-i386-linux-deb10-release+no_split_sections": { "release-x86_64-linux-ubuntu20_04-release": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -2987,7 +4912,7 @@ ...@@ -2987,7 +4912,7 @@
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-i386-linux-deb10-release+no_split_sections.tar.xz", "ghc-x86_64-linux-ubuntu20_04-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -2997,14 +4922,14 @@ ...@@ -2997,14 +4922,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "i386-linux-deb10-$CACHE_REV", "key": "x86_64-linux-ubuntu20_04-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/i386-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3030,17 +4955,18 @@ ...@@ -3030,17 +4955,18 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-i386-linux-deb10-release+no_split_sections", "BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-release",
"BUILD_FLAVOUR": "release+no_split_sections", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all", "IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "i386-linux-deb10-release+no_split_sections", "TEST_ENV": "x86_64-linux-ubuntu20_04-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"release-x86_64-darwin-release": { "release-x86_64-linux-ubuntu22_04-release": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3051,7 +4977,7 @@ ...@@ -3051,7 +4977,7 @@
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-x86_64-darwin-release.tar.xz", "ghc-x86_64-linux-ubuntu22_04-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3061,14 +4987,14 @@ ...@@ -3061,14 +4987,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-darwin-$CACHE_REV", "key": "x86_64-linux-ubuntu22_04-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu22_04:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3082,7 +5008,7 @@ ...@@ -3082,7 +5008,7 @@
} }
], ],
"script": [ "script": [
"find libraries -name config.sub -exec cp config.sub {} \\;", "sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -3090,38 +5016,32 @@ ...@@ -3090,38 +5016,32 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-darwin-m1" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-release", "BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu22_04-release",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx", "HADRIAN_ARGS": "--hash-unit-ids",
"IGNORE_PERF_FAILURES": "all", "IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"MACOSX_DEPLOYMENT_TARGET": "10.13",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-darwin-release", "TEST_ENV": "x86_64-linux-ubuntu22_04-release",
"XZ_OPT": "-9", "XZ_OPT": "-9"
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
} }
}, },
"release-x86_64-linux-alpine3_12-int_native-release+fully_static": { "release-x86_64-windows-int_native-release": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", "bash .gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", "bash .gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", "bash .gitlab/ci.sh clean"
"cat ci_timings"
], ],
"allow_failure": true, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_12-int_native-release+fully_static.tar.xz", "ghc-x86_64-windows-int_native-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3131,14 +5051,11 @@ ...@@ -3131,14 +5051,11 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV", "key": "no-caching",
"paths": [ "paths": []
"cabal-cache",
"toolchain"
]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV", "image": null,
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3152,42 +5069,43 @@ ...@@ -3152,42 +5069,43 @@
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .", "bash .gitlab/ci.sh setup",
".gitlab/ci.sh setup", "bash .gitlab/ci.sh configure",
".gitlab/ci.sh configure", "bash .gitlab/ci.sh build_hadrian",
".gitlab/ci.sh build_hadrian", "bash .gitlab/ci.sh test_hadrian"
".gitlab/ci.sh test_hadrian"
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "new-x86_64-windows"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-release+fully_static", "BIN_DIST_NAME": "ghc-x86_64-windows-int_native-release",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458", "BUILD_FLAVOUR": "release",
"BUILD_FLAVOUR": "release+fully_static", "CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx", "GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs",
"IGNORE_PERF_FAILURES": "all", "IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-int_native-release+fully_static", "TEST_ENV": "x86_64-windows-int_native-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-alpine3_12-release+fully_static+no_split_sections": { "release-x86_64-windows-release": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", "bash .gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", "bash .gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", "bash .gitlab/ci.sh clean"
"cat ci_timings"
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "1 year",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_12-release+fully_static+no_split_sections.tar.xz", "ghc-x86_64-windows-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3197,14 +5115,11 @@ ...@@ -3197,14 +5115,11 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV", "key": "no-caching",
"paths": [ "paths": []
"cabal-cache",
"toolchain"
]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV", "image": null,
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3218,31 +5133,33 @@ ...@@ -3218,31 +5133,33 @@
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .", "bash .gitlab/ci.sh setup",
".gitlab/ci.sh setup", "bash .gitlab/ci.sh configure",
".gitlab/ci.sh configure", "bash .gitlab/ci.sh build_hadrian",
".gitlab/ci.sh build_hadrian", "bash .gitlab/ci.sh test_hadrian"
".gitlab/ci.sh test_hadrian"
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "new-x86_64-windows"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+fully_static+no_split_sections", "BIN_DIST_NAME": "ghc-x86_64-windows-release",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458", "BUILD_FLAVOUR": "release",
"BUILD_FLAVOUR": "release+fully_static+no_split_sections", "CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx", "GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx-pdfs",
"IGNORE_PERF_FAILURES": "all", "IGNORE_PERF_FAILURES": "all",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-release+fully_static+no_split_sections", "TEST_ENV": "x86_64-windows-release",
"XZ_OPT": "-9" "XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-alpine3_12-release+no_split_sections": { "x86_64-darwin-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3251,9 +5168,9 @@ ...@@ -3251,9 +5168,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_12-release+no_split_sections.tar.xz", "ghc-x86_64-darwin-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3263,14 +5180,14 @@ ...@@ -3263,14 +5180,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV", "key": "x86_64-darwin-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV", "image": null,
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3279,12 +5196,12 @@ ...@@ -3279,12 +5196,12 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-darwin-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .", "find libraries -name config.sub -exec cp config.sub {} \\;",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -3292,23 +5209,26 @@ ...@@ -3292,23 +5209,26 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "x86_64-darwin-m1"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-release+no_split_sections", "BIN_DIST_NAME": "ghc-x86_64-darwin-validate",
"BROKEN_TESTS": "encoding004 T10458", "BUILD_FLAVOUR": "validate",
"BUILD_FLAVOUR": "release+no_split_sections", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all", "LANG": "en_US.UTF-8",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override", "MACOSX_DEPLOYMENT_TARGET": "11.0",
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-release+no_split_sections", "TEST_ENV": "x86_64-darwin-validate",
"XZ_OPT": "-9" "ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
} }
}, },
"release-x86_64-linux-centos7-release+no_split_sections": { "x86_64-freebsd14-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3317,9 +5237,9 @@ ...@@ -3317,9 +5237,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-centos7-release+no_split_sections.tar.xz", "ghc-x86_64-freebsd14-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3329,14 +5249,14 @@ ...@@ -3329,14 +5249,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-centos7-$CACHE_REV", "key": "x86_64-freebsd14-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV", "image": null,
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3345,12 +5265,11 @@ ...@@ -3345,12 +5265,11 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-freebsd14-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*FreeBSD.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -3358,33 +5277,34 @@ ...@@ -3358,33 +5277,34 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "x86_64-freebsd14"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-centos7-release+no_split_sections", "BIN_DIST_NAME": "ghc-x86_64-freebsd14-validate",
"BROKEN_TESTS": "T22012", "BUILD_FLAVOUR": "validate",
"BUILD_FLAVOUR": "release+no_split_sections", "CABAL_INSTALL_VERSION": "3.10.3.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CC": "cc",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx", "CONFIGURE_ARGS": "--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all", "CXX": "c++",
"GHC_VERSION": "9.6.4",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-centos7-release+no_split_sections", "TEST_ENV": "x86_64-freebsd14-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-deb10-release": { "x86_64-linux-alpine3_12-int_native-validate+fully_static": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": false, "allow_failure": true,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-release.tar.xz", "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3394,14 +5314,14 @@ ...@@ -3394,14 +5314,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3410,7 +5330,7 @@ ...@@ -3410,7 +5330,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_12-int_native-validate\\+fully_static(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -3426,18 +5346,17 @@ ...@@ -3426,18 +5346,17 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-int_native-validate+fully_static",
"BUILD_FLAVOUR": "release", "BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "BUILD_FLAVOUR": "validate+fully_static",
"HADRIAN_ARGS": "--hash-unit-ids", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-release", "TEST_ENV": "x86_64-linux-alpine3_12-int_native-validate+fully_static"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-deb10-release+debug_info": { "x86_64-linux-alpine3_12-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3446,9 +5365,9 @@ ...@@ -3446,9 +5365,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-release+debug_info.tar.xz", "ghc-x86_64-linux-alpine3_12-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3458,14 +5377,14 @@ ...@@ -3458,14 +5377,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3474,7 +5393,7 @@ ...@@ -3474,7 +5393,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -3491,17 +5410,16 @@ ...@@ -3491,17 +5410,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-release+debug_info", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate",
"BUILD_FLAVOUR": "release+debug_info", "BROKEN_TESTS": "encoding004 T10458",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "BUILD_FLAVOUR": "validate",
"HADRIAN_ARGS": "--hash-unit-ids", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-release+debug_info", "TEST_ENV": "x86_64-linux-alpine3_12-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-deb11-release": { "x86_64-linux-alpine3_12-validate+fully_static": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3510,9 +5428,9 @@ ...@@ -3510,9 +5428,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb11-release.tar.xz", "ghc-x86_64-linux-alpine3_12-validate+fully_static.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3522,14 +5440,14 @@ ...@@ -3522,14 +5440,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb11-$CACHE_REV", "key": "x86_64-linux-alpine3_12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3538,7 +5456,7 @@ ...@@ -3538,7 +5456,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_12-validate\\+fully_static(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -3555,17 +5473,16 @@ ...@@ -3555,17 +5473,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-release", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate+fully_static",
"BUILD_FLAVOUR": "release", "BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "BUILD_FLAVOUR": "validate+fully_static",
"HADRIAN_ARGS": "--hash-unit-ids", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-release", "TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-deb11-release+boot_nonmoving_gc": { "x86_64-linux-alpine3_20-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3574,9 +5491,9 @@ ...@@ -3574,9 +5491,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb11-release+boot_nonmoving_gc.tar.xz", "ghc-x86_64-linux-alpine3_20-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3586,14 +5503,14 @@ ...@@ -3586,14 +5503,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb11-$CACHE_REV", "key": "x86_64-linux-alpine3_20-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3602,7 +5519,7 @@ ...@@ -3602,7 +5519,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -3619,17 +5536,16 @@ ...@@ -3619,17 +5536,16 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-release+boot_nonmoving_gc", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-validate",
"BUILD_FLAVOUR": "release+boot_nonmoving_gc", "BROKEN_TESTS": "encoding004 T10458",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "BUILD_FLAVOUR": "validate",
"HADRIAN_ARGS": "--hash-unit-ids", "CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all", "INSTALL_CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-release+boot_nonmoving_gc", "TEST_ENV": "x86_64-linux-alpine3_20-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-deb12-release": { "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3638,9 +5554,9 @@ ...@@ -3638,9 +5554,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb12-release.tar.xz", "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3650,14 +5566,14 @@ ...@@ -3650,14 +5566,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb12-$CACHE_REV", "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3666,7 +5582,7 @@ ...@@ -3666,7 +5582,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -3679,21 +5595,21 @@ ...@@ -3679,21 +5595,21 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-release", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "CROSS_TARGET": "wasm32-wasi",
"IGNORE_PERF_FAILURES": "all", "FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-release", "TEST_ENV": "x86_64-linux-alpine3_20-wasm-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-deb9-release+no_split_sections": { "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3702,9 +5618,9 @@ ...@@ -3702,9 +5618,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb9-release+no_split_sections.tar.xz", "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3714,14 +5630,14 @@ ...@@ -3714,14 +5630,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb9-$CACHE_REV", "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3730,8 +5646,9 @@ ...@@ -3730,8 +5646,9 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "allow_failure": true,
"when": "on_success" "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
} }
], ],
"script": [ "script": [
...@@ -3746,18 +5663,18 @@ ...@@ -3746,18 +5663,18 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb9-release+no_split_sections", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release+no_split_sections", "BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "CROSS_TARGET": "wasm32-wasi",
"IGNORE_PERF_FAILURES": "all", "FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb9-release+no_split_sections", "TEST_ENV": "x86_64-linux-alpine3_20-wasm-int_native-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-fedora33-release": { "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3766,9 +5683,9 @@ ...@@ -3766,9 +5683,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz", "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3778,14 +5695,14 @@ ...@@ -3778,14 +5695,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV", "key": "x86_64-linux-alpine3_20-wasm-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_20-wasm:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3794,8 +5711,9 @@ ...@@ -3794,8 +5711,9 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "allow_failure": true,
"when": "on_success" "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release\\+host_fully_static\\+text_simdutf(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*wasm.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
} }
], ],
"script": [ "script": [
...@@ -3811,19 +5729,17 @@ ...@@ -3811,19 +5729,17 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release", "BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "release+host_fully_static+text_simdutf",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "CROSS_TARGET": "wasm32-wasi",
"IGNORE_PERF_FAILURES": "all", "FIREFOX_LAUNCH_OPTS": "{\"browser\":\"firefox\",\"executablePath\":\"/usr/bin/firefox\"}",
"LLC": "/bin/false", "HADRIAN_ARGS": "--docs=no-sphinx-pdfs --docs=no-sphinx-man",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release", "TEST_ENV": "x86_64-linux-alpine3_20-wasm-unreg-cross_wasm32-wasi-release+host_fully_static+text_simdutf"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-fedora33-release+debug_info": { "x86_64-linux-deb10-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3832,9 +5748,9 @@ ...@@ -3832,9 +5748,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora33-release+debug_info.tar.xz", "ghc-x86_64-linux-deb10-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3844,14 +5760,14 @@ ...@@ -3844,14 +5760,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV", "key": "x86_64-linux-deb10-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3860,7 +5776,7 @@ ...@@ -3860,7 +5776,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb10-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -3877,19 +5793,15 @@ ...@@ -3877,19 +5793,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release+debug_info", "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate",
"BUILD_FLAVOUR": "release+debug_info", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release+debug_info", "TEST_ENV": "x86_64-linux-deb10-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-fedora33-release-hackage": { "x86_64-linux-deb10-validate+debug_info": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3898,9 +5810,9 @@ ...@@ -3898,9 +5810,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz", "ghc-x86_64-linux-deb10-validate+debug_info.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3910,14 +5822,14 @@ ...@@ -3910,14 +5822,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV", "key": "x86_64-linux-deb10-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3926,7 +5838,7 @@ ...@@ -3926,7 +5838,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb10-validate\\+debug_info(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -3943,19 +5855,15 @@ ...@@ -3943,19 +5855,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+debug_info",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-base-url --hash-unit-ids", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release", "TEST_ENV": "x86_64-linux-deb10-validate+debug_info"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-fedora38-release": { "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -3964,9 +5872,9 @@ ...@@ -3964,9 +5872,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora38-release.tar.xz", "ghc-x86_64-linux-deb11-cross_aarch64-linux-gnu-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -3976,14 +5884,14 @@ ...@@ -3976,14 +5884,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora38-$CACHE_REV", "key": "x86_64-linux-deb11-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -3992,7 +5900,7 @@ ...@@ -3992,7 +5900,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb11-cross_aarch64-linux-gnu-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -4009,17 +5917,17 @@ ...@@ -4009,17 +5917,17 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-cross_aarch64-linux-gnu-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "CROSS_EMULATOR": "qemu-aarch64 -L /usr/aarch64-linux-gnu",
"IGNORE_PERF_FAILURES": "all", "CROSS_TARGET": "aarch64-linux-gnu",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora38-release", "TEST_ENV": "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-rocky8-release": { "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4028,9 +5936,9 @@ ...@@ -4028,9 +5936,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-rocky8-release.tar.xz", "ghc-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4040,14 +5948,14 @@ ...@@ -4040,14 +5948,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-rocky8-$CACHE_REV", "key": "x86_64-linux-deb11-emsdk-closure-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11-emsdk-closure:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4056,7 +5964,7 @@ ...@@ -4056,7 +5964,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*javascript.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -4072,18 +5980,19 @@ ...@@ -4072,18 +5980,19 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx", "CONFIGURE_WRAPPER": "emconfigure",
"IGNORE_PERF_FAILURES": "all", "CROSS_EMULATOR": "js-emulator",
"CROSS_TARGET": "javascript-unknown-ghcjs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-rocky8-release", "TEST_ENV": "x86_64-linux-deb11-emsdk-closure-int_native-cross_javascript-unknown-ghcjs-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-ubuntu18_04-release": { "x86_64-linux-deb11-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4092,9 +6001,9 @@ ...@@ -4092,9 +6001,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-ubuntu18_04-release.tar.xz", "ghc-x86_64-linux-deb11-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4104,14 +6013,14 @@ ...@@ -4104,14 +6013,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-ubuntu18_04-$CACHE_REV", "key": "x86_64-linux-deb11-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4120,7 +6029,7 @@ ...@@ -4120,7 +6029,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb11-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -4137,17 +6046,15 @@ ...@@ -4137,17 +6046,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu18_04-release", "TEST_ENV": "x86_64-linux-deb11-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-linux-ubuntu20_04-release": { "x86_64-linux-deb12-int_native-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4156,9 +6063,9 @@ ...@@ -4156,9 +6063,9 @@
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-ubuntu20_04-release.tar.xz", "ghc-x86_64-linux-deb12-int_native-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4168,14 +6075,14 @@ ...@@ -4168,14 +6075,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-ubuntu20_04-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4184,7 +6091,7 @@ ...@@ -4184,7 +6091,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-int_native-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -4200,28 +6107,27 @@ ...@@ -4200,28 +6107,27 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-int_native-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"IGNORE_PERF_FAILURES": "all",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu20_04-release", "TEST_ENV": "x86_64-linux-deb12-int_native-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-windows-int_native-release": { "x86_64-linux-deb12-no_tntc-validate": {
"after_script": [ "after_script": [
"bash .gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean" ".gitlab/ci.sh clean",
"cat ci_timings"
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-windows-int_native-release.tar.xz", "ghc-x86_64-linux-deb12-no_tntc-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4231,11 +6137,14 @@ ...@@ -4231,11 +6137,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "no-caching", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [] "paths": [
"cabal-cache",
"toolchain"
]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4244,47 +6153,44 @@ ...@@ -4244,47 +6153,44 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "allow_failure": true,
"when": "on_success" "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-no_tntc-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
} }
], ],
"script": [ "script": [
"bash .gitlab/ci.sh setup", "sudo chown ghc:ghc -R .",
"bash .gitlab/ci.sh configure", ".gitlab/ci.sh setup",
"bash .gitlab/ci.sh build_hadrian", ".gitlab/ci.sh configure",
"bash .gitlab/ci.sh test_hadrian" ".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"new-x86_64-windows" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-int_native-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-no_tntc-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0", "CONFIGURE_ARGS": "--disable-tables-next-to-code --enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-int_native-release", "TEST_ENV": "x86_64-linux-deb12-no_tntc-validate"
"XZ_OPT": "-9"
} }
}, },
"release-x86_64-windows-release": { "x86_64-linux-deb12-numa-slow-validate": {
"after_script": [ "after_script": [
"bash .gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
"bash .gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
"bash .gitlab/ci.sh clean" ".gitlab/ci.sh clean",
"cat ci_timings"
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "1 year", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-windows-release.tar.xz", "ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4294,11 +6200,14 @@ ...@@ -4294,11 +6200,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "no-caching", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [] "paths": [
"cabal-cache",
"toolchain"
]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4307,37 +6216,33 @@ ...@@ -4307,37 +6216,33 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB == \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-numa-slow-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
"script": [ "script": [
"bash .gitlab/ci.sh setup", "sudo chown ghc:ghc -R .",
"bash .gitlab/ci.sh configure", ".gitlab/ci.sh setup",
"bash .gitlab/ci.sh build_hadrian", ".gitlab/ci.sh configure",
"bash .gitlab/ci.sh test_hadrian" ".gitlab/ci.sh build_hadrian",
".gitlab/ci.sh test_hadrian"
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"new-x86_64-windows" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-release", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-numa-slow-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "slow-validate",
"CABAL_INSTALL_VERSION": "3.8.1.0", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "ENABLE_NUMA": "1",
"GHC_VERSION": "9.4.3", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--hash-unit-ids --docs=no-sphinx",
"IGNORE_PERF_FAILURES": "all",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-windows-release", "TEST_ENV": "x86_64-linux-deb12-numa-slow-validate"
"XZ_OPT": "-9"
} }
}, },
"x86_64-darwin-validate": { "x86_64-linux-deb12-release-perf": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4348,7 +6253,7 @@ ...@@ -4348,7 +6253,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-darwin-validate.tar.xz", "ghc-x86_64-linux-deb12-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4358,14 +6263,14 @@ ...@@ -4358,14 +6263,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-darwin-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4374,12 +6279,12 @@ ...@@ -4374,12 +6279,12 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
"script": [ "script": [
"find libraries -name config.sub -exec cp config.sub {} \\;", "sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -4387,36 +6292,30 @@ ...@@ -4387,36 +6292,30 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-darwin-m1" "x86_64-linux-perf"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-darwin-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-release",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8", "RUNTEST_ARGS": " --config perf_path=perf",
"MACOSX_DEPLOYMENT_TARGET": "10.13", "TEST_ENV": "x86_64-linux-deb12-release"
"NIX_SYSTEM": "x86_64-darwin",
"RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-darwin-validate",
"ac_cv_func_clock_gettime": "no",
"ac_cv_func_futimens": "no",
"ac_cv_func_utimensat": "no"
} }
}, },
"x86_64-freebsd13-validate": { "x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": true, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-freebsd13-validate.tar.xz", "ghc-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4426,14 +6325,14 @@ ...@@ -4426,14 +6325,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-freebsd13-$CACHE_REV", "key": "x86_64-linux-deb12-riscv-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": null, "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12-riscv:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4442,11 +6341,12 @@ ...@@ -4442,11 +6341,12 @@
], ],
"rules": [ "rules": [
{ {
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*FreeBSD.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*RISC-V.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .",
".gitlab/ci.sh setup", ".gitlab/ci.sh setup",
".gitlab/ci.sh configure", ".gitlab/ci.sh configure",
".gitlab/ci.sh build_hadrian", ".gitlab/ci.sh build_hadrian",
...@@ -4454,21 +6354,21 @@ ...@@ -4454,21 +6354,21 @@
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-freebsd13" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-freebsd13-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0", "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --enable-strict-ghc-toolchain-check", "CROSS_EMULATOR": "qemu-riscv64 -L /usr/riscv64-linux-gnu",
"GHC_VERSION": "9.4.3", "CROSS_TARGET": "riscv64-linux-gnu",
"HADRIAN_ARGS": "--docs=no-sphinx", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-freebsd13-validate" "TEST_ENV": "x86_64-linux-deb12-riscv-cross_riscv64-linux-gnu-validate"
} }
}, },
"x86_64-linux-alpine3_12-validate+fully_static": { "x86_64-linux-deb12-unreg-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4479,7 +6379,7 @@ ...@@ -4479,7 +6379,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_12-validate+fully_static.tar.xz", "ghc-x86_64-linux-deb12-unreg-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4489,14 +6389,14 @@ ...@@ -4489,14 +6389,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_12-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4505,7 +6405,7 @@ ...@@ -4505,7 +6405,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-unreg-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -4522,17 +6422,15 @@ ...@@ -4522,17 +6422,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_12-validate+fully_static", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-unreg-validate",
"BROKEN_TESTS": "ghcilink002 linker_unload_native encoding004 T10458", "BUILD_FLAVOUR": "validate",
"BUILD_FLAVOUR": "validate+fully_static", "CONFIGURE_ARGS": "--enable-unregisterised --enable-strict-ghc-toolchain-check",
"CONFIGURE_ARGS": "--disable-ld-override --enable-strict-ghc-toolchain-check", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=no-sphinx",
"INSTALL_CONFIGURE_ARGS": "--disable-ld-override",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_12-validate+fully_static" "TEST_ENV": "x86_64-linux-deb12-unreg-validate"
} }
}, },
"x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static": { "x86_64-linux-deb12-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4543,7 +6441,7 @@ ...@@ -4543,7 +6441,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static.tar.xz", "ghc-x86_64-linux-deb12-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4553,14 +6451,14 @@ ...@@ -4553,14 +6451,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4569,7 +6467,7 @@ ...@@ -4569,7 +6467,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -4586,16 +6484,15 @@ ...@@ -4586,16 +6484,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate",
"BUILD_FLAVOUR": "release+fully_static", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-cross_wasm32-wasi-release+fully_static" "TEST_ENV": "x86_64-linux-deb12-validate"
} }
}, },
"x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static": { "x86_64-linux-deb12-validate+boot_nonmoving_gc": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4606,7 +6503,7 @@ ...@@ -4606,7 +6503,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static.tar.xz", "ghc-x86_64-linux-deb12-validate+boot_nonmoving_gc.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4616,14 +6513,14 @@ ...@@ -4616,14 +6513,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4632,9 +6529,8 @@ ...@@ -4632,9 +6529,8 @@
], ],
"rules": [ "rules": [
{ {
"allow_failure": true, "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-validate\\+boot_nonmoving_gc(\\s|$).*/)) || (($ONLY_JOBS == null) && (($CI_MERGE_REQUEST_LABELS =~ /.*non-moving GC.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "when": "on_success"
"when": "manual"
} }
], ],
"script": [ "script": [
...@@ -4649,17 +6545,16 @@ ...@@ -4649,17 +6545,16 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+boot_nonmoving_gc",
"BUILD_FLAVOUR": "release+fully_static", "BUILD_FLAVOUR": "validate+boot_nonmoving_gc",
"CONFIGURE_ARGS": "--with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none", "RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity",
"RUNTEST_ARGS": "", "TEST_ENV": "x86_64-linux-deb12-validate+boot_nonmoving_gc"
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-int_native-cross_wasm32-wasi-release+fully_static"
} }
}, },
"x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static": { "x86_64-linux-deb12-validate+llvm": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4670,7 +6565,7 @@ ...@@ -4670,7 +6565,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static.tar.xz", "ghc-x86_64-linux-deb12-validate+llvm.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4680,14 +6575,14 @@ ...@@ -4680,14 +6575,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-alpine3_17-wasm-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_17-wasm:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4696,9 +6591,8 @@ ...@@ -4696,9 +6591,8 @@
], ],
"rules": [ "rules": [
{ {
"allow_failure": true, "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-validate\\+llvm(\\s|$).*/)) || (($ONLY_JOBS == null) && (($CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "when": "on_success"
"when": "manual"
} }
], ],
"script": [ "script": [
...@@ -4714,27 +6608,26 @@ ...@@ -4714,27 +6608,26 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+llvm",
"BUILD_FLAVOUR": "release+fully_static", "BUILD_FLAVOUR": "validate+llvm",
"CONFIGURE_ARGS": "--enable-unregisterised --with-intree-gmp --with-system-libffi --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "wasm32-wasi", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-alpine3_17-wasm-unreg-cross_wasm32-wasi-release+fully_static" "TEST_ENV": "x86_64-linux-deb12-validate+llvm"
} }
}, },
"x86_64-linux-deb10-int_native-validate": { "x86_64-linux-deb12-validate+thread_sanitizer_cmm": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", ".gitlab/ci.sh clean",
"cat ci_timings" "cat ci_timings"
], ],
"allow_failure": false, "allow_failure": true,
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-int_native-validate.tar.xz", "ghc-x86_64-linux-deb12-validate+thread_sanitizer_cmm.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4744,14 +6637,14 @@ ...@@ -4744,14 +6637,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4760,8 +6653,9 @@ ...@@ -4760,8 +6653,9 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "allow_failure": true,
"when": "on_success" "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-validate\\+thread_sanitizer_cmm(\\s|$).*/)) || (($ONLY_JOBS == null) && ((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "manual"
} }
], ],
"script": [ "script": [
...@@ -4776,15 +6670,18 @@ ...@@ -4776,15 +6670,18 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-int_native-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+thread_sanitizer_cmm",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate+thread_sanitizer_cmm",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-int_native-validate" "TEST_ENV": "x86_64-linux-deb12-validate+thread_sanitizer_cmm",
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
} }
}, },
"x86_64-linux-deb10-no_tntc-validate": { "x86_64-linux-deb12-zstd-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4795,7 +6692,7 @@ ...@@ -4795,7 +6692,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-no_tntc-validate.tar.xz", "ghc-x86_64-linux-deb12-zstd-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4805,14 +6702,14 @@ ...@@ -4805,14 +6702,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-deb12-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4821,9 +6718,8 @@ ...@@ -4821,9 +6718,8 @@
], ],
"rules": [ "rules": [
{ {
"allow_failure": true, "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb12-zstd-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (($CI_MERGE_REQUEST_LABELS =~ /.*IPE.*/)))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "when": "on_success"
"when": "manual"
} }
], ],
"script": [ "script": [
...@@ -4839,14 +6735,15 @@ ...@@ -4839,14 +6735,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-no_tntc-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb12-zstd-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--disable-tables-next-to-code --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-ipe-data-compression --enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-no_tntc-validate" "TEST_ENV": "x86_64-linux-deb12-zstd-validate"
} }
}, },
"x86_64-linux-deb10-numa-slow-validate": { "x86_64-linux-deb9-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4857,7 +6754,7 @@ ...@@ -4857,7 +6754,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz", "ghc-x86_64-linux-deb9-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4867,14 +6764,14 @@ ...@@ -4867,14 +6764,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-deb9-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4883,7 +6780,7 @@ ...@@ -4883,7 +6780,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-deb9-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -4900,15 +6797,15 @@ ...@@ -4900,15 +6797,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-numa-slow-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-deb9-validate",
"BUILD_FLAVOUR": "slow-validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"ENABLE_NUMA": "1", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-numa-slow-validate" "TEST_ENV": "x86_64-linux-deb9-validate"
} }
}, },
"x86_64-linux-deb10-unreg-validate": { "x86_64-linux-fedora33-release": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4919,7 +6816,7 @@ ...@@ -4919,7 +6816,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-unreg-validate.tar.xz", "ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4929,14 +6826,14 @@ ...@@ -4929,14 +6826,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -4945,7 +6842,7 @@ ...@@ -4945,7 +6842,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora33-release(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -4962,14 +6859,17 @@ ...@@ -4962,14 +6859,17 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-unreg-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-unregisterised --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-unreg-validate" "TEST_ENV": "x86_64-linux-fedora33-release"
} }
}, },
"x86_64-linux-deb10-validate+debug_info": { "x86_64-linux-fedora33-release-hackage": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -4980,7 +6880,7 @@ ...@@ -4980,7 +6880,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-validate+debug_info.tar.xz", "ghc-x86_64-linux-fedora33-release.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -4990,14 +6890,14 @@ ...@@ -4990,14 +6890,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -5006,7 +6906,7 @@ ...@@ -5006,7 +6906,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*test-primops.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora33-release(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -5023,14 +6923,18 @@ ...@@ -5023,14 +6923,18 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+debug_info", "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release",
"BUILD_FLAVOUR": "validate+debug_info", "BUILD_FLAVOUR": "release",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--haddock-for-hackage",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate+debug_info" "TEST_ENV": "x86_64-linux-fedora33-release"
} }
}, },
"x86_64-linux-deb10-validate+thread_sanitizer": { "x86_64-linux-fedora33-validate+debug_info": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -5041,7 +6945,7 @@ ...@@ -5041,7 +6945,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-validate+thread_sanitizer.tar.xz", "ghc-x86_64-linux-fedora33-validate+debug_info.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -5051,14 +6955,14 @@ ...@@ -5051,14 +6955,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-fedora33-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -5067,9 +6971,8 @@ ...@@ -5067,9 +6971,8 @@
], ],
"rules": [ "rules": [
{ {
"allow_failure": true, "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora33-validate\\+debug_info(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "when": "on_success"
"when": "manual"
} }
], ],
"script": [ "script": [
...@@ -5085,16 +6988,17 @@ ...@@ -5085,16 +6988,17 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-validate+thread_sanitizer", "BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-validate+debug_info",
"BUILD_FLAVOUR": "validate+thread_sanitizer", "BUILD_FLAVOUR": "validate+debug_info",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"HADRIAN_ARGS": "--docs=none", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false",
"OPT": "/bin/false",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-validate+thread_sanitizer", "TEST_ENV": "x86_64-linux-fedora33-validate+debug_info"
"TSAN_OPTIONS": "suppressions=$CI_PROJECT_DIR/rts/.tsan-suppressions"
} }
}, },
"x86_64-linux-deb10-zstd-validate": { "x86_64-linux-fedora38-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -5105,7 +7009,7 @@ ...@@ -5105,7 +7009,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb10-zstd-validate.tar.xz", "ghc-x86_64-linux-fedora38-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -5115,14 +7019,14 @@ ...@@ -5115,14 +7019,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb10-$CACHE_REV", "key": "x86_64-linux-fedora38-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora38:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -5131,7 +7035,7 @@ ...@@ -5131,7 +7035,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*IPE.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-fedora38-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -5148,14 +7052,15 @@ ...@@ -5148,14 +7052,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb10-zstd-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-fedora38-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-ipe-data-compression --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb10-zstd-validate" "TEST_ENV": "x86_64-linux-fedora38-validate"
} }
}, },
"x86_64-linux-deb11-cross_aarch64-linux-gnu-validate": { "x86_64-linux-rocky8-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -5166,7 +7071,7 @@ ...@@ -5166,7 +7071,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb11-cross_aarch64-linux-gnu-validate.tar.xz", "ghc-x86_64-linux-rocky8-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -5176,14 +7081,14 @@ ...@@ -5176,14 +7081,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb11-$CACHE_REV", "key": "x86_64-linux-rocky8-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-rocky8:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -5192,7 +7097,7 @@ ...@@ -5192,7 +7097,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-rocky8-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -5209,16 +7114,15 @@ ...@@ -5209,16 +7114,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-cross_aarch64-linux-gnu-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-rocky8-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CROSS_EMULATOR": "qemu-aarch64 -L /usr/aarch64-linux-gnu", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CROSS_TARGET": "aarch64-linux-gnu",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-cross_aarch64-linux-gnu-validate" "TEST_ENV": "x86_64-linux-rocky8-validate"
} }
}, },
"x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate": { "x86_64-linux-ubuntu18_04-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -5229,7 +7133,7 @@ ...@@ -5229,7 +7133,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate.tar.xz", "ghc-x86_64-linux-ubuntu18_04-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -5239,14 +7143,14 @@ ...@@ -5239,14 +7143,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb11-$CACHE_REV", "key": "x86_64-linux-ubuntu18_04-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu18_04:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -5255,7 +7159,7 @@ ...@@ -5255,7 +7159,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "((($CI_MERGE_REQUEST_LABELS =~ /.*full-ci.*/) || ($CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/) || ($CI_COMMIT_BRANCH == \"master\") || ($CI_COMMIT_BRANCH =~ /ghc-[0-9]+\\.[0-9]+/)) || ($CI_MERGE_REQUEST_LABELS =~ /.*javascript.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-ubuntu18_04-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -5271,18 +7175,16 @@ ...@@ -5271,18 +7175,16 @@
"x86_64-linux" "x86_64-linux"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "native", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate", "BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu18_04-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CONFIGURE_WRAPPER": "emconfigure", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"CROSS_EMULATOR": "js-emulator",
"CROSS_TARGET": "javascript-unknown-ghcjs",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate" "TEST_ENV": "x86_64-linux-ubuntu18_04-validate"
} }
}, },
"x86_64-linux-deb11-validate+boot_nonmoving_gc": { "x86_64-linux-ubuntu20_04-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -5293,7 +7195,7 @@ ...@@ -5293,7 +7195,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb11-validate+boot_nonmoving_gc.tar.xz", "ghc-x86_64-linux-ubuntu20_04-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -5303,14 +7205,14 @@ ...@@ -5303,14 +7205,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb11-$CACHE_REV", "key": "x86_64-linux-ubuntu20_04-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb11:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu20_04:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -5319,7 +7221,7 @@ ...@@ -5319,7 +7221,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*non-moving GC.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-ubuntu20_04-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -5336,14 +7238,15 @@ ...@@ -5336,14 +7238,15 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb11-validate+boot_nonmoving_gc", "BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu20_04-validate",
"BUILD_FLAVOUR": "validate+boot_nonmoving_gc", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "--way=nonmoving --way=nonmoving_thr --way=nonmoving_thr_sanity", "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"TEST_ENV": "x86_64-linux-deb11-validate+boot_nonmoving_gc" "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-ubuntu20_04-validate"
} }
}, },
"x86_64-linux-deb12-validate+llvm": { "x86_64-linux-ubuntu22_04-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", ".gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", ".gitlab/ci.sh save_test_output",
...@@ -5354,7 +7257,7 @@ ...@@ -5354,7 +7257,7 @@
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-deb12-validate+llvm.tar.xz", "ghc-x86_64-linux-ubuntu22_04-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -5364,14 +7267,14 @@ ...@@ -5364,14 +7267,14 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-deb12-$CACHE_REV", "key": "x86_64-linux-ubuntu22_04-$CACHE_REV",
"paths": [ "paths": [
"cabal-cache", "cabal-cache",
"toolchain" "toolchain"
] ]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV", "image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-ubuntu22_04:$DOCKER_REV",
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -5380,7 +7283,7 @@ ...@@ -5380,7 +7283,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(($CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/)) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-linux-ubuntu22_04-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -5397,25 +7300,25 @@ ...@@ -5397,25 +7300,25 @@
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-linux-deb12-validate+llvm", "BIN_DIST_NAME": "ghc-x86_64-linux-ubuntu22_04-validate",
"BUILD_FLAVOUR": "validate+llvm", "BUILD_FLAVOUR": "validate",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-deb12-validate+llvm" "TEST_ENV": "x86_64-linux-ubuntu22_04-validate"
} }
}, },
"x86_64-linux-fedora33-release": { "x86_64-windows-int_native-validate": {
"after_script": [ "after_script": [
".gitlab/ci.sh save_cache", "bash .gitlab/ci.sh save_cache",
".gitlab/ci.sh save_test_output", "bash .gitlab/ci.sh save_test_output",
".gitlab/ci.sh clean", "bash .gitlab/ci.sh clean"
"cat ci_timings"
], ],
"allow_failure": false, "allow_failure": false,
"artifacts": { "artifacts": {
"expire_in": "2 weeks", "expire_in": "2 weeks",
"paths": [ "paths": [
"ghc-x86_64-linux-fedora33-release.tar.xz", "ghc-x86_64-windows-int_native-validate.tar.xz",
"junit.xml", "junit.xml",
"unexpected-test-output.tar.gz" "unexpected-test-output.tar.gz"
], ],
...@@ -5425,14 +7328,11 @@ ...@@ -5425,14 +7328,11 @@
"when": "always" "when": "always"
}, },
"cache": { "cache": {
"key": "x86_64-linux-fedora33-$CACHE_REV", "key": "no-caching",
"paths": [ "paths": []
"cabal-cache",
"toolchain"
]
}, },
"dependencies": [], "dependencies": [],
"image": "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV", "image": null,
"needs": [ "needs": [
{ {
"artifacts": false, "artifacts": false,
...@@ -5441,30 +7341,33 @@ ...@@ -5441,30 +7341,33 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-windows-int_native-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && (\"disabled\" != \"disabled\"))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
"script": [ "script": [
"sudo chown ghc:ghc -R .", "bash .gitlab/ci.sh setup",
".gitlab/ci.sh setup", "bash .gitlab/ci.sh configure",
".gitlab/ci.sh configure", "bash .gitlab/ci.sh build_hadrian",
".gitlab/ci.sh build_hadrian", "bash .gitlab/ci.sh test_hadrian"
".gitlab/ci.sh test_hadrian"
], ],
"stage": "full-build", "stage": "full-build",
"tags": [ "tags": [
"x86_64-linux" "new-x86_64-windows"
], ],
"variables": { "variables": {
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "native",
"BIN_DIST_NAME": "ghc-x86_64-linux-fedora33-release", "BIN_DIST_NAME": "ghc-x86_64-windows-int_native-validate",
"BUILD_FLAVOUR": "release", "BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LLC": "/bin/false", "GHC_VERSION": "9.6.4",
"OPT": "/bin/false", "HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
"TEST_ENV": "x86_64-linux-fedora33-release" "TEST_ENV": "x86_64-windows-int_native-validate"
} }
}, },
"x86_64-windows-validate": { "x86_64-windows-validate": {
...@@ -5500,7 +7403,7 @@ ...@@ -5500,7 +7403,7 @@
], ],
"rules": [ "rules": [
{ {
"if": "(\"true\" == \"true\") && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)", "if": "((($ONLY_JOBS) && ($ONLY_JOBS =~ /.*\\bx86_64-windows-validate(\\s|$).*/)) || (($ONLY_JOBS == null) && ((\"true\" == \"true\")))) && ($RELEASE_JOB != \"yes\") && ($NIGHTLY == null)",
"when": "on_success" "when": "on_success"
} }
], ],
...@@ -5518,10 +7421,11 @@ ...@@ -5518,10 +7421,11 @@
"BIGNUM_BACKEND": "gmp", "BIGNUM_BACKEND": "gmp",
"BIN_DIST_NAME": "ghc-x86_64-windows-validate", "BIN_DIST_NAME": "ghc-x86_64-windows-validate",
"BUILD_FLAVOUR": "validate", "BUILD_FLAVOUR": "validate",
"CABAL_INSTALL_VERSION": "3.8.1.0", "CABAL_INSTALL_VERSION": "3.10.2.0",
"CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check", "CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"GHC_VERSION": "9.4.3", "GHC_VERSION": "9.6.4",
"HADRIAN_ARGS": "--docs=no-sphinx", "HADRIAN_ARGS": "--docs=no-sphinx-pdfs",
"INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
"LANG": "en_US.UTF-8", "LANG": "en_US.UTF-8",
"MSYSTEM": "CLANG64", "MSYSTEM": "CLANG64",
"RUNTEST_ARGS": "", "RUNTEST_ARGS": "",
......
...@@ -7,7 +7,12 @@ expectations. Also please answer the following question in your MR description:* ...@@ -7,7 +7,12 @@ expectations. Also please answer the following question in your MR description:*
Please take a few moments to address the following points: Please take a few moments to address the following points:
* [ ] if your MR may break existing programs (e.g. touches `base` or causes the * [ ] if your MR touches `base` (or touches parts of `ghc-internal` used
or re-exported by `base`) more substantially than just amending comments
or documentation, you likely need to raise a
[CLC proposal](https://github.com/haskell/core-libraries-committee#base-package)
before merging it.
* [ ] if your MR may break existing programs (e.g. causes the
compiler to reject programs), please describe the expected breakage and add compiler to reject programs), please describe the expected breakage and add
the ~"user-facing" label. This will run ghc/head.hackage> to characterise the ~"user-facing" label. This will run ghc/head.hackage> to characterise
the effect of your change on Hackage. the effect of your change on Hackage.
...@@ -30,7 +35,7 @@ label can be applied to perform additional validation checks if your MR affects ...@@ -30,7 +35,7 @@ label can be applied to perform additional validation checks if your MR affects
unusual configuration. unusual configuration.
Once your change is ready please remove the `WIP:` tag and wait for review. If Once your change is ready please remove the `WIP:` tag and wait for review. If
no one has offerred review in a few days then please leave a comment mentioning no one has offered a review in a few days then please leave a comment mentioning
@triagers and apply the ~"Blocked on Review" label. @triagers and apply the ~"Blocked on Review" label.
[notes]: https://gitlab.haskell.org/ghc/ghc/wikis/commentary/coding-style#comments-in-the-source-code [notes]: https://gitlab.haskell.org/ghc/ghc/wikis/commentary/coding-style#comments-in-the-source-code
......
Thank your for your contribution to Haddock!
* [ ] This MR relates to \<ticket number>
* [ ] I have read the [CONTRIBUTING](./utils/haddock/CONTRIBUTING.md) guide
* [ ] I have inserted a CHANGELOG entry if this warrants it
* [ ] I have squashed my commits
* [ ] I have added tests if necessary
* [ ] I have updated the documentation
If you have any questions don't hesitate to open your merge request and inquire
in a comment. If your patch isn't quite done yet please do add prefix your MR
title with `Draft:`.
Once your change is ready please remove the `Draft:` tag and wait for review. If
no one has offered a review in a few days then please leave a comment mentioning
@triagers and apply the ~"Blocked on Review" label.
...@@ -27,6 +27,15 @@ let ...@@ -27,6 +27,15 @@ let
buildCommand = '' buildCommand = ''
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${./recompress-all} $out/bin/recompress-all \
--prefix PATH : ${gnumake}/bin \
--prefix PATH : ${gnutar}/bin \
--prefix PATH : ${lzip}/bin \
--prefix PATH : ${bzip2}/bin \
--prefix PATH : ${gzip}/bin \
--prefix PATH : ${xz}/bin \
--prefix PATH : ${zip}/bin
makeWrapper ${./upload.sh} $out/bin/upload.sh \ makeWrapper ${./upload.sh} $out/bin/upload.sh \
--prefix PATH : ${moreutils}/bin \ --prefix PATH : ${moreutils}/bin \
--prefix PATH : ${lftp}/bin \ --prefix PATH : ${lftp}/bin \
...@@ -35,8 +44,8 @@ let ...@@ -35,8 +44,8 @@ let
--prefix PATH : ${s3cmd}/bin \ --prefix PATH : ${s3cmd}/bin \
--prefix PATH : ${gnupg}/bin \ --prefix PATH : ${gnupg}/bin \
--prefix PATH : ${pinentry}/bin \ --prefix PATH : ${pinentry}/bin \
--prefix PATH : ${parallel}/bin \
--prefix PATH : ${python3}/bin \ --prefix PATH : ${python3}/bin \
--prefix PATH : $out/bin \
--set ENTER_FHS_ENV ${bindistPrepEnv}/bin/enter-fhs \ --set ENTER_FHS_ENV ${bindistPrepEnv}/bin/enter-fhs \
--set BASH ${bash}/bin/bash --set BASH ${bash}/bin/bash
......
...@@ -18,15 +18,16 @@ def job_triple(job_name): ...@@ -18,15 +18,16 @@ def job_triple(job_name):
bindists = { bindists = {
'release-x86_64-windows-release': 'x86_64-unknown-mingw32', 'release-x86_64-windows-release': 'x86_64-unknown-mingw32',
'release-x86_64-windows-int_native-release': 'x86_64-unknown-mingw32-int_native', 'release-x86_64-windows-int_native-release': 'x86_64-unknown-mingw32-int_native',
'release-x86_64-rocky8-release': 'x86_64-rocky8-linux', 'release-x86_64-linux-rocky8-release': 'x86_64-rocky8-linux',
'release-x86_64-linux-ubuntu22_04-release': 'x86_64-ubuntu22_04-linux',
'release-x86_64-linux-ubuntu20_04-release': 'x86_64-ubuntu20_04-linux', 'release-x86_64-linux-ubuntu20_04-release': 'x86_64-ubuntu20_04-linux',
'release-x86_64-linux-ubuntu18_04-release': 'x86_64-ubuntu18_04-linux', 'release-x86_64-linux-ubuntu18_04-release': 'x86_64-ubuntu18_04-linux',
'release-x86_64-linux-fedora38-release': 'x86_64-fedora38-linux',
'release-x86_64-linux-fedora33-release+debug_info': 'x86_64-fedora33-linux-dwarf', 'release-x86_64-linux-fedora33-release+debug_info': 'x86_64-fedora33-linux-dwarf',
'release-x86_64-linux-fedora33-release': 'x86_64-fedora33-linux', 'release-x86_64-linux-fedora33-release': 'x86_64-fedora33-linux',
'release-x86_64-linux-fedora38-release': 'x86_64-fedora38-linux',
'release-x86_64-linux-fedora27-release': 'x86_64-fedora27-linux', 'release-x86_64-linux-fedora27-release': 'x86_64-fedora27-linux',
'release-x86_64-linux-deb11-release': 'x86_64-deb11-linux',
'release-x86_64-linux-deb12-release': 'x86_64-deb12-linux', 'release-x86_64-linux-deb12-release': 'x86_64-deb12-linux',
'release-x86_64-linux-deb11-release': 'x86_64-deb11-linux',
'release-x86_64-linux-deb10-release+debug_info': 'x86_64-deb10-linux-dwarf', 'release-x86_64-linux-deb10-release+debug_info': 'x86_64-deb10-linux-dwarf',
'release-x86_64-linux-deb10-release': 'x86_64-deb10-linux', 'release-x86_64-linux-deb10-release': 'x86_64-deb10-linux',
'release-x86_64-linux-deb9-release': 'x86_64-deb9-linux', 'release-x86_64-linux-deb9-release': 'x86_64-deb9-linux',
...@@ -34,13 +35,16 @@ def job_triple(job_name): ...@@ -34,13 +35,16 @@ def job_triple(job_name):
'release-x86_64-linux-alpine3_12-release+fully_static': 'x86_64-alpine3_12-linux-static', 'release-x86_64-linux-alpine3_12-release+fully_static': 'x86_64-alpine3_12-linux-static',
'release-x86_64-linux-alpine3_12-release': 'x86_64-alpine3_12-linux', 'release-x86_64-linux-alpine3_12-release': 'x86_64-alpine3_12-linux',
'release-x86_64-linux-alpine3_12-int_native-release+fully_static': 'x86_64-alpine3_12-linux-static-int_native', 'release-x86_64-linux-alpine3_12-int_native-release+fully_static': 'x86_64-alpine3_12-linux-static-int_native',
'release-x86_64-linux-alpine3_20-release': 'x86_64-alpine3_20-linux',
'release-x86_64-darwin-release': 'x86_64-apple-darwin', 'release-x86_64-darwin-release': 'x86_64-apple-darwin',
'release-i386-linux-deb9-release': 'i386-deb9-linux', 'release-i386-linux-deb12-release': 'i386-deb12-linux',
'release-i386-linux-deb10-release': 'i386-deb10-linux', 'release-i386-linux-deb10-release': 'i386-deb10-linux',
'release-i386-linux-deb9-release': 'i386-deb9-linux',
'release-armv7-linux-deb10-release': 'armv7-deb10-linux', 'release-armv7-linux-deb10-release': 'armv7-deb10-linux',
'release-aarch64-linux-deb10-release': 'aarch64-deb10-linux', 'release-aarch64-linux-deb10-release': 'aarch64-deb10-linux',
'release-aarch64-linux-deb11-release': 'aarch64-deb11-linux', 'release-aarch64-linux-deb11-release': 'aarch64-deb11-linux',
'release-aarch64-linux-alpine_3_18-release': 'aarch64-alpine3_18-linux', 'release-aarch64-linux-deb12-release': 'aarch64-deb12-linux',
'release-aarch64-linux-alpine3_18-release+no_split_sections': 'aarch64-alpine3_18-linux',
'release-aarch64-darwin-release': 'aarch64-apple-darwin', 'release-aarch64-darwin-release': 'aarch64-apple-darwin',
'source-tarball': 'src', 'source-tarball': 'src',
...@@ -128,7 +132,7 @@ def fetch_artifacts(release: str, pipeline_id: int, ...@@ -128,7 +132,7 @@ def fetch_artifacts(release: str, pipeline_id: int,
for f in doc_files: for f in doc_files:
subprocess.run(['tar', '-xf', f, '-C', dest]) subprocess.run(['tar', '-xf', f, '-C', dest])
logging.info(f'extracted docs {f} to {dest}') logging.info(f'extracted docs {f} to {dest}')
index_path = destdir / 'index.html' index_path = destdir / 'docs' / 'index.html'
index_path.replace(dest / 'index.html') index_path.replace(dest / 'index.html')
elif job.name == 'hackage-doc-tarball': elif job.name == 'hackage-doc-tarball':
dest = dest_dir / 'hackage_docs' dest = dest_dir / 'hackage_docs'
......
...@@ -22,7 +22,7 @@ options: ...@@ -22,7 +22,7 @@ options:
``` ```
The script also requires the `.gitlab/jobs-metadata.yaml` file which can be generated The script also requires the `.gitlab/jobs-metadata.yaml` file which can be generated
by running `.gitlab/generate_jobs_metadata` script if you want to run it locally. by running `.gitlab/generate-ci/generate_jobs_metadata` script if you want to run it locally.
## CI Pipelines ## CI Pipelines
......
...@@ -36,6 +36,7 @@ import os ...@@ -36,6 +36,7 @@ import os
import yaml import yaml
import gitlab import gitlab
from urllib.request import urlopen from urllib.request import urlopen
from urllib.parse import urlparse
import hashlib import hashlib
import sys import sys
import json import json
...@@ -66,6 +67,7 @@ class Artifact(NamedTuple): ...@@ -66,6 +67,7 @@ class Artifact(NamedTuple):
download_name: str download_name: str
output_name: str output_name: str
subdir: str subdir: str
anchor_name: str
# Platform spec provides a specification which is agnostic to Job # Platform spec provides a specification which is agnostic to Job
# PlatformSpecs are converted into Artifacts by looking in the jobs-metadata.json file. # PlatformSpecs are converted into Artifacts by looking in the jobs-metadata.json file.
...@@ -76,13 +78,15 @@ class PlatformSpec(NamedTuple): ...@@ -76,13 +78,15 @@ class PlatformSpec(NamedTuple):
source_artifact = Artifact('source-tarball' source_artifact = Artifact('source-tarball'
, 'ghc-{version}-src.tar.xz' , 'ghc-{version}-src.tar.xz'
, 'ghc-{version}-src.tar.xz' , 'ghc-{version}-src.tar.xz'
, 'ghc-{version}' ) , 'ghc-{version}'
, 'ghc{version}-src')
test_artifact = Artifact('source-tarball' test_artifact = Artifact('source-tarball'
, 'ghc-{version}-testsuite.tar.xz' , 'ghc-{version}-testsuite.tar.xz'
, 'ghc-{version}-testsuite.tar.xz' , 'ghc-{version}-testsuite.tar.xz'
, 'ghc-{version}' ) , 'ghc-{version}/testsuite'
, 'ghc{version}-testsuite')
def debian(arch, n): def debian(n, arch='x86_64'):
return linux_platform(arch, "{arch}-linux-deb{n}".format(arch=arch, n=n)) return linux_platform(arch, "{arch}-linux-deb{n}".format(arch=arch, n=n))
def darwin(arch): def darwin(arch):
...@@ -92,20 +96,20 @@ def darwin(arch): ...@@ -92,20 +96,20 @@ def darwin(arch):
windowsArtifact = PlatformSpec ( 'x86_64-windows' windowsArtifact = PlatformSpec ( 'x86_64-windows'
, 'ghc-{version}-x86_64-unknown-mingw32' ) , 'ghc-{version}-x86_64-unknown-mingw32' )
def centos(n): def centos(n, arch='x86_64'):
return linux_platform("x86_64", "x86_64-linux-centos{n}".format(n=n)) return linux_platform(arch, "{arch}-linux-centos{n}".format(n=n,arch=arch))
def fedora(n): def fedora(n, arch='x86_64'):
return linux_platform("x86_64", "x86_64-linux-fedora{n}".format(n=n)) return linux_platform(arch, "{arch}-linux-fedora{n}".format(n=n,arch=arch))
def alpine(n): def alpine(n, arch='x86_64'):
return linux_platform("x86_64", "x86_64-linux-alpine{n}".format(n=n)) return linux_platform(arch, "{arch}-linux-alpine{n}".format(n=n,arch=arch))
def rocky(n): def rocky(n, arch='x86_64'):
return linux_platform("x86_64", "x86_64-linux-rocky{n}".format(n=n)) return linux_platform(arch, "{arch}-linux-rocky{n}".format(n=n,arch=arch))
def ubuntu(n): def ubuntu(n, arch='x86_64'):
return linux_platform("x86_64", "x86_64-linux-ubuntu{n}".format(n=n)) return linux_platform(arch, "{arch}-linux-ubuntu{n}".format(n=n,arch=arch))
def linux_platform(arch, opsys): def linux_platform(arch, opsys):
return PlatformSpec( opsys, 'ghc-{version}-{arch}-unknown-linux'.format(version="{version}", arch=arch) ) return PlatformSpec( opsys, 'ghc-{version}-{arch}-unknown-linux'.format(version="{version}", arch=arch) )
...@@ -113,8 +117,7 @@ def linux_platform(arch, opsys): ...@@ -113,8 +117,7 @@ def linux_platform(arch, opsys):
base_url = 'https://gitlab.haskell.org/api/v4/projects/1/jobs/{job_id}/artifacts/{artifact_name}' base_url = 'https://gitlab.haskell.org/api/v4/projects/1/jobs/{job_id}/artifacts/{artifact_name}'
hash_cache = {} # type: Dict[str, str]
hash_cache = {}
# Download a URL and return its hash # Download a URL and return its hash
def download_and_hash(url): def download_and_hash(url):
...@@ -132,6 +135,8 @@ def download_and_hash(url): ...@@ -132,6 +135,8 @@ def download_and_hash(url):
hash_cache[url] = digest hash_cache[url] = digest
return digest return digest
uri_to_anchor_cache=dict()
# Make the metadata for one platform. # Make the metadata for one platform.
def mk_one_metadata(release_mode, version, job_map, artifact): def mk_one_metadata(release_mode, version, job_map, artifact):
job_id = job_map[artifact.job_name].id job_id = job_map[artifact.job_name].id
...@@ -141,8 +146,14 @@ def mk_one_metadata(release_mode, version, job_map, artifact): ...@@ -141,8 +146,14 @@ def mk_one_metadata(release_mode, version, job_map, artifact):
# In --release-mode, the URL in the metadata needs to point into the downloads folder # In --release-mode, the URL in the metadata needs to point into the downloads folder
# rather then the pipeline. # rather then the pipeline.
if release_mode: if release_mode:
# the test artifact is bundled with the source artifact, so it doesn't have its own job name
# So we must manually set the name of the bindist location
if artifact == test_artifact:
bindist_name = "testsuite"
else:
bindist_name = fetch_gitlab.job_triple(artifact.job_name)
final_url = release_base.format( version=version final_url = release_base.format( version=version
, bindistName=urllib.parse.quote_plus(f"{fetch_gitlab.job_triple(artifact.job_name)}.tar.xz")) , bindistName=urllib.parse.quote_plus(f"{bindist_name}.tar.xz"))
else: else:
final_url = url final_url = url
...@@ -150,14 +161,22 @@ def mk_one_metadata(release_mode, version, job_map, artifact): ...@@ -150,14 +161,22 @@ def mk_one_metadata(release_mode, version, job_map, artifact):
eprint(f"Bindist URL: {url}") eprint(f"Bindist URL: {url}")
eprint(f"Download URL: {final_url}") eprint(f"Download URL: {final_url}")
#Download and hash from the release pipeline, this must not change anyway during upload. # Download and hash from the release pipeline, this must not change anyway during upload.
h = download_and_hash(url) h = download_and_hash(url)
res = { "dlUri": final_url res = { "dlUri": final_url
, "dlSubdir": artifact.subdir.format(version=version) , "dlSubdir": artifact.subdir.format(version=version)
, "dlOutput": artifact.output_name.format(version=version)
, "dlHash" : h } , "dlHash" : h }
# Only add dlOutput if it is inconsistent with the filename inferred from the URL
output = artifact.output_name.format(version=version)
if Path(urlparse(final_url).path).name != output:
res["dlOutput"] = output
eprint(res) eprint(res)
# add the uri to the anchor name cache so we can lookup an anchor for this uri
uri_to_anchor_cache[final_url] = artifact.anchor_name
return res return res
# Turns a platform into an Artifact respecting pipeline_type # Turns a platform into an Artifact respecting pipeline_type
...@@ -168,7 +187,8 @@ def mk_from_platform(pipeline_type, platform): ...@@ -168,7 +187,8 @@ def mk_from_platform(pipeline_type, platform):
return Artifact(info['name'] return Artifact(info['name']
, f"{info['jobInfo']['bindistName']}.tar.xz" , f"{info['jobInfo']['bindistName']}.tar.xz"
, "ghc-{version}-{pn}.tar.xz".format(version="{version}", pn=platform.name) , "ghc-{version}-{pn}.tar.xz".format(version="{version}", pn=platform.name)
, platform.subdir) , platform.subdir
, f"ghc{{version}}-{platform.name}")
# Generate the new metadata for a specific GHC mode etc # Generate the new metadata for a specific GHC mode etc
...@@ -177,21 +197,27 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map): ...@@ -177,21 +197,27 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map):
eprint("\n=== " + platform.name + " " + ('=' * (75 - len(platform.name)))) eprint("\n=== " + platform.name + " " + ('=' * (75 - len(platform.name))))
return mk_one_metadata(release_mode, version, job_map, mk_from_platform(pipeline_type, platform)) return mk_one_metadata(release_mode, version, job_map, mk_from_platform(pipeline_type, platform))
# Here are all the bindists we can distribute
ubuntu1804 = mk(ubuntu("18_04")) ubuntu1804 = mk(ubuntu("18_04"))
ubuntu2004 = mk(ubuntu("20_04")) ubuntu2004 = mk(ubuntu("20_04"))
ubuntu2204 = mk(ubuntu("22_04"))
rocky8 = mk(rocky("8")) rocky8 = mk(rocky("8"))
# Here are all the bindists we can distribute
centos7 = mk(centos(7)) centos7 = mk(centos(7))
fedora33 = mk(fedora(33)) fedora33 = mk(fedora(33))
darwin_x86 = mk(darwin("x86_64")) darwin_x86 = mk(darwin("x86_64"))
darwin_arm64 = mk(darwin("aarch64")) darwin_arm64 = mk(darwin("aarch64"))
windows = mk(windowsArtifact) windows = mk(windowsArtifact)
alpine3_12 = mk(alpine("3_12")) alpine3_12 = mk(alpine("3_12"))
deb9 = mk(debian("x86_64", 9)) alpine3_20 = mk(alpine("3_20"))
deb10 = mk(debian("x86_64", 10)) alpine3_18_arm64 = mk(alpine("3_18", arch='aarch64'))
deb11 = mk(debian("x86_64", 11)) deb9 = mk(debian(9, "x86_64"))
deb10_arm64 = mk(debian("aarch64", 10)) deb10 = mk(debian(10, "x86_64"))
deb10_i386 = mk(debian("i386", 10)) deb11 = mk(debian(11, "x86_64"))
deb12 = mk(debian(12, "x86_64"))
deb10_arm64 = mk(debian(10, "aarch64"))
deb12_arm64 = mk(debian(12, "aarch64"))
deb10_i386 = mk(debian(10, "i386"))
deb12_i386 = mk(debian(12, "i386"))
source = mk_one_metadata(release_mode, version, job_map, source_artifact) source = mk_one_metadata(release_mode, version, job_map, source_artifact)
test = mk_one_metadata(release_mode, version, job_map, test_artifact) test = mk_one_metadata(release_mode, version, job_map, test_artifact)
...@@ -200,34 +226,49 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map): ...@@ -200,34 +226,49 @@ def mk_new_yaml(release_mode, version, date, pipeline_type, job_map):
# developers want. # developers want.
a64 = { "Linux_Debian": { "< 10": deb9 a64 = { "Linux_Debian": { "< 10": deb9
, "(>= 10 && < 11)": deb10 , "( >= 10 && < 11 )": deb10
, ">= 11": deb11 , "( >= 11 && < 12 )": deb11
, ">= 12": deb12
, "unknown_versioning": deb11 } , "unknown_versioning": deb11 }
, "Linux_Ubuntu" : { "unknown_versioning": ubuntu2004 , "Linux_Ubuntu" : { "unknown_versioning": ubuntu2004
, "( >= 16 && < 19 )": ubuntu1804 , "( >= 16 && < 18 )": deb9
, "( >= 18 && < 19 )": ubuntu1804
, "( >= 19 && < 21 )": ubuntu2004
, "( >= 21 )": ubuntu2204
} }
, "Linux_Mint" : { "< 20": ubuntu1804 , "Linux_Mint" : { "< 20": ubuntu1804
, ">= 20": ubuntu2004 } , ">= 20": ubuntu2004
, "unknown_versioning": ubuntu2004 }
, "Linux_CentOS" : { "( >= 7 && < 8 )" : centos7 , "Linux_CentOS" : { "( >= 7 && < 8 )" : centos7
, "unknown_versioning" : centos7 } , "unknown_versioning" : centos7 }
, "Linux_Fedora" : { ">= 33": fedora33 , "Linux_Fedora" : { ">= 33": fedora33
, "unknown_versioning": centos7 } , "unknown_versioning": centos7 }
, "Linux_RedHat" : { "unknown_versioning": centos7 } , "Linux_RedHat" : { "< 9": centos7
#MP: Replace here with Rocky8 when that job is in the pipeline , ">= 9": fedora33
, "unknown_versioning": fedora33 }
, "Linux_UnknownLinux" : { "unknown_versioning": rocky8 } , "Linux_UnknownLinux" : { "unknown_versioning": rocky8 }
, "Darwin" : { "unknown_versioning" : darwin_x86 } , "Darwin" : { "unknown_versioning" : darwin_x86 }
, "Windows" : { "unknown_versioning" : windows } , "Windows" : { "unknown_versioning" : windows }
, "Linux_Alpine" : { "unknown_versioning": alpine3_12 } , "Linux_Alpine" : { "( >= 3.12 && < 3.20 )": alpine3_12
, ">= 3.20": alpine3_20
, "unknown_versioning": alpine3_12 }
} }
a32 = { "Linux_Debian": { "unknown_versioning": deb10_i386 } a32 = { "Linux_Debian": { "( >= 10 && < 12 )": deb10_i386
, ">= 12": deb12_i386
, "unknown_versioning": deb10_i386 }
, "Linux_Ubuntu": { "unknown_versioning": deb10_i386 } , "Linux_Ubuntu": { "unknown_versioning": deb10_i386 }
, "Linux_Mint" : { "unknown_versioning": deb10_i386 } , "Linux_Mint" : { "unknown_versioning": deb10_i386 }
, "Linux_UnknownLinux" : { "unknown_versioning": deb10_i386 } , "Linux_UnknownLinux" : { "unknown_versioning": deb10_i386 }
} }
arm64 = { "Linux_UnknownLinux": { "unknown_versioning": deb10_arm64 } arm64 = { "Linux_UnknownLinux": { "unknown_versioning": deb10_arm64 }
, "Linux_Alpine" : { "unknown_versioning": alpine3_18_arm64 }
, "Linux_Debian": { "( >= 10 && < 12 )": deb10_arm64
, "( >= 12 )": deb12_arm64
, "unknown_versioning": deb10_arm64
}
, "Darwin": { "unknown_versioning": darwin_arm64 } , "Darwin": { "unknown_versioning": darwin_arm64 }
} }
...@@ -267,6 +308,19 @@ def setNightlyTags(ghcup_metadata): ...@@ -267,6 +308,19 @@ def setNightlyTags(ghcup_metadata):
ghcup_metadata['ghcupDownloads']['GHC'][version]["viTags"].append("Nightly") ghcup_metadata['ghcupDownloads']['GHC'][version]["viTags"].append("Nightly")
def mk_dumper(version):
class CustomAliasDumper(yaml.Dumper):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def generate_anchor(self, node):
if isinstance(node, yaml.MappingNode):
node_dict = { k.value : v.value for (k,v) in node.value }
if 'dlUri' in node_dict:
return uri_to_anchor_cache[node_dict['dlUri']].format(version=version.replace('.',''))
return super().generate_anchor(node)
return CustomAliasDumper
def main() -> None: def main() -> None:
...@@ -302,7 +356,7 @@ def main() -> None: ...@@ -302,7 +356,7 @@ def main() -> None:
new_yaml = mk_new_yaml(args.release_mode, args.version, args.date, pipeline_type, job_map) new_yaml = mk_new_yaml(args.release_mode, args.version, args.date, pipeline_type, job_map)
if args.fragment: if args.fragment:
print(yaml.dump({ args.version : new_yaml })) print(yaml.dump({ args.version : new_yaml }, Dumper=mk_dumper(args.version)))
else: else:
with open(args.metadata, 'r') as file: with open(args.metadata, 'r') as file:
......
#!/usr/bin/env -S make -f
MAKEFLAGS += --no-builtin-rules
MAKEFLAGS += --no-builtin-variables
usage :
echo "recompress [dest files]"
exit 1
%.gz : %.xz
echo "[xz->gz] $< to $@..."
xz -cd $< | gzip -c > $@
%.bz2 : %.xz
echo "[xz->bz2] $< to $@..."
xz -cd $< | bzip2 -c > $@
%.lz : %.xz
echo "[xz->lz] $< to $@..."
xz -cd $< | lzip -c > $@
%.zip : %.tar.xz
echo "[tarxz->zip] $< to $@..."
tmp="$$(mktemp -d tmp.XXX)" && \
tar -C "$$tmp" -xf $< && \
cd "$$tmp" && \
zip -9 -r ../$@ * && \
cd .. && \
rm -R "$$tmp"