Cheng Shao pushed to branch wip/testing-use-deb at Glasgow Haskell Compiler / GHC
Commits:
-
414b9593
by Cheng Shao at 2026-01-24T07:11:51-05:00
-
e5cb5491
by Cheng Shao at 2026-01-24T07:12:34-05:00
-
2d160222
by Simon Hengel at 2026-01-24T07:13:17-05:00
-
d69fdfff
by Cheng Shao at 2026-01-25T14:32:54+01:00
5 changed files:
- .gitlab-ci.yml
- docs/users_guide/exts/roles.rst
- hadrian/src/Context.hs
- hadrian/src/Settings/Builders/Configure.hs
- hadrian/src/Settings/Builders/Make.hs
Changes:
| ... | ... | @@ -444,14 +444,14 @@ hadrian-ghc-in-ghci: |
| 444 | 444 | hadrian-multi:
|
| 445 | 445 | stage: testing
|
| 446 | 446 | needs:
|
| 447 | - - job: x86_64-linux-fedora43-release
|
|
| 447 | + - job: x86_64-linux-deb12-numa-slow-validate
|
|
| 448 | 448 | optional: true
|
| 449 | - - job: nightly-x86_64-linux-fedora43-release
|
|
| 449 | + - job: nightly-x86_64-linux-deb12-validate
|
|
| 450 | 450 | optional: true
|
| 451 | - - job: release-x86_64-linux-fedora43-release
|
|
| 451 | + - job: release-x86_64-linux-deb12-release
|
|
| 452 | 452 | optional: true
|
| 453 | 453 | dependencies: null
|
| 454 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 454 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
|
|
| 455 | 455 | before_script:
|
| 456 | 456 | # workaround for docker permissions
|
| 457 | 457 | - sudo chown ghc:ghc -R .
|
| ... | ... | @@ -471,7 +471,9 @@ hadrian-multi: |
| 471 | 471 | - ls
|
| 472 | 472 | - |
|
| 473 | 473 | mkdir tmp
|
| 474 | - tar -xf ghc-x86_64-linux-fedora43-release.tar.xz -C tmp
|
|
| 474 | + tar -xf ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz -C tmp \
|
|
| 475 | + || tar -xf ghc-x86_64-linux-deb12-validate.tar.xz -C tmp \
|
|
| 476 | + || tar -xf ghc-x86_64-linux-deb12-release.tar.xz -C tmp
|
|
| 475 | 477 | pushd tmp/ghc-*/
|
| 476 | 478 | ./configure --prefix=$root
|
| 477 | 479 | make install
|
| ... | ... | @@ -1001,14 +1003,14 @@ perf-nofib: |
| 1001 | 1003 | perf:
|
| 1002 | 1004 | stage: testing
|
| 1003 | 1005 | needs:
|
| 1004 | - - job: x86_64-linux-fedora43-release
|
|
| 1006 | + - job: x86_64-linux-deb12-numa-slow-validate
|
|
| 1005 | 1007 | optional: true
|
| 1006 | - - job: nightly-x86_64-linux-fedora43-release
|
|
| 1008 | + - job: nightly-x86_64-linux-deb12-validate
|
|
| 1007 | 1009 | optional: true
|
| 1008 | - - job: release-x86_64-linux-fedora43-release
|
|
| 1010 | + - job: release-x86_64-linux-deb12-release
|
|
| 1009 | 1011 | optional: true
|
| 1010 | 1012 | dependencies: null
|
| 1011 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 1013 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
|
|
| 1012 | 1014 | tags:
|
| 1013 | 1015 | - x86_64-linux-perf
|
| 1014 | 1016 | before_script:
|
| ... | ... | @@ -1018,7 +1020,9 @@ perf: |
| 1018 | 1020 | - root=$(pwd)/ghc
|
| 1019 | 1021 | - |
|
| 1020 | 1022 | mkdir tmp
|
| 1021 | - tar -xf ghc-x86_64-linux-fedora43-release.tar.xz -C tmp
|
|
| 1023 | + tar -xf ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz -C tmp \
|
|
| 1024 | + || tar -xf ghc-x86_64-linux-deb12-validate.tar.xz -C tmp \
|
|
| 1025 | + || tar -xf ghc-x86_64-linux-deb12-release.tar.xz -C tmp
|
|
| 1022 | 1026 | pushd tmp/ghc-*/
|
| 1023 | 1027 | ./configure --prefix=$root
|
| 1024 | 1028 | make install
|
| ... | ... | @@ -1042,25 +1046,23 @@ perf: |
| 1042 | 1046 | abi-test:
|
| 1043 | 1047 | stage: testing
|
| 1044 | 1048 | needs:
|
| 1045 | - - job: x86_64-linux-fedora43-release
|
|
| 1049 | + - job: x86_64-linux-deb12-numa-slow-validate
|
|
| 1046 | 1050 | optional: true
|
| 1047 | - - job: nightly-x86_64-linux-fedora43-release
|
|
| 1051 | + - job: nightly-x86_64-linux-deb12-validate
|
|
| 1048 | 1052 | optional: true
|
| 1049 | - - job: release-x86_64-linux-fedora43-release
|
|
| 1053 | + - job: release-x86_64-linux-deb12-release
|
|
| 1050 | 1054 | optional: true
|
| 1051 | 1055 | dependencies: null
|
| 1052 | - image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora43:$DOCKER_REV"
|
|
| 1053 | - rules:
|
|
| 1054 | - - if: $CI_MERGE_REQUEST_ID
|
|
| 1055 | - - if: '$CI_COMMIT_BRANCH == "master"'
|
|
| 1056 | - - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
|
|
| 1056 | + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:$DOCKER_REV"
|
|
| 1057 | 1057 | tags:
|
| 1058 | 1058 | - x86_64-linux
|
| 1059 | 1059 | script:
|
| 1060 | 1060 | - root=$(pwd)/ghc
|
| 1061 | 1061 | - |
|
| 1062 | 1062 | mkdir tmp
|
| 1063 | - tar -xf ghc-x86_64-linux-fedora43-release.tar.xz -C tmp
|
|
| 1063 | + tar -xf ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz -C tmp \
|
|
| 1064 | + || tar -xf ghc-x86_64-linux-deb12-validate.tar.xz -C tmp \
|
|
| 1065 | + || tar -xf ghc-x86_64-linux-deb12-release.tar.xz -C tmp
|
|
| 1064 | 1066 | pushd tmp/ghc-*/
|
| 1065 | 1067 | ./configure --prefix=$root
|
| 1066 | 1068 | make install
|
| ... | ... | @@ -38,7 +38,7 @@ trouble. |
| 38 | 38 | The way to identify such situations is to have *roles* assigned to type
|
| 39 | 39 | variables of datatypes, classes, and type synonyms.
|
| 40 | 40 | |
| 41 | -Roles as implemented in GHC are a from a simplified version of the work
|
|
| 41 | +Roles as implemented in GHC are based on a simplified version of the work
|
|
| 42 | 42 | described in `Generative type abstraction and type-level
|
| 43 | 43 | computation <https://www.seas.upenn.edu/~sweirich/papers/popl163af-weirich.pdf>`__,
|
| 44 | 44 | published at POPL 2011.
|
| ... | ... | @@ -11,7 +11,7 @@ module Context ( |
| 11 | 11 | pkgLibraryFile,
|
| 12 | 12 | pkgConfFile, pkgStampFile, resourcePath, objectPath, contextPath, getContextPath, libPath, distDir,
|
| 13 | 13 | distDynDir,
|
| 14 | - haddockStatsFilesDir, ensureConfigured, autogenPath, rtsContext, rtsBuildPath, libffiBuildPath
|
|
| 14 | + haddockStatsFilesDir, ensureConfigured, autogenPath, rtsContext, rtsBuildPath
|
|
| 15 | 15 | ) where
|
| 16 | 16 | |
| 17 | 17 | import Base
|
| ... | ... | @@ -93,14 +93,6 @@ rtsContext stage = vanillaContext stage rts |
| 93 | 93 | rtsBuildPath :: Stage -> Action FilePath
|
| 94 | 94 | rtsBuildPath stage = buildPath (rtsContext stage)
|
| 95 | 95 | |
| 96 | --- | Build directory for in-tree 'libffi' library.
|
|
| 97 | -libffiBuildPath :: Stage -> Action FilePath
|
|
| 98 | -libffiBuildPath stage = buildPath $ Context
|
|
| 99 | - stage
|
|
| 100 | - libffi
|
|
| 101 | - (error "libffiBuildPath: way not set.")
|
|
| 102 | - (error "libffiBuildPath: inplace not set.")
|
|
| 103 | - |
|
| 104 | 96 | pkgFileName :: Context -> Package -> String -> String -> Action FilePath
|
| 105 | 97 | pkgFileName context package prefix suffix = do
|
| 106 | 98 | pid <- pkgUnitId (stage context) package
|
| ... | ... | @@ -8,8 +8,7 @@ configureBuilderArgs :: Args |
| 8 | 8 | configureBuilderArgs = do
|
| 9 | 9 | stage <- getStage
|
| 10 | 10 | gmpPath <- expr (gmpBuildPath stage)
|
| 11 | - libffiPath <- expr (libffiBuildPath stage)
|
|
| 12 | - mconcat [ builder (Configure gmpPath) ? do
|
|
| 11 | + builder (Configure gmpPath) ? do
|
|
| 13 | 12 | targetArch <- queryTarget queryArch
|
| 14 | 13 | targetPlatform <- queryTarget targetPlatformTriple
|
| 15 | 14 | buildPlatform <- queryBuild targetPlatformTriple
|
| ... | ... | @@ -28,16 +27,3 @@ configureBuilderArgs = do |
| 28 | 27 | -- option.
|
| 29 | 28 | <> [ "--enable-alloca=malloc-notreentrant" | targetArch == "wasm32" ]
|
| 30 | 29 | <> [ "--with-pic=yes" ] |
| 31 | - |
|
| 32 | - , builder (Configure libffiPath) ? do
|
|
| 33 | - top <- expr topDirectory
|
|
| 34 | - targetPlatform <- queryTarget targetPlatformTriple
|
|
| 35 | - way <- getWay
|
|
| 36 | - pure [ "--prefix=" ++ top -/- libffiPath -/- "inst"
|
|
| 37 | - , "--libdir=" ++ top -/- libffiPath -/- "inst/lib"
|
|
| 38 | - , "--enable-static=yes"
|
|
| 39 | - , "--enable-shared="
|
|
| 40 | - ++ (if wayUnit Dynamic way
|
|
| 41 | - then "yes"
|
|
| 42 | - else "no")
|
|
| 43 | - , "--host=" ++ targetPlatform ] ] |
| ... | ... | @@ -12,12 +12,8 @@ makeBuilderArgs = do |
| 12 | 12 | threads <- shakeThreads <$> expr getShakeOptions
|
| 13 | 13 | stage <- getStage
|
| 14 | 14 | gmpPath <- expr (gmpBuildPath stage)
|
| 15 | - libffiPaths <- forM [Stage1, Stage2, Stage3 ] $ \s -> expr (libffiBuildPath s)
|
|
| 16 | 15 | let t = show $ max 4 (threads - 2) -- Don't use all Shake's threads
|
| 17 | - mconcat $
|
|
| 18 | - (builder (Make gmpPath ) ? pure ["MAKEFLAGS=-j" ++ t]) :
|
|
| 19 | - [ builder (Make libffiPath) ? pure ["MAKEFLAGS=-j" ++ t, "install"]
|
|
| 20 | - | libffiPath <- libffiPaths ]
|
|
| 16 | + builder (Make gmpPath) ? pure ["MAKEFLAGS=-j" ++ t]
|
|
| 21 | 17 | |
| 22 | 18 | validateBuilderArgs :: Args
|
| 23 | 19 | validateBuilderArgs = builder (Make "testsuite/tests") ? do
|