Hi, Am Mittwoch, den 24.07.2013, 01:41 -0700 schrieb Michael Sloan: > Another non-answer is to take a look at using vaccum[0] and > vaccum-graphviz[1] together, to get an idea of the heap structure of > unforced values. I've made a gist demonstrating how to use these to > visualize the heap without forcing values[2]. This doesn't show any > concrete values (as that would require some serious voodoo), but does > show how the heap changes due to thunks being forced.
if you want to stay in GHCi with it you can use ghc-heapview instead of vacuum: Prelude> :script /home/jojo/.cabal/share/ghc-heap-view-0.5.1/ghci Prelude> let x = [1..] Prelude> take 20 x [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] Prelude> :printHeap x Prelude> :printHeap x let x1 = S# 20 in S# 1 : S# 2 : S# 3 : S# 4 : S# 5 : S# 6 : S# 7 : S# 8 : S# 9 : S# 10 : S# 11 : S# 12 : S# 13 : S# 14 : S# 15 : S# 16 : S# 17 : S# 18 : S# 19 : x1 : _thunk x1 (S# 1) For this kind of infinite values you don’t see its finite, but for others you do: Prelude> let inf = let x = "ha" ++ x in x Prelude> take 20 inf "hahahahahahahahahaha" Prelude> :printHeap inf let x1 = C# 'h' : C# 'a' : x1 in x1 Greetings, Joachim -- Joachim “nomeata” Breitner m...@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nome...@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nome...@debian.org
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe