packages feed

ghc-heap-view 0.5.3 → 0.5.4

raw patch · 3 files changed

+21/−6 lines, 3 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

Files

cbits/HeapView.c view
@@ -247,6 +247,7 @@         case MUT_VAR_CLEAN:             ptrs[nptrs++] = ((StgMutVar *)closure)->var;             break;+        case MVAR_DIRTY:         case MVAR_CLEAN:             ptrs[nptrs++] = (StgClosure *)((StgMVar *)closure)->head;             ptrs[nptrs++] = (StgClosure *)((StgMVar *)closure)->tail;
ghc-heap-view.cabal view
@@ -1,5 +1,5 @@ Name:                ghc-heap-view-Version:             0.5.3+Version:             0.5.4 Synopsis:            Extract the heap representation of Haskell values and thunks Description:   This library provides functions to introspect the Haskell heap, for example@@ -64,7 +64,7 @@     GHC.Disassembler     GHC.HeapView.Debug   Build-depends:-    base >= 4.5 && < 4.8,+    base >= 4.5 && < 4.9,     containers,     transformers,     template-haskell,
src/GHC/HeapView.hs view
@@ -560,6 +560,8 @@         AP -> do             unless (length ptrs >= 1) $                 fail "Expected at least 1 ptr argument to AP"+            unless (length wds >= 3) $+                fail "Expected at least 3 raw words to AP"             return $ APClosure itbl                  (fromIntegral $ wds !! 2)                 (fromIntegral $ shiftR (wds !! 2) (wORD_SIZE_IN_BITS `div` 2))@@ -568,6 +570,8 @@         PAP -> do             unless (length ptrs >= 1) $                 fail "Expected at least 1 ptr argument to PAP"+            unless (length wds >= 3) $+                fail "Expected at least 3 raw words to AP"             return $ PAPClosure itbl                  (fromIntegral $ wds !! 2)                 (fromIntegral $ shiftR (wds !! 2) (wORD_SIZE_IN_BITS `div` 2))@@ -596,22 +600,32 @@                 fail "Expected at least 1 ptr argument to BLACKHOLE"             return $ BlackholeClosure itbl (head ptrs) -        BCO ->+        BCO -> do+            unless (length ptrs >= 3) $+                fail $ "Expected at least 3 ptr argument to BCO, found " ++ show (length ptrs)+            unless (length wds >= 6) $+                fail $ "Expected at least 6 words to BCO, found " ++ show (length wds)             return $ BCOClosure itbl (ptrs !! 0) (ptrs !! 1) (ptrs !! 2)                 (fromIntegral $ wds !! 4)                 (fromIntegral $ shiftR (wds !! 4) (wORD_SIZE_IN_BITS `div` 2))                 (wds !! 5) -        ARR_WORDS ->+        ARR_WORDS -> do+            unless (length wds >= 2) $+                fail $ "Expected at least 2 words to ARR_WORDS, found " ++ show (length wds)             return $ ArrWordsClosure itbl (wds !! 1) (drop 2 wds) -        t | t == MUT_ARR_PTRS_FROZEN || t == MUT_ARR_PTRS_FROZEN0 ->+        t | t == MUT_ARR_PTRS_FROZEN || t == MUT_ARR_PTRS_FROZEN0 -> do+            unless (length wds >= 3) $+                fail $ "Expected at least 3 words to MUT_ARR_PTRS_FROZEN0 found " ++ show (length wds)             return $ MutArrClosure itbl (wds !! 1) (wds !! 2) ptrs          t | t == MUT_VAR_CLEAN || t == MUT_VAR_DIRTY ->             return $ MutVarClosure itbl (head ptrs) -        t | t == MVAR_CLEAN || t == MVAR_DIRTY ->+        t | t == MVAR_CLEAN || t == MVAR_DIRTY -> do+            unless (length ptrs >= 3) $+                fail $ "Expected at least 3 ptrs to MVAR, found " ++ show (length ptrs)             return $ MVarClosure itbl (ptrs !! 0) (ptrs !! 1) (ptrs !! 2)          BLOCKING_QUEUE ->