Improve demo
[ghc-heap-view.git] / Demo.hs
diff --git a/Demo.hs b/Demo.hs
index 49d448b..ed66bcb 100644 (file)
--- a/Demo.hs
+++ b/Demo.hs
@@ -17,8 +17,9 @@ main = do
     let x = l ++ l2 ++ args
     performGC
     putStrLn "ghc-heap-view-demo"
     let x = l ++ l2 ++ args
     performGC
     putStrLn "ghc-heap-view-demo"
+    putStrLn ""
     putStrLn "Here are a few different lists."
     putStrLn "Here are a few different lists."
-    putStrLn $ "The first one, l, found at " ++ show (asBox l) ++ " is a module-level constant, and fully evaluated:"
+    putStrLn $ "The first one, l, found at " ++ show (asBox l) ++ " (where the /2 is the pointer tag information) is a module-level constant, and fully evaluated:"
     getClosureData l >>= print
     putStrLn $ "The second one, l2, found at " ++ show (asBox l2) ++ " is locally defined as l2 = 4:l. See how the cons-cell references l!"
     getClosureData l2 >>= print
     getClosureData l >>= print
     putStrLn $ "The second one, l2, found at " ++ show (asBox l2) ++ " is locally defined as l2 = 4:l. See how the cons-cell references l!"
     getClosureData l2 >>= print
@@ -49,7 +50,7 @@ main = do
     getClosureData x >>= print
     IndClosure {indirectee = target} <- getClosureData x
     putStrLn $ "The thunk was replaced by an indirection. If we look at the target, " ++ show target ++ ", we see that it is a newly created cons-cell referencing the original location of x:"
     getClosureData x >>= print
     IndClosure {indirectee = target} <- getClosureData x
     putStrLn $ "The thunk was replaced by an indirection. If we look at the target, " ++ show target ++ ", we see that it is a newly created cons-cell referencing the original location of x:"
-    getHValueClosureData target >>= print
+    getBoxedClosureData target >>= print
     performGC
     putStrLn $ "After running the garbage collector (performGC), we find that the address of x is now " ++ show (asBox x) ++ " and that the self-reference is without indirections:"
     getClosureData x >>= print
     performGC
     putStrLn $ "After running the garbage collector (performGC), we find that the address of x is now " ++ show (asBox x) ++ " and that the self-reference is without indirections:"
     getClosureData x >>= print
@@ -59,7 +60,7 @@ recurse :: Int -> Box -> IO ()
 recurse m = go 0
   where go i b = if i >= m then return () else do
             putStrLn $ ind ++ show b
 recurse m = go 0
   where go i b = if i >= m then return () else do
             putStrLn $ ind ++ show b
-            c <- getHValueClosureData b
+            c <- getBoxedClosureData b
             putStrLn $ ind ++ show c
             mapM_ (go (succ i)) (allPtrs c)
           where
             putStrLn $ ind ++ show c
             mapM_ (go (succ i)) (allPtrs c)
           where