Skip to content

Instantly share code, notes, and snippets.

@timo

timo/foo.diff Secret

Last active August 29, 2015 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timo/f00e026fa5c59ddc9ee9 to your computer and use it in GitHub Desktop.
Save timo/f00e026fa5c59ddc9ee9 to your computer and use it in GitHub Desktop.
dump moarvm's gen2 roots list (or rather: their respective REPR names)
diff --git a/src/gc/collect.c b/src/gc/collect.c
index 208ec8c..dbd31f8 100644
--- a/src/gc/collect.c
+++ b/src/gc/collect.c
@@ -19,6 +19,26 @@ static void pass_work_item(MVMThreadContext *tc, WorkToPass *wtp, MVMCollectable
static void pass_leftover_work(MVMThreadContext *tc, WorkToPass *wtp);
static void add_in_tray_to_worklist(MVMThreadContext *tc, MVMGCWorklist *worklist);
+static void analyze_worklist_REPRs(MVMThreadContext *tc, MVMGCWorklist *worklist) {
+ MVMuint32 index;
+
+ fprintf(stderr, "worklist reprs:\n\n");
+
+ for (index = 0; index < worklist->items; index++) {
+ MVMObject *object = (MVMObject *)worklist->list[index][0];
+ if (object->header.flags & MVM_CF_STABLE) {
+ fprintf(stderr, "STable\n");
+ } else {
+ if (STABLE(object)->REPR->name) {
+ fprintf(stderr, "%s\n", STABLE(object)->REPR->name);
+ }
+ }
+ }
+ fprintf(stderr, "frames: %d\n", worklist->frames);
+
+ fprintf(stderr, "\n\n");
+}
+
/* Does a garbage collection run. Exactly what it does is configured by the
* couple of arguments that it takes.
*
@@ -110,6 +130,11 @@ void MVM_gc_collect(MVMThreadContext *tc, MVMuint8 what_to_do, MVMuint8 gen) {
* collection anyway (in fact, we must not for correctness, otherwise
* the gen2 rooting keeps them alive forever). */
if (gen == MVMGCGenerations_Nursery) {
+ MVMGCWorklist *debugworklist = MVM_gc_worklist_create(tc, gen != MVMGCGenerations_Nursery);
+ MVM_gc_root_add_gen2s_to_worklist(tc, debugworklist);
+ analyze_worklist_REPRs(tc, debugworklist);
+ MVM_gc_worklist_destroy(tc, debugworklist);
+
MVM_gc_root_add_gen2s_to_worklist(tc, worklist);
GCDEBUG_LOG(tc, MVM_GC_DEBUG_COLLECT, "Thread %d run %d : processing %d items from gen2 \n", worklist->items);
process_worklist(tc, worklist, &wtp, gen);
frames: 1441
frames: 1369
frames: 2641
frames: 2639
frames: 2584
frames: 2584
frames: 2584
frames: 2584
frames: 2663
frames: 2584
frames: 2584
frames: 2584
frames: 2584
frames: 2642
frames: 2585
frames: 2640
frames: 2664
frames: 2585
frames: 2585
frames: 2640
frames: 2664
frames: 2640
frames: 2237
frames: 1973
frames: 3731
frames: 4045
frames: 3523
frames: 3660
frames: 4278
frames: 4381
frames: 4107
frames: 4267
frames: 4276
frames: 4448
frames: 4913
frames: 4949
frames: 5194
frames: 5041
frames: 5003
frames: 5040
frames: 5610
frames: 5363
frames: 5306
frames: 5859
frames: 5682
frames: 6280
frames: 5972
frames: 6542
frames: 6626
frames: 6777
frames: 6427
frames: 6650
frames: 6648
frames: 6838
frames: 7133
frames: 7118
frames: 7275
frames: 7651
frames: 7590
frames: 7809
frames: 8251
frames: 8073
frames: 8189
frames: 8266
frames: 8737
frames: 8853
frames: 8358
frames: 8742
frames: 9195
frames: 9307
frames: 9041
frames: 9381
frames: 9059
frames: 9562
frames: 9280
frames: 9747
frames: 9834
frames: 9978
frames: 10244
frames: 10240
frames: 10029
frames: 10580
frames: 10647
frames: 10211
frames: 10961
frames: 11074
frames: 11233
frames: 11353
frames: 11124
frames: 11314
frames: 11517
frames: 11518
frames: 12313
frames: 11896
frames: 11951
frames: 12268
frames: 12637
frames: 12299
frames: 12575
frames: 12714
frames: 12722
frames: 13290
frames: 13422
frames: 13638
frames: 13247
frames: 13387
frames: 13515
frames: 13471
frames: 14185
frames: 14199
frames: 14418
frames: 14527
frames: 14113
frames: 14176
frames: 14496
frames: 14260
frames: 14691
frames: 14653
frames: 14387
frames: 14954
frames: 15045
frames: 14958
frames: 14787
frames: 15086
frames: 14738
frames: 15040
frames: 15134
frames: 15200
frames: 15230
frames: 15693
frames: 15448
frames: 15615
frames: 15713
frames: 15919
frames: 15864
frames: 16056
frames: 16633
frames: 16580
frames: 16314
frames: 16398
frames: 16464
frames: 16434
frames: 16502
frames: 17004
frames: 16704
frames: 17120
frames: 17310
frames: 16898
frames: 17020
frames: 17168
frames: 17355
frames: 17430
frames: 17550
frames: 17644
frames: 17741
frames: 17866
frames: 17938
frames: 18068
frames: 18180
frames: 18239
frames: 18369
frames: 18467
frames: 18574
frames: 18575
frames: 19180
frames: 18837
frames: 18940
frames: 18963
frames: 19051
frames: 19507
frames: 19223
frames: 19367
frames: 19539
frames: 19661
frames: 20195
frames: 19909
frames: 19981
frames: 20186
frames: 20225
frames: 20295
frames: 20146
frames: 20342
frames: 20404
frames: 20541
frames: 20444
frames: 20596
frames: 21231
frames: 20767
frames: 20823
frames: 20858
frames: 21101
frames: 21381
frames: 21429
frames: 21870
frames: 22052
frames: 22556
frames: 22863
frames: 23516
frames: 24239
frames: 24658
frames: 25294
frames: 25812
frames: 25849
frames: 26447
frames: 26701
frames: 27042
frames: 27212
frames: 27482
frames: 27560
frames: 27701
frames: 27828
frames: 28153
frames: 28487
frames: 28568
frames: 28651
frames: 28269
frames: 28228
frames: 28519
frames: 28669
frames: 28698
frames: 28838
frames: 28968
frames: 29062
frames: 29226
frames: 29316
frames: 29182
frames: 29907
frames: 29704
frames: 29864
frames: 30311
frames: 30375
frames: 30166
frames: 30153
frames: 30313
frames: 30923
frames: 30910
frames: 31078
frames: 31161
frames: 31216
frames: 31425
frames: 31203
frames: 31568
frames: 31776
frames: 31412
frames: 31581
frames: 31962
frames: 31780
frames: 32341
frames: 31916
frames: 32063
frames: 32153
frames: 32317
frames: 32263
frames: 32305
frames: 32311
frames: 32571
frames: 32923
frames: 32863
frames: 32567
frames: 32678
frames: 32877
frames: 32910
frames: 33147
frames: 33105
frames: 33157
frames: 33414
frames: 33539
frames: 33578
frames: 34250
frames: 33794
frames: 33890
frames: 34309
frames: 34309
frames: 34493
frames: 35116
frames: 34740
frames: 35114
frames: 35138
frames: 35731
frames: 35404
frames: 35478
frames: 35617
frames: 35827
frames: 36323
frames: 36432
frames: 36524
frames: 36631
frames: 36256
frames: 36471
frames: 36883
frames: 36923
frames: 36281
frames: 36369
frames: 36827
frames: 36872
frames: 36994
frames: 37105
frames: 37376
frames: 37119
frames: 37376
frames: 38087
frames: 37872
frames: 38007
frames: 38159
frames: 38697
frames: 38838
frames: 39037
frames: 39190
frames: 38803
frames: 38840
frames: 38993
frames: 39049
frames: 39198
frames: 39245
frames: 39344
frames: 39678
frames: 39823
frames: 40134
frames: 40918
frames: 40542
frames: 40948
frames: 41147
frames: 41222
frames: 41321
frames: 41275
frames: 41407
frames: 42259
frames: 41486
frames: 41967
frames: 42162
frames: 42091
frames: 42674
frames: 42884
frames: 43161
frames: 42827
frames: 42935
frames: 43025
frames: 43507
frames: 43291
frames: 43333
frames: 43458
frames: 43385
frames: 43643
frames: 44044
frames: 43890
frames: 43817
frames: 45049
frames: 45341
frames: 45344
frames: 45308
frames: 45366
frames: 45365
frames: 45313
frames: 45368
frames: 45313
frames: 45341
frames: 45378
frames: 45330
frames: 45360
frames: 45380
frames: 45360
frames: 45380
frames: 45382
frames: 45364
frames: 45378
frames: 45348
frames: 45374
frames: 45385
frames: 45365
frames: 45375
frames: 45371
frames: 45394
frames: 45286
frames: 45279
frames: 45286
frames: 45261
frames: 45263
frames: 45253
frames: 45284
frames: 45252
frames: 45276
frames: 45279
frames: 45277
frames: 45267
frames: 45248
frames: 45261
frames: 45254
frames: 45250
frames: 45254
frames: 45292
frames: 45308
frames: 45259
frames: 45299
frames: 45277
frames: 45285
frames: 45278
frames: 45272
frames: 45256
frames: 45285
frames: 45307
frames: 45269
frames: 45308
frames: 45308
frames: 45314
frames: 45289
frames: 45322
frames: 45269
frames: 45322
frames: 45322
frames: 45320
frames: 45322
frames: 45248
frames: 45287
frames: 45270
frames: 45328
frames: 45304
frames: 45295
frames: 45328
frames: 45321
frames: 45327
frames: 45327
frames: 45334
frames: 45327
frames: 45304
frames: 45340
frames: 45315
frames: 45308
frames: 45338
frames: 45318
frames: 45333
frames: 45271
frames: 45320
frames: 45296
frames: 45307
frames: 45259
frames: 45308
frames: 45329
frames: 45304
frames: 45307
frames: 45299
frames: 45302
frames: 45282
frames: 45344
frames: 45335
frames: 45293
frames: 45346
frames: 45344
frames: 45290
frames: 45333
frames: 45322
frames: 45311
frames: 45345
frames: 45288
frames: 45325
frames: 45354
frames: 45358
frames: 45358
frames: 45315
frames: 45358
frames: 50827
frames: 50807
frames: 50807
frames: 50821
frames: 50817
frames: 8402
frames: 8471
frames: 8145
frames: 11875
frames: 12182
frames: 12539
frames: 12425
frames: 13221
frames: 13534
frames: 8387
frames: 8128
frames: 12609
frames: 12723
489400 P6opaque
120608 SCRef
88251 MVMString
50395 VMArray
33546 MVMCode
30656 P6str
18943 P6num
14871 P6int
14556 VMHash
3483 STable
2330 Uninstantiable
1599 Lexotic
1489 NFA
1431
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment