Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC

Commits:

9 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -416,7 +416,7 @@ hadrian-ghc-in-ghci:
    416 416
         # workaround for docker permissions
    
    417 417
         - sudo chown ghc:ghc -R .
    
    418 418
       variables:
    
    419
    -    GHC_FLAGS: -Werror
    
    419
    +    GHC_FLAGS: -Werror -Wwarn=unused-imports
    
    420 420
       tags:
    
    421 421
         - x86_64-linux
    
    422 422
       script:
    
    ... ... @@ -428,7 +428,7 @@ hadrian-ghc-in-ghci:
    428 428
         - "echo '  ghc-options: -Werror'  >> hadrian/cabal.project.local"
    
    429 429
         # Load ghc-in-ghci then immediately exit and check the modules loaded
    
    430 430
         - export CORES="$(mk/detect-cpu-count.sh)"
    
    431
    -    - echo ":q" | HADRIAN_ARGS=-j$CORES hadrian/ghci -j$CORES | tail -n2 | grep "Ok,"
    
    431
    +    - echo ":q" | HADRIAN_ARGS=-j$CORES hadrian/ghci-multi -j$CORES | tail -n2 | grep "Ok,"
    
    432 432
       after_script:
    
    433 433
         - .gitlab/ci.sh save_cache
    
    434 434
         - cat ci_timings.txt
    

  • .gitlab/ci.sh
    ... ... @@ -275,7 +275,7 @@ function setup() {
    275 275
     
    
    276 276
     function fetch_ghc() {
    
    277 277
       local should_fetch=false
    
    278
    -  
    
    278
    +
    
    279 279
       if [ ! -e "$GHC" ]; then
    
    280 280
         if [ -z "${FETCH_GHC_VERSION:-}" ]; then
    
    281 281
           fail "GHC not found at '$GHC' and FETCH_GHC_VERSION is not set"
    
    ... ... @@ -292,7 +292,7 @@ function fetch_ghc() {
    292 292
           fi
    
    293 293
         fi
    
    294 294
       fi
    
    295
    -  
    
    295
    +
    
    296 296
       if [ "$should_fetch" = true ]; then
    
    297 297
           local v="$FETCH_GHC_VERSION"
    
    298 298
     
    
    ... ... @@ -887,8 +887,28 @@ function save_cache () {
    887 887
     }
    
    888 888
     
    
    889 889
     function clean() {
    
    890
    -  rm -R tmp
    
    891
    -  run rm -Rf _build
    
    890
    +  # When CI_DISPOSABLE_ENVIRONMENT is not true (e.g. using shell
    
    891
    +  # executor on windows/macos), the project directory is not removed
    
    892
    +  # by gitlab runner automatically after each job. To mitigate the
    
    893
    +  # space leak, other than periodic cleaning on the runner host, we
    
    894
    +  # also must aggressively cleanup build products, otherwise we run
    
    895
    +  # into out of space errors too frequently.
    
    896
    +  #
    
    897
    +  # When CI_DISPOSABLE_ENVIRONMENT is true (using docker executor on
    
    898
    +  # linux), the runner will do proper cleanup, so no need to do
    
    899
    +  # anything here.
    
    900
    +  #
    
    901
    +  # The exclude list are the artifacts that we do expect to be
    
    902
    +  # uploaded. Keep in sync with `jobArtifacts` in
    
    903
    +  # `.gitlab/generate-ci/gen_ci.hs`!
    
    904
    +  if [[ "${CI_DISPOSABLE_ENVIRONMENT:-}" != true ]]; then
    
    905
    +    git submodule foreach --recursive git clean -xdf
    
    906
    +    git clean -xdf \
    
    907
    +      --exclude=ci_timings.txt \
    
    908
    +      --exclude=ghc-*.tar.xz \
    
    909
    +      --exclude=junit.xml \
    
    910
    +      --exclude=unexpected-test-output.tar.gz
    
    911
    +  fi
    
    892 912
     }
    
    893 913
     
    
    894 914
     function run_hadrian() {
    

  • .gitlab/generate-ci/gen_ci.hs
    ... ... @@ -889,6 +889,8 @@ job arch opsys buildConfig = NamedJob { name = jobName, jobInfo = Job {..} }
    889 889
           , if testsuiteUsePerf buildConfig then "RUNTEST_ARGS" =: "--config perf_path=perf" else mempty
    
    890 890
           ]
    
    891 891
     
    
    892
    +    -- Keep in sync with the exclude list in `function clean()` in
    
    893
    +    -- `.gitlab/ci.sh`!
    
    892 894
         jobArtifacts = Artifacts
    
    893 895
           { junitReport = "junit.xml"
    
    894 896
           , expireIn = "2 weeks"
    

  • docs/users_guide/exts/gadt_syntax.rst
    ... ... @@ -387,6 +387,6 @@ type declarations.
    387 387
     
    
    388 388
        ::
    
    389 389
     
    
    390
    -          infix 6 (:--:)
    
    390
    +          infix 6 :--:
    
    391 391
               data T a where
    
    392 392
                 (:--:) :: Int -> Bool -> T Int

  • libraries/ghc-internal/src/GHC/Internal/Stack/Decode.hs
    ... ... @@ -269,7 +269,7 @@ decodeLargeBitmap getterFun# stackSnapshot# index relativePayloadOffset = do
    269 269
         cWordArrayToList ptr size = mapM (peekElemOff ptr) [0 .. (size - 1)]
    
    270 270
     
    
    271 271
         usedBitmapWords :: Int -> Int
    
    272
    -    usedBitmapWords 0 = error "Invalid large bitmap size 0."
    
    272
    +    usedBitmapWords 0 = 0
    
    273 273
         usedBitmapWords size = (size `div` fromIntegral wORD_SIZE_IN_BITS) + 1
    
    274 274
     
    
    275 275
         bitmapWordsPointerness :: Word -> [Word] -> [Pointerness]
    

  • testsuite/tests/bytecode/T26640.hs
    1
    +-- Main.hs
    
    2
    +module Main where
    
    3
    +main = pure ()
    
    4
    +

  • testsuite/tests/bytecode/T26640.script
    1
    +:l T26640
    
    2
    +:break 3
    
    3
    +main
    
    4
    +import GHC.Conc
    
    5
    +import GHC.Stack.CloneStack
    
    6
    +() <- mapM_ (\ix -> do !_ <- decode =<< cloneThreadStack ix; return ()) =<< listThreads

  • testsuite/tests/bytecode/T26640.stdout
    1
    +Breakpoint 0 activated at T26640.hs:3:8-14
    
    2
    +Stopped in Main.main, T26640.hs:3:8-14
    
    3
    +_result :: IO () = _

  • testsuite/tests/bytecode/all.T
    ... ... @@ -8,6 +8,7 @@ test('T25975', extra_ways(ghci_ways), compile_and_run,
    8 8
     
    
    9 9
     test('T26565', extra_files(["T26565.hs"]), ghci_script, ['T26565.script'])
    
    10 10
     test('T23973', extra_files(["T23973.hs"]), ghci_script, ['T23973.script'])
    
    11
    +test('T26640', extra_files(["T26640.hs"]), ghci_script, ['T26640.script'])
    
    11 12
     
    
    12 13
     # Nullary data constructors
    
    13 14
     test('T26216', extra_files(["T26216_aux.hs"]), ghci_script, ['T26216.script'])