[Git][ghc/ghc][master] Expose decodeStackWithIpe from ghc-experimental
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC Commits: 67c47771 by Rodrigo Mesquita at 2026-03-20T12:32:17-04:00 Expose decodeStackWithIpe from ghc-experimental This decoding is useful to the debugger and it wasn't originally exported as an oversight. - - - - - 4 changed files: - libraries/ghc-experimental/ghc-experimental.cabal.in - + libraries/ghc-experimental/src/GHC/Stack/Decode/Experimental.hs - testsuite/tests/interface-stability/ghc-experimental-exports.stdout - testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32 Changes: ===================================== libraries/ghc-experimental/ghc-experimental.cabal.in ===================================== @@ -41,6 +41,7 @@ library GHC.TypeNats.Experimental GHC.RTS.Flags.Experimental GHC.Stack.Annotation.Experimental + GHC.Stack.Decode.Experimental GHC.Stats.Experimental Prelude.Experimental System.Mem.Experimental ===================================== libraries/ghc-experimental/src/GHC/Stack/Decode/Experimental.hs ===================================== @@ -0,0 +1,13 @@ +module GHC.Stack.Decode.Experimental ( + -- * High-level stack decoders + decodeStackWithIpe, + -- * Stack decoder helpers + decodeStackWithFrameUnpack, + -- * StackEntry + StackEntry(..), + -- * Pretty printing + prettyStackFrameWithIpe, + prettyStackEntry, + ) where + +import GHC.Internal.Stack.Decode ===================================== testsuite/tests/interface-stability/ghc-experimental-exports.stdout ===================================== @@ -6545,6 +6545,15 @@ module GHC.Stack.Annotation.Experimental where annotateStackString :: forall b. GHC.Internal.Stack.Types.HasCallStack => GHC.Internal.Base.String -> b -> b annotateStackStringIO :: forall b. GHC.Internal.Stack.Types.HasCallStack => GHC.Internal.Base.String -> GHC.Internal.Types.IO b -> GHC.Internal.Types.IO b +module GHC.Stack.Decode.Experimental where + -- Safety: None + type StackEntry :: * + data StackEntry = StackEntry {functionName :: GHC.Internal.Base.String, moduleName :: GHC.Internal.Base.String, srcLoc :: GHC.Internal.Base.String, closureType :: GHC.Internal.ClosureTypes.ClosureType} + 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]) + decodeStackWithIpe :: GHC.Internal.Stack.CloneStack.StackSnapshot -> GHC.Internal.Types.IO [(GHC.Internal.Heap.Closures.StackFrame, GHC.Internal.Maybe.Maybe GHC.Internal.InfoProv.Types.InfoProv)] + prettyStackEntry :: StackEntry -> GHC.Internal.Base.String + prettyStackFrameWithIpe :: (GHC.Internal.Heap.Closures.StackFrame, GHC.Internal.Maybe.Maybe GHC.Internal.InfoProv.Types.InfoProv) -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String + module GHC.Stats.Experimental where -- Safety: Safe type GCDetails :: * @@ -11185,6 +11194,7 @@ instance GHC.Internal.Classes.Eq GHC.Internal.Base.Void -- Defined in ‘GHC.Int instance GHC.Internal.Classes.Eq GHC.Internal.IO.MaskingState -- Defined in ‘GHC.Internal.IO’ instance GHC.Internal.Classes.Eq GHC.Internal.RTS.Flags.IoManagerFlag -- Defined in ‘GHC.Internal.RTS.Flags’ instance GHC.Internal.Classes.Eq GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’ +instance GHC.Internal.Classes.Eq GHC.Internal.Stack.Decode.StackEntry -- Defined in ‘GHC.Internal.Stack.Decode’ instance GHC.Internal.Classes.Ord GHC.Internal.Types.Bool -- Defined in ‘GHC.Internal.Classes’ instance GHC.Internal.Classes.Ord GHC.Internal.Types.Char -- Defined in ‘GHC.Internal.Classes’ 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 instance GHC.Internal.Show.Show GHC.Internal.RTS.Flags.TraceFlags -- Defined in ‘GHC.Internal.RTS.Flags’ instance GHC.Internal.Show.Show GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’ instance GHC.Internal.Show.Show GHC.Stack.Annotation.Experimental.CallStackAnnotation -- Defined in ‘GHC.Stack.Annotation.Experimental’ +instance GHC.Internal.Show.Show GHC.Internal.Stack.Decode.Pointerness -- Defined in ‘GHC.Internal.Stack.Decode’ +instance GHC.Internal.Show.Show GHC.Internal.Stack.Decode.StackEntry -- Defined in ‘GHC.Internal.Stack.Decode’ instance GHC.Internal.Show.Show GHC.Internal.Stats.GCDetails -- Defined in ‘GHC.Internal.Stats’ instance GHC.Internal.Show.Show GHC.Internal.Stats.RTSStats -- Defined in ‘GHC.Internal.Stats’ 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 annotateStackString :: forall b. GHC.Internal.Stack.Types.HasCallStack => GHC.Internal.Base.String -> b -> b annotateStackStringIO :: forall b. GHC.Internal.Stack.Types.HasCallStack => GHC.Internal.Base.String -> GHC.Internal.Types.IO b -> GHC.Internal.Types.IO b +module GHC.Stack.Decode.Experimental where + -- Safety: None + type StackEntry :: * + data StackEntry = StackEntry {functionName :: GHC.Internal.Base.String, moduleName :: GHC.Internal.Base.String, srcLoc :: GHC.Internal.Base.String, closureType :: GHC.Internal.ClosureTypes.ClosureType} + 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]) + decodeStackWithIpe :: GHC.Internal.Stack.CloneStack.StackSnapshot -> GHC.Internal.Types.IO [(GHC.Internal.Heap.Closures.StackFrame, GHC.Internal.Maybe.Maybe GHC.Internal.InfoProv.Types.InfoProv)] + prettyStackEntry :: StackEntry -> GHC.Internal.Base.String + prettyStackFrameWithIpe :: (GHC.Internal.Heap.Closures.StackFrame, GHC.Internal.Maybe.Maybe GHC.Internal.InfoProv.Types.InfoProv) -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String + module GHC.Stats.Experimental where -- Safety: Safe type GCDetails :: * @@ -11188,6 +11197,7 @@ instance GHC.Internal.Classes.Eq GHC.Internal.Base.Void -- Defined in ‘GHC.Int instance GHC.Internal.Classes.Eq GHC.Internal.IO.MaskingState -- Defined in ‘GHC.Internal.IO’ instance GHC.Internal.Classes.Eq GHC.Internal.RTS.Flags.IoManagerFlag -- Defined in ‘GHC.Internal.RTS.Flags’ instance GHC.Internal.Classes.Eq GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’ +instance GHC.Internal.Classes.Eq GHC.Internal.Stack.Decode.StackEntry -- Defined in ‘GHC.Internal.Stack.Decode’ instance GHC.Internal.Classes.Ord GHC.Internal.Types.Bool -- Defined in ‘GHC.Internal.Classes’ instance GHC.Internal.Classes.Ord GHC.Internal.Types.Char -- Defined in ‘GHC.Internal.Classes’ 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 instance GHC.Internal.Show.Show GHC.Internal.RTS.Flags.TraceFlags -- Defined in ‘GHC.Internal.RTS.Flags’ instance GHC.Internal.Show.Show GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’ instance GHC.Internal.Show.Show GHC.Stack.Annotation.Experimental.CallStackAnnotation -- Defined in ‘GHC.Stack.Annotation.Experimental’ +instance GHC.Internal.Show.Show GHC.Internal.Stack.Decode.Pointerness -- Defined in ‘GHC.Internal.Stack.Decode’ +instance GHC.Internal.Show.Show GHC.Internal.Stack.Decode.StackEntry -- Defined in ‘GHC.Internal.Stack.Decode’ instance GHC.Internal.Show.Show GHC.Internal.Stats.GCDetails -- Defined in ‘GHC.Internal.Stats’ instance GHC.Internal.Show.Show GHC.Internal.Stats.RTSStats -- Defined in ‘GHC.Internal.Stats’ instance GHC.Internal.Stack.Annotation.StackAnnotation GHC.Stack.Annotation.Experimental.CallStackAnnotation -- Defined in ‘GHC.Stack.Annotation.Experimental’ View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/67c47771185d5540a9e732f5418ffeae... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/67c47771185d5540a9e732f5418ffeae... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Marge Bot (@marge-bot)