Sven Tennie pushed to branch wip/romes/hadrian-cross-stage2-rebase_SVEN_FINAL at Glasgow Haskell Compiler / GHC

Commits:

4 changed files:

Changes:

  • .gitlab/generate-ci/gen_ci.hs
    ... ... @@ -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
    

  • .gitlab/jobs.yaml
    ... ... @@ -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",
    

  • libraries/base/tests/all.T
    ... ... @@ -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, [''])
    

  • testsuite/tests/javascript/closure/Makefile
    ... ... @@ -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