Remove Printer.c:prettyPrintClosure()
authorÖmer Sinan Ağacan <omeragacan@gmail.com>
Fri, 10 Jun 2016 11:13:47 +0000 (07:13 -0400)
committerÖmer Sinan Ağacan <omeragacan@gmail.com>
Fri, 10 Jun 2016 11:14:00 +0000 (07:14 -0400)
It turns out this function was unused and broken for a long time (fixed
with b0a7664). Removing it as it will probably get broken again in the
future and it's unused.

Reviewers: austin, erikd, simonmar, nomeata, bgamari

Reviewed By: nomeata, bgamari

Subscribers: Phyx, thomie, nomeata

Differential Revision: https://phabricator.haskell.org/D2322

rts/Printer.c
rts/Printer.h

index a6f26c2..1ee1c6c 100644 (file)
@@ -785,87 +785,6 @@ findPtr(P_ p, int follow)
   }
 }
 
-/* prettyPrintClosure() is for printing out a closure using the data constructor
-   names found in the info tables. Closures are printed in a fashion that resembles
-   their Haskell representation. Useful during debugging.
-
-   Todo: support for more closure types, and support for non pointer fields in the
-   payload.
-*/
-
-void prettyPrintClosure_ (const StgClosure *);
-
-void prettyPrintClosure (const StgClosure *obj)
-{
-   prettyPrintClosure_ (obj);
-   debugBelch ("\n");
-}
-
-void prettyPrintClosure_ (const StgClosure *obj)
-{
-    const StgInfoTable *info;
-
-    obj = UNTAG_CONST_CLOSURE(obj);
-
-    /* collapse any indirections */
-    unsigned int type;
-    type = get_itbl(obj)->type;
-
-    while (type == IND ||
-           type == IND_STATIC)
-    {
-      obj = ((StgInd *)obj)->indirectee;
-      type = get_itbl(obj)->type;
-    }
-
-    /* find the info table for this object */
-    info = get_itbl(obj);
-
-    /* determine what kind of object we have */
-    switch (info->type)
-    {
-        /* full applications of data constructors */
-        case CONSTR:
-        case CONSTR_1_0:
-        case CONSTR_0_1:
-        case CONSTR_1_1:
-        case CONSTR_0_2:
-        case CONSTR_2_0:
-        case CONSTR_STATIC:
-        case CONSTR_NOCAF_STATIC:
-        {
-           const StgConInfoTable *con_info;
-           const char *descriptor;
-           uint32_t i;
-
-           /* find the con_info for the constructor */
-           con_info = get_con_itbl (obj);
-
-           /* obtain the name of the constructor */
-           descriptor = GET_CON_DESC(con_info);
-
-           debugBelch ("(%s", descriptor);
-
-           /* process the payload of the closure */
-           /* we don't handle non pointers at the moment */
-           for (i = 0; i < info->layout.payload.ptrs; i++)
-           {
-              debugBelch (" ");
-              prettyPrintClosure_ ((StgClosure *) obj->payload[i]);
-           }
-           debugBelch (")");
-           break;
-        }
-
-        /* if it isn't a constructor then just print the closure type */
-        default:
-        {
-           debugBelch ("<%s>", info_type(obj));
-           break;
-        }
-    }
-}
-
 const char *what_next_strs[] = {
   [0]               = "(unknown)",
   [ThreadRunGHC]    = "ThreadRunGHC",
index bd2db35..4db7605 100644 (file)
@@ -22,7 +22,6 @@ const char  *      info_type_by_ip ( const StgInfoTable *ip );
 const char  *      info_update_frame ( const StgClosure *closure );
 
 #ifdef DEBUG
-extern void        prettyPrintClosure (const StgClosure *obj);
 extern void        printClosure    ( const StgClosure *obj );
 extern void        printStackChunk ( StgPtr sp, StgPtr spLim );
 extern void        printTSO        ( StgTSO *tso );