[better debugging for points-to analysis
John Meacham <john@repetae.net>**20050912065524] hunk ./Grin/PointsToAnalysis.hs 214
-    showsPrec x (VsNodes n s) = braces (hcat (intersperse (char ',') $ (map f $ Map.toAscList n) ++ map tshow (Set.toList s) )) where
-        f (t,vs) = tshow t <> tshow vs
+    showsPrec x (VsNodes n s) = braces (hcat (intersperse (char ',') $ (map f $ snub $ fsts  (Map.keys n) ++ Set.toList s) )) where
+        f a = (if a `Set.member` s then tshow a else char '#' <> tshow a) <> tshow (g a)
+        g a = sort [ (i,v) | ((a',i),v) <- Map.toList n, a' == a ]
+        --f (t,vs) = tshow t <> tshow vs
hunk ./Grin/PointsToAnalysis.hs 362
-    --mapM CharIO.print [ v  | v@(_,_) <-  Map.toList (ptFunc pt)]
-    --mapM CharIO.print [ v  | v@(_,_) <-  Map.toList (ptVars pt)]
+    wdump FD.Eval $ do
+        CharIO.putStrLn "funcs:"
+        mapM_ CharIO.print [ v  | v@(_,_) <-  Map.toList (ptFunc pt)]
+        CharIO.putStrLn "vars:"
+        mapM_ CharIO.print [ v  | v@(_,_) <-  Map.toList (ptVars pt)]
+        CharIO.putStrLn "heap:"
+        mapM_ CharIO.print [ v  | v@(_,_) <-  Map.toList (ptHeap pt)]
+
hunk ./Grin/PointsToAnalysis.hs 598
+tupleName = toAtom ""
+
hunk ./Grin/PointsToAnalysis.hs 607
-constPos (Tuple ts) = constPos (Con (toAtom "") ts)
+constPos (Tuple ts) = constPos (Con tupleName ts)
hunk ./Grin/PointsToAnalysis.hs 644
-            pp (Tuple ts) = pp (Con (toAtom "") ts)
-            pp (DownTup p n) = pp (Down p (toAtom "") n)
+            pp (Tuple ts) = pp (Con tupleName ts)
+            pp (DownTup p n) = pp (Down p tupleName n)
hunk ./Grin/PointsToAnalysis.hs 762
-        newVal p | Just v <- constPos p = return (value v)
hunk ./Main.hs 277
-    --wdump FD.Grin $ printGrin x
+    wdump FD.GrinPreeval $ printGrin x