Sven Tennie pushed to branch wip/romes/hadrian-cross-stage2-rebase_SVEN_FINAL at Glasgow Haskell Compiler / GHC
Commits:
-
264060a2
by Matthew Pickering at 2025-12-31T17:10:07+01:00
-
3433717e
by Sven Tennie at 2025-12-31T17:10:07+01:00
-
2fd4bf52
by Sven Tennie at 2025-12-31T17:10:07+01:00
4 changed files:
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- libraries/base/tests/all.T
- testsuite/tests/javascript/closure/Makefile
Changes:
| ... | ... | @@ -139,9 +139,11 @@ bignumString :: BignumBackend -> String |
| 139 | 139 | bignumString Gmp = "gmp"
|
| 140 | 140 | bignumString Native = "native"
|
| 141 | 141 | |
| 142 | +data TimeoutIncrease = TimeoutIncrease | NoTimeoutIncrease
|
|
| 143 | + |
|
| 142 | 144 | data CrossEmulator
|
| 143 | 145 | = NoEmulator
|
| 144 | - | NoEmulatorNeeded
|
|
| 146 | + | NoEmulatorNeeded TimeoutIncrease
|
|
| 145 | 147 | | Emulator String
|
| 146 | 148 | |
| 147 | 149 | -- | A BuildConfig records all the options which can be modified to affect the
|
| ... | ... | @@ -889,16 +891,20 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} } |
| 889 | 891 | NoEmulator
|
| 890 | 892 | -- we need an emulator but it isn't set. Won't run the testsuite
|
| 891 | 893 | | Just _ <- crossTarget buildConfig
|
| 892 | - -> "CROSS_EMULATOR" =: "NOT_SET"
|
|
| 893 | - | otherwise -> mempty
|
|
| 894 | - Emulator s -> "CROSS_EMULATOR" =: s
|
|
| 895 | - NoEmulatorNeeded -> mempty
|
|
| 894 | + -> "CROSS_EMULATOR" =: "NOT_SET"
|
|
| 895 | + | otherwise -> mempty
|
|
| 896 | + Emulator s -> "CROSS_EMULATOR" =: s
|
|
| 897 | + NoEmulatorNeeded _ -> mempty
|
|
| 896 | 898 | , if withNuma buildConfig then "ENABLE_NUMA" =: "1" else mempty
|
| 897 | - , let testTimeoutArg =
|
|
| 899 | + , let
|
|
| 900 | + -- Emulators are naturally slower than native machines.
|
|
| 901 | + -- Triple the default of 300.
|
|
| 902 | + timeoutConf = "-e config.timeout=900"
|
|
| 903 | + testTimeoutArg =
|
|
| 898 | 904 | case crossEmulator buildConfig of
|
| 899 | - -- Emulators are naturally slower than native machines.
|
|
| 900 | - -- Triple the default of 300.
|
|
| 901 | - Emulator _ -> "-e config.timeout=900" :: String
|
|
| 905 | + Emulator _ -> timeoutConf
|
|
| 906 | + -- NodeJS (Javascript) is slower than native code
|
|
| 907 | + NoEmulatorNeeded TimeoutIncrease -> timeoutConf
|
|
| 902 | 908 | _ -> mempty
|
| 903 | 909 | runtestArgs =
|
| 904 | 910 | testTimeoutArg :
|
| ... | ... | @@ -1309,7 +1315,7 @@ cross_jobs = [ |
| 1309 | 1315 | (validateBuilds AArch64 (Linux Debian12Wine) (winAarch64Config {llvmBootstrap = True}))
|
| 1310 | 1316 | ]
|
| 1311 | 1317 | where
|
| 1312 | - javascriptConfig = (crossConfig "javascript-unknown-ghcjs" (Emulator "js-emulator") (Just "emconfigure"))
|
|
| 1318 | + javascriptConfig = (crossConfig "javascript-unknown-ghcjs" (NoEmulatorNeeded TimeoutIncrease) (Just "emconfigure"))
|
|
| 1313 | 1319 | { bignumBackend = Native }
|
| 1314 | 1320 | |
| 1315 | 1321 | makeWinArmJobs = modifyJobs
|
| ... | ... | @@ -1354,7 +1360,7 @@ cross_jobs = [ |
| 1354 | 1360 | $ addValidateRule WasmBackend $ validateBuilds Amd64 (Linux AlpineWasm) cfg
|
| 1355 | 1361 | |
| 1356 | 1362 | wasm_build_config =
|
| 1357 | - (crossConfig "wasm32-wasi" NoEmulatorNeeded Nothing)
|
|
| 1363 | + (crossConfig "wasm32-wasi" (NoEmulatorNeeded NoTimeoutIncrease) Nothing)
|
|
| 1358 | 1364 | { hostFullyStatic = True
|
| 1359 | 1365 | , buildFlavour = Release -- TODO: This needs to be validate but wasm backend doesn't pass yet
|
| 1360 | 1366 | , textWithSIMDUTF = True
|
| ... | ... | @@ -2118,7 +2118,6 @@ |
| 2118 | 2118 | "BUILD_FLAVOUR": "validate",
|
| 2119 | 2119 | "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
|
| 2120 | 2120 | "CONFIGURE_WRAPPER": "emconfigure",
|
| 2121 | - "CROSS_EMULATOR": "js-emulator",
|
|
| 2122 | 2121 | "CROSS_STAGE": "2",
|
| 2123 | 2122 | "CROSS_TARGET": "javascript-unknown-ghcjs",
|
| 2124 | 2123 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| ... | ... | @@ -6292,7 +6291,6 @@ |
| 6292 | 6291 | "BUILD_FLAVOUR": "validate",
|
| 6293 | 6292 | "CONFIGURE_ARGS": "--with-intree-gmp --enable-strict-ghc-toolchain-check",
|
| 6294 | 6293 | "CONFIGURE_WRAPPER": "emconfigure",
|
| 6295 | - "CROSS_EMULATOR": "js-emulator",
|
|
| 6296 | 6294 | "CROSS_STAGE": "2",
|
| 6297 | 6295 | "CROSS_TARGET": "javascript-unknown-ghcjs",
|
| 6298 | 6296 | "INSTALL_CONFIGURE_ARGS": "--enable-strict-ghc-toolchain-check",
|
| ... | ... | @@ -318,6 +318,7 @@ test('T23687', normal, compile_and_run, ['']) |
| 318 | 318 | test('T23697',
|
| 319 | 319 | [ when(opsys('mingw32'), skip) # header not found
|
| 320 | 320 | , when(opsys('darwin'), skip) # permission denied
|
| 321 | + , js_broken(22355)
|
|
| 321 | 322 | ], makefile_test, ['T23697'])
|
| 322 | 323 | test('stimesEndo', normal, compile_and_run, [''])
|
| 323 | 324 | test('T24807', exit_code(1), compile_and_run, [''])
|
| ... | ... | @@ -13,4 +13,10 @@ T24602: |
| 13 | 13 | --emit_use_strict \
|
| 14 | 14 | --js_output_file ./T24602.jsexe/all.min.js \
|
| 15 | 15 | ./T24602.jsexe/all.js ./T24602.jsexe/all.externs.js
|
| 16 | + # For odd reasons, the final js file might not be finally written at this
|
|
| 17 | + # line. This happens when tests run concurrently (e.g. on CI).
|
|
| 18 | + while [ ! -f "./T24602.jsexe/all.min.js" ]; do \
|
|
| 19 | + sync \
|
|
| 20 | + sleep 1; \
|
|
| 21 | + done
|
|
| 16 | 22 | node ./T24602.jsexe/all.min.js |