summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorÖmer Sinan Ağacan <omeragacan@gmail.com>2016-06-10 07:13:47 -0400
committerÖmer Sinan Ağacan <omeragacan@gmail.com>2016-06-10 07:14:00 -0400
commit47d81732022e0327f7a5798898b40d1f1bdbb157 (patch)
tree40fbb17092397c1a07f54d519a7848f600fcc68b /rts
parentb0a76643e979a2e5198875a9c99f5f625f318668 (diff)
downloadhaskell-47d81732022e0327f7a5798898b40d1f1bdbb157.tar.gz
Remove Printer.c:prettyPrintClosure()
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
Diffstat (limited to 'rts')
-rw-r--r--rts/Printer.c81
-rw-r--r--rts/Printer.h1
2 files changed, 0 insertions, 82 deletions
diff --git a/rts/Printer.c b/rts/Printer.c
index a6f26c2262..1ee1c6c4b3 100644
--- a/rts/Printer.c
+++ b/rts/Printer.c
@@ -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",
diff --git a/rts/Printer.h b/rts/Printer.h
index bd2db35aeb..4db76057be 100644
--- a/rts/Printer.h
+++ b/rts/Printer.h
@@ -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 );