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

Commits:

12 changed files:

Changes:

  • .gitlab/ci.sh
    ... ... @@ -493,6 +493,11 @@ function fetch_perf_notes() {
    493 493
     }
    
    494 494
     
    
    495 495
     function push_perf_notes() {
    
    496
    +  if [[ "${CI_COMMIT_BRANCH:-}" != "master" ]] && [[ ! "${CI_COMMIT_BRANCH:-}" =~ ghc-[0-9]+\.[0-9]+ ]]; then
    
    497
    +    info "Perf notes are only pushed on master/release branches"
    
    498
    +    return
    
    499
    +  fi
    
    500
    +
    
    496 501
       if [[ -z "${TEST_ENV:-}" ]]; then
    
    497 502
         return
    
    498 503
       fi
    

  • docs/users_guide/exts/roles.rst
    ... ... @@ -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.
    

  • hadrian/src/Context.hs
    ... ... @@ -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
    

  • hadrian/src/Settings/Builders/Configure.hs
    ... ... @@ -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 ] ]

  • hadrian/src/Settings/Builders/Make.hs
    ... ... @@ -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
    

  • libraries/base/changelog.md
    ... ... @@ -22,6 +22,7 @@
    22 22
       * `GHC.Conc.throwSTM` and `GHC.Conc.Sync.throwSTM` now carry a `HasCallStack` constraint and attach a `Backtrace` annotation to the thrown exception. ([GHC #25365](https://gitlab.haskell.org/ghc/ghc/-/issues/25365))
    
    23 23
       * `GHC.Conc.catchSTM` and `GHC.Conc.Sync.catchSTM` now attach `WhileHandling` annotation to exceptions thrown from the handler. ([GHC #25365](https://gitlab.haskell.org/ghc/ghc/-/issues/25365))
    
    24 24
       * Remove `GHC.JS.Prim.Internal.Build`, as per [CLC #329](https://github.com/haskell/core-libraries-committee/issues/329)
    
    25
    +  * Export `labelThread` from `Control.Concurrent`.([CLC proposal #376](https://github.com/haskell/core-libraries-committee/issues/376))
    
    25 26
     
    
    26 27
     ## 4.22.0.0 *TBA*
    
    27 28
       * Shipped with GHC 9.14.1
    

  • libraries/base/src/Control/Concurrent.hs
    ... ... @@ -82,6 +82,9 @@ module Control.Concurrent (
    82 82
             -- * Weak references to ThreadIds
    
    83 83
             mkWeakThreadId,
    
    84 84
     
    
    85
    +        -- * Thread debugging
    
    86
    +        labelThread,
    
    87
    +
    
    85 88
             -- * GHC's implementation of concurrency
    
    86 89
     
    
    87 90
             -- |This section describes features specific to GHC's
    

  • libraries/base/src/System/Timeout.hs
    ... ... @@ -29,7 +29,6 @@ import GHC.Internal.Control.Exception (Exception(..), handleJust, bracket,
    29 29
                                 asyncExceptionToException,
    
    30 30
                                 asyncExceptionFromException)
    
    31 31
     import GHC.Internal.Data.Unique         (Unique, newUnique)
    
    32
    -import GHC.Conc (labelThread)
    
    33 32
     import Prelude
    
    34 33
     
    
    35 34
     -- $setup
    

  • testsuite/tests/interface-stability/base-exports.stdout
    ... ... @@ -120,6 +120,7 @@ module Control.Concurrent where
    120 120
       isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    121 121
       isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    122 122
       killThread :: ThreadId -> GHC.Internal.Types.IO ()
    
    123
    +  labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO ()
    
    123 124
       mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a))
    
    124 125
       mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId)
    
    125 126
       modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b
    

  • testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
    ... ... @@ -120,6 +120,7 @@ module Control.Concurrent where
    120 120
       isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    121 121
       isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    122 122
       killThread :: ThreadId -> GHC.Internal.Types.IO ()
    
    123
    +  labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO ()
    
    123 124
       mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a))
    
    124 125
       mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId)
    
    125 126
       modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b
    

  • testsuite/tests/interface-stability/base-exports.stdout-mingw32
    ... ... @@ -120,6 +120,7 @@ module Control.Concurrent where
    120 120
       isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    121 121
       isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    122 122
       killThread :: ThreadId -> GHC.Internal.Types.IO ()
    
    123
    +  labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO ()
    
    123 124
       mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a))
    
    124 125
       mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId)
    
    125 126
       modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b
    

  • testsuite/tests/interface-stability/base-exports.stdout-ws-32
    ... ... @@ -120,6 +120,7 @@ module Control.Concurrent where
    120 120
       isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    121 121
       isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    122 122
       killThread :: ThreadId -> GHC.Internal.Types.IO ()
    
    123
    +  labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO ()
    
    123 124
       mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a))
    
    124 125
       mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId)
    
    125 126
       modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b