Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC

Commits:

4 changed files:

Changes:

  • libraries/ghc-experimental/ghc-experimental.cabal.in
    ... ... @@ -41,6 +41,7 @@ library
    41 41
           GHC.TypeNats.Experimental
    
    42 42
           GHC.RTS.Flags.Experimental
    
    43 43
           GHC.Stack.Annotation.Experimental
    
    44
    +      GHC.Stack.Decode.Experimental
    
    44 45
           GHC.Stats.Experimental
    
    45 46
           Prelude.Experimental
    
    46 47
           System.Mem.Experimental
    

  • libraries/ghc-experimental/src/GHC/Stack/Decode/Experimental.hs
    1
    +module GHC.Stack.Decode.Experimental (
    
    2
    +    -- * High-level stack decoders
    
    3
    +    decodeStackWithIpe,
    
    4
    +    -- * Stack decoder helpers
    
    5
    +    decodeStackWithFrameUnpack,
    
    6
    +    -- * StackEntry
    
    7
    +    StackEntry(..),
    
    8
    +    -- * Pretty printing
    
    9
    +    prettyStackFrameWithIpe,
    
    10
    +    prettyStackEntry,
    
    11
    +  ) where
    
    12
    +
    
    13
    +import GHC.Internal.Stack.Decode

  • testsuite/tests/interface-stability/ghc-experimental-exports.stdout
    ... ... @@ -6545,6 +6545,15 @@ module GHC.Stack.Annotation.Experimental where
    6545 6545
       annotateStackString :: forall b. GHC.Internal.Stack.Types.HasCallStack => GHC.Internal.Base.String -> b -> b
    
    6546 6546
       annotateStackStringIO :: forall b. GHC.Internal.Stack.Types.HasCallStack => GHC.Internal.Base.String -> GHC.Internal.Types.IO b -> GHC.Internal.Types.IO b
    
    6547 6547
     
    
    6548
    +module GHC.Stack.Decode.Experimental where
    
    6549
    +  -- Safety: None
    
    6550
    +  type StackEntry :: *
    
    6551
    +  data StackEntry = StackEntry {functionName :: GHC.Internal.Base.String, moduleName :: GHC.Internal.Base.String, srcLoc :: GHC.Internal.Base.String, closureType :: GHC.Internal.ClosureTypes.ClosureType}
    
    6552
    +  decodeStackWithFrameUnpack :: forall a. (GHC.Internal.Stack.Decode.StackFrameLocation -> GHC.Internal.Types.IO a) -> GHC.Internal.Stack.CloneStack.StackSnapshot -> GHC.Internal.Types.IO (GHC.Internal.Heap.InfoTable.Types.StgInfoTable, [a])
    
    6553
    +  decodeStackWithIpe :: GHC.Internal.Stack.CloneStack.StackSnapshot -> GHC.Internal.Types.IO [(GHC.Internal.Heap.Closures.StackFrame, GHC.Internal.Maybe.Maybe GHC.Internal.InfoProv.Types.InfoProv)]
    
    6554
    +  prettyStackEntry :: StackEntry -> GHC.Internal.Base.String
    
    6555
    +  prettyStackFrameWithIpe :: (GHC.Internal.Heap.Closures.StackFrame, GHC.Internal.Maybe.Maybe GHC.Internal.InfoProv.Types.InfoProv) -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String
    
    6556
    +
    
    6548 6557
     module GHC.Stats.Experimental where
    
    6549 6558
       -- Safety: Safe
    
    6550 6559
       type GCDetails :: *
    
    ... ... @@ -11185,6 +11194,7 @@ instance GHC.Internal.Classes.Eq GHC.Internal.Base.Void -- Defined in ‘GHC.Int
    11185 11194
     instance GHC.Internal.Classes.Eq GHC.Internal.IO.MaskingState -- Defined in ‘GHC.Internal.IO’
    
    11186 11195
     instance GHC.Internal.Classes.Eq GHC.Internal.RTS.Flags.IoManagerFlag -- Defined in ‘GHC.Internal.RTS.Flags’
    
    11187 11196
     instance GHC.Internal.Classes.Eq GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’
    
    11197
    +instance GHC.Internal.Classes.Eq GHC.Internal.Stack.Decode.StackEntry -- Defined in ‘GHC.Internal.Stack.Decode’
    
    11188 11198
     instance GHC.Internal.Classes.Ord GHC.Internal.Types.Bool -- Defined in ‘GHC.Internal.Classes’
    
    11189 11199
     instance GHC.Internal.Classes.Ord GHC.Internal.Types.Char -- Defined in ‘GHC.Internal.Classes’
    
    11190 11200
     instance GHC.Internal.Classes.Ord GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Classes’
    
    ... ... @@ -11282,6 +11292,8 @@ instance GHC.Internal.Show.Show GHC.Internal.RTS.Flags.TickyFlags -- Defined in
    11282 11292
     instance GHC.Internal.Show.Show GHC.Internal.RTS.Flags.TraceFlags -- Defined in ‘GHC.Internal.RTS.Flags’
    
    11283 11293
     instance GHC.Internal.Show.Show GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’
    
    11284 11294
     instance GHC.Internal.Show.Show GHC.Stack.Annotation.Experimental.CallStackAnnotation -- Defined in ‘GHC.Stack.Annotation.Experimental’
    
    11295
    +instance GHC.Internal.Show.Show GHC.Internal.Stack.Decode.Pointerness -- Defined in ‘GHC.Internal.Stack.Decode’
    
    11296
    +instance GHC.Internal.Show.Show GHC.Internal.Stack.Decode.StackEntry -- Defined in ‘GHC.Internal.Stack.Decode’
    
    11285 11297
     instance GHC.Internal.Show.Show GHC.Internal.Stats.GCDetails -- Defined in ‘GHC.Internal.Stats’
    
    11286 11298
     instance GHC.Internal.Show.Show GHC.Internal.Stats.RTSStats -- Defined in ‘GHC.Internal.Stats’
    
    11287 11299
     instance GHC.Internal.Stack.Annotation.StackAnnotation GHC.Stack.Annotation.Experimental.CallStackAnnotation -- Defined in ‘GHC.Stack.Annotation.Experimental’
    

  • testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32
    ... ... @@ -6548,6 +6548,15 @@ module GHC.Stack.Annotation.Experimental where
    6548 6548
       annotateStackString :: forall b. GHC.Internal.Stack.Types.HasCallStack => GHC.Internal.Base.String -> b -> b
    
    6549 6549
       annotateStackStringIO :: forall b. GHC.Internal.Stack.Types.HasCallStack => GHC.Internal.Base.String -> GHC.Internal.Types.IO b -> GHC.Internal.Types.IO b
    
    6550 6550
     
    
    6551
    +module GHC.Stack.Decode.Experimental where
    
    6552
    +  -- Safety: None
    
    6553
    +  type StackEntry :: *
    
    6554
    +  data StackEntry = StackEntry {functionName :: GHC.Internal.Base.String, moduleName :: GHC.Internal.Base.String, srcLoc :: GHC.Internal.Base.String, closureType :: GHC.Internal.ClosureTypes.ClosureType}
    
    6555
    +  decodeStackWithFrameUnpack :: forall a. (GHC.Internal.Stack.Decode.StackFrameLocation -> GHC.Internal.Types.IO a) -> GHC.Internal.Stack.CloneStack.StackSnapshot -> GHC.Internal.Types.IO (GHC.Internal.Heap.InfoTable.Types.StgInfoTable, [a])
    
    6556
    +  decodeStackWithIpe :: GHC.Internal.Stack.CloneStack.StackSnapshot -> GHC.Internal.Types.IO [(GHC.Internal.Heap.Closures.StackFrame, GHC.Internal.Maybe.Maybe GHC.Internal.InfoProv.Types.InfoProv)]
    
    6557
    +  prettyStackEntry :: StackEntry -> GHC.Internal.Base.String
    
    6558
    +  prettyStackFrameWithIpe :: (GHC.Internal.Heap.Closures.StackFrame, GHC.Internal.Maybe.Maybe GHC.Internal.InfoProv.Types.InfoProv) -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String
    
    6559
    +
    
    6551 6560
     module GHC.Stats.Experimental where
    
    6552 6561
       -- Safety: Safe
    
    6553 6562
       type GCDetails :: *
    
    ... ... @@ -11188,6 +11197,7 @@ instance GHC.Internal.Classes.Eq GHC.Internal.Base.Void -- Defined in ‘GHC.Int
    11188 11197
     instance GHC.Internal.Classes.Eq GHC.Internal.IO.MaskingState -- Defined in ‘GHC.Internal.IO’
    
    11189 11198
     instance GHC.Internal.Classes.Eq GHC.Internal.RTS.Flags.IoManagerFlag -- Defined in ‘GHC.Internal.RTS.Flags’
    
    11190 11199
     instance GHC.Internal.Classes.Eq GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’
    
    11200
    +instance GHC.Internal.Classes.Eq GHC.Internal.Stack.Decode.StackEntry -- Defined in ‘GHC.Internal.Stack.Decode’
    
    11191 11201
     instance GHC.Internal.Classes.Ord GHC.Internal.Types.Bool -- Defined in ‘GHC.Internal.Classes’
    
    11192 11202
     instance GHC.Internal.Classes.Ord GHC.Internal.Types.Char -- Defined in ‘GHC.Internal.Classes’
    
    11193 11203
     instance GHC.Internal.Classes.Ord GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Classes’
    
    ... ... @@ -11285,6 +11295,8 @@ instance GHC.Internal.Show.Show GHC.Internal.RTS.Flags.TickyFlags -- Defined in
    11285 11295
     instance GHC.Internal.Show.Show GHC.Internal.RTS.Flags.TraceFlags -- Defined in ‘GHC.Internal.RTS.Flags’
    
    11286 11296
     instance GHC.Internal.Show.Show GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’
    
    11287 11297
     instance GHC.Internal.Show.Show GHC.Stack.Annotation.Experimental.CallStackAnnotation -- Defined in ‘GHC.Stack.Annotation.Experimental’
    
    11298
    +instance GHC.Internal.Show.Show GHC.Internal.Stack.Decode.Pointerness -- Defined in ‘GHC.Internal.Stack.Decode’
    
    11299
    +instance GHC.Internal.Show.Show GHC.Internal.Stack.Decode.StackEntry -- Defined in ‘GHC.Internal.Stack.Decode’
    
    11288 11300
     instance GHC.Internal.Show.Show GHC.Internal.Stats.GCDetails -- Defined in ‘GHC.Internal.Stats’
    
    11289 11301
     instance GHC.Internal.Show.Show GHC.Internal.Stats.RTSStats -- Defined in ‘GHC.Internal.Stats’
    
    11290 11302
     instance GHC.Internal.Stack.Annotation.StackAnnotation GHC.Stack.Annotation.Experimental.CallStackAnnotation -- Defined in ‘GHC.Stack.Annotation.Experimental’