aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code
diff options
context:
space:
mode:
Diffstat (limited to 'mps/code')
-rw-r--r--mps/code/arenavm.c41
-rw-r--r--mps/code/diag.c32
-rw-r--r--mps/code/locus.c6
-rw-r--r--mps/code/poolamc.c44
-rw-r--r--mps/code/trace.c20
-rw-r--r--mps/code/vmix.c8
6 files changed, 82 insertions, 69 deletions
diff --git a/mps/code/arenavm.c b/mps/code/arenavm.c
index 40a4d28a9b7..71e828e27c6 100644
--- a/mps/code/arenavm.c
+++ b/mps/code/arenavm.c
@@ -1086,9 +1086,10 @@ static Res vmArenaExtend(VMArena vmArena, Size size)
1086 1086
1087 1087
1088 DIAG_SINGLEF(( "vmArenaExtend_Start", 1088 DIAG_SINGLEF(( "vmArenaExtend_Start",
1089 "to accommodate size $W, try chunkSize $W", size, chunkSize, 1089 "to accommodate size $W, try chunkSize $W", (WriteFW)size, (WriteFW)chunkSize,
1090 " (VMArenaReserved currently $W bytes)\n", 1090 " (VMArenaReserved currently $W bytes)\n",
1091 VMArenaReserved(VMArena2Arena(vmArena)), NULL )); 1091 (WriteFW)VMArenaReserved(VMArena2Arena(vmArena)),
1092 NULL ));
1092 1093
1093 /* .chunk-create.fail: If we fail, try again with a smaller size */ 1094 /* .chunk-create.fail: If we fail, try again with a smaller size */
1094 { 1095 {
@@ -1111,9 +1112,10 @@ static Res vmArenaExtend(VMArena vmArena, Size size)
1111 for(; chunkSize > chunkHalf; chunkSize -= sliceSize) { 1112 for(; chunkSize > chunkHalf; chunkSize -= sliceSize) {
1112 if(chunkSize < chunkMin) { 1113 if(chunkSize < chunkMin) {
1113 DIAG_SINGLEF(( "vmArenaExtend_FailMin", 1114 DIAG_SINGLEF(( "vmArenaExtend_FailMin",
1114 "no remaining address-space chunk >= min($W)", chunkMin, 1115 "no remaining address-space chunk >= min($W)", (WriteFW)chunkMin,
1115 " (so VMArenaReserved remains $W bytes)\n", 1116 " (so VMArenaReserved remains $W bytes)\n",
1116 VMArenaReserved(VMArena2Arena(vmArena)), NULL )); 1117 (WriteFW)VMArenaReserved(VMArena2Arena(vmArena)),
1118 NULL ));
1117 return ResRESOURCE; 1119 return ResRESOURCE;
1118 } 1120 }
1119 res = VMChunkCreate(&newChunk, vmArena, chunkSize); 1121 res = VMChunkCreate(&newChunk, vmArena, chunkSize);
@@ -1126,9 +1128,10 @@ static Res vmArenaExtend(VMArena vmArena, Size size)
1126vmArenaExtend_Done: 1128vmArenaExtend_Done:
1127 1129
1128 DIAG_SINGLEF(( "vmArenaExtend_Done", 1130 DIAG_SINGLEF(( "vmArenaExtend_Done",
1129 "Request for new chunk of VM $W bytes succeeded", chunkSize, 1131 "Request for new chunk of VM $W bytes succeeded", (WriteFW)chunkSize,
1130 " (VMArenaReserved now $W bytes)\n", 1132 " (VMArenaReserved now $W bytes)\n",
1131 VMArenaReserved(VMArena2Arena(vmArena)), NULL )); 1133 (WriteFW)VMArenaReserved(VMArena2Arena(vmArena)),
1134 NULL ));
1132 1135
1133 return res; 1136 return res;
1134} 1137}
@@ -1689,16 +1692,22 @@ static void VMCompact(Arena arena, Trace trace)
1689 || vmem0 != vmem1 1692 || vmem0 != vmem1
1690 || vmem1 != vmem2) { 1693 || vmem1 != vmem2) {
1691 DIAG_SINGLEF(( "VMCompact", 1694 DIAG_SINGLEF(( "VMCompact",
1692 "pre-collection vmem was $Um$3, ", M_whole(vmem0), M_frac(vmem0), 1695 "pre-collection vmem was $Um$3, ",
1693 "peaked at $Um$3, ", M_whole(vmem1), M_frac(vmem1), 1696 (WriteFU)M_whole(vmem0), (WriteFU)M_frac(vmem0),
1694 "released $Um$3, ", M_whole(vmemD), M_frac(vmemD), 1697 "peaked at $Um$3, ", (WriteFU)M_whole(vmem1), (WriteFU)M_frac(vmem1),
1695 "now $Um$3", M_whole(vmem2), M_frac(vmem2), 1698 "released $Um$3, ", (WriteFU)M_whole(vmemD), (WriteFU)M_frac(vmemD),
1696 " (why $U", trace->why, 1699 "now $Um$3", (WriteFU)M_whole(vmem2), (WriteFU)M_frac(vmem2),
1697 ": $Um$3", M_whole(trace->condemned), M_frac(trace->condemned), 1700 " (why $U", (WriteFU)trace->why,
1698 "[->$Um$3", M_whole(live), M_frac(live), 1701 ": $Um$3",
1699 " $U%-live", livePerc, 1702 (WriteFU)M_whole(trace->condemned), (WriteFU)M_frac(trace->condemned),
1700 " $Um$3-stuck]", M_whole(trace->preservedInPlaceSize), M_frac(trace->preservedInPlaceSize), 1703 "[->$Um$3", (WriteFU)M_whole(live), (WriteFU)M_frac(live),
1701 " ($Um$3-not)", M_whole(trace->notCondemned), M_frac(trace->notCondemned), 1704 " $U%-live", (WriteFU)livePerc,
1705 " $Um$3-stuck]",
1706 (WriteFU)M_whole(trace->preservedInPlaceSize),
1707 (WriteFU)M_frac(trace->preservedInPlaceSize),
1708 " ($Um$3-not)",
1709 (WriteFU)M_whole(trace->notCondemned),
1710 (WriteFU)M_frac(trace->notCondemned),
1702 " )", 1711 " )",
1703 NULL)); 1712 NULL));
1704 } 1713 }
diff --git a/mps/code/diag.c b/mps/code/diag.c
index 03d95492c90..1cca976da03 100644
--- a/mps/code/diag.c
+++ b/mps/code/diag.c
@@ -194,7 +194,7 @@ enum {
194static void version_diag(void) 194static void version_diag(void)
195{ 195{
196 DIAG_SINGLEF(( "MPSVersion", 196 DIAG_SINGLEF(( "MPSVersion",
197 "$S", MPSVersion(), NULL )); 197 "$S", (WriteFS)MPSVersion(), NULL ));
198} 198}
199 199
200static void rules_diag(Rule rules) 200static void rules_diag(Rule rules)
@@ -207,8 +207,8 @@ static void rules_diag(Rule rules)
207 " rules:\n", NULL )); 207 " rules:\n", NULL ));
208 for(ir = 0; rules[ir].action != NULL; ir++) { 208 for(ir = 0; rules[ir].action != NULL; ir++) {
209 DIAG_DECL( Rule rule = &rules[ir]; ) 209 DIAG_DECL( Rule rule = &rules[ir]; )
210 DIAG_MOREF(( "$S$S/$S/$S\n", rule->action, rule->tag, 210 DIAG_MOREF(( "$S$S/$S/$S\n", (WriteFS)rule->action, (WriteFS)rule->tag,
211 rule->para, rule->line, 211 (WriteFS)rule->para, (WriteFS)rule->line,
212 NULL )); 212 NULL ));
213 } 213 }
214 DIAG_END("DiagFilter_Rules"); 214 DIAG_END("DiagFilter_Rules");
@@ -378,7 +378,7 @@ static void filterStream_Output(Diag diag, Rule rules)
378 if(rules[ir].action[0] == '+' || diag->overflow) { 378 if(rules[ir].action[0] == '+' || diag->overflow) {
379 if(nolinesyet) { 379 if(nolinesyet) {
380 res = WriteF(filterStream_under(), 380 res = WriteF(filterStream_under(),
381 DIAG_PREFIX_TAGSTART "$S {", diag->tag, NULL); 381 DIAG_PREFIX_TAGSTART "$S {", (WriteFS)diag->tag, NULL);
382 AVER(res == ResOK); 382 AVER(res == ResOK);
383 nolinesyet = FALSE; 383 nolinesyet = FALSE;
384 } 384 }
@@ -452,7 +452,7 @@ static void filterStream_TagEnd(mps_lib_FILE *stream, const char *tag)
452 (void) WriteF(filterStream_under(), 452 (void) WriteF(filterStream_under(),
453 "\nWARNING: diag tag \"$S\" is current, " 453 "\nWARNING: diag tag \"$S\" is current, "
454 "but got DIAG_END(\"$S\"). (They must match).", 454 "but got DIAG_END(\"$S\"). (They must match).",
455 diag->tag, tag, NULL); 455 (WriteFS)diag->tag, (WriteFS)tag, NULL);
456 } 456 }
457 AVER(StringEqual(diag->tag, tag)); 457 AVER(StringEqual(diag->tag, tag));
458 458
@@ -551,7 +551,7 @@ static void diagTagBegin(mps_lib_FILE *stream, const char *tag)
551 filterStream_TagBegin(stream, tag); 551 filterStream_TagBegin(stream, tag);
552 } else { 552 } else {
553 Res res; 553 Res res;
554 res = WriteF(stream, DIAG_PREFIX_TAGSTART "$S {\n", tag, NULL); 554 res = WriteF(stream, DIAG_PREFIX_TAGSTART "$S {\n", (WriteFS)tag, NULL);
555 AVER(res == ResOK); 555 AVER(res == ResOK);
556 } 556 }
557} 557}
@@ -672,7 +672,7 @@ static void patternOccurs_test(Bool expect, const char *patt,
672 672
673static void diag_test(void) 673static void diag_test(void)
674{ 674{
675 DIAG_SINGLEF(( "DIAGTEST_Tag1", "text $U.\n", 42, NULL )); 675 DIAG_SINGLEF(( "DIAGTEST_Tag1", "text $U.\n", (WriteFU)42, NULL ));
676 676
677 DIAG_SINGLEF(( "DIAGTEST_EmptyDiag", NULL )); 677 DIAG_SINGLEF(( "DIAGTEST_EmptyDiag", NULL ));
678 678
@@ -682,12 +682,12 @@ static void diag_test(void)
682 StringEqual("Fred", "Fred"), 682 StringEqual("Fred", "Fred"),
683 NULL 683 NULL
684 )); 684 ));
685 DIAG_MOREF(("Fred = Tom: $U.\n", StringEqual("Fred", "Tom"), NULL)); 685 DIAG_MOREF(("Fred = Tom: $U.\n", (WriteFU)StringEqual("Fred", "Tom"), NULL));
686 DIAG_MOREF(("Tom = Fred: $U.\n", StringEqual("Tom", "Fred"), NULL)); 686 DIAG_MOREF(("Tom = Fred: $U.\n", (WriteFU)StringEqual("Tom", "Fred"), NULL));
687 DIAG_MOREF(("0 = Fred: $U.\n", StringEqual("", "Fred"), NULL)); 687 DIAG_MOREF(("0 = Fred: $U.\n", (WriteFU)StringEqual("", "Fred"), NULL));
688 DIAG_MOREF(("Fred = 0: $U.\n", StringEqual("Fred", ""), NULL)); 688 DIAG_MOREF(("Fred = 0: $U.\n", (WriteFU)StringEqual("Fred", ""), NULL));
689 DIAG_MOREF(("0 = 0: $U.\n", StringEqual("", ""), NULL)); 689 DIAG_MOREF(("0 = 0: $U.\n", (WriteFU)StringEqual("", ""), NULL));
690 DIAG_MOREF(("0 = 000: $U.\n", StringEqual("", "\0\0"), NULL)); 690 DIAG_MOREF(("0 = 000: $U.\n", (WriteFU)StringEqual("", "\0\0"), NULL));
691 DIAG_END("DIAGTEST_StringEqual"); 691 DIAG_END("DIAGTEST_StringEqual");
692 692
693 DIAG_FIRSTF(( "DIAGTEST_patternOccurs", NULL )); 693 DIAG_FIRSTF(( "DIAGTEST_patternOccurs", NULL ));
@@ -718,11 +718,11 @@ static void diag_test(void)
718 DIAG_END("DIAGTEST_patternOccurs"); 718 DIAG_END("DIAGTEST_patternOccurs");
719 719
720#if 0 720#if 0
721 DIAG_FIRSTF(( "TestTag2", "text $U.\n", 42, NULL )); 721 DIAG_FIRSTF(( "TestTag2", "text $U.\n", (WriteFU)42, NULL ));
722 DIAG_MOREF(( NULL )); 722 DIAG_MOREF(( NULL ));
723 DIAG_MOREF(( "string $S.\n", "fooey!", NULL )); 723 DIAG_MOREF(( "string $S.\n", (WriteFS)"fooey!", NULL ));
724 DIAG_MOREF(( NULL )); 724 DIAG_MOREF(( NULL ));
725 DIAG_MOREF(( "Another string $S.\n", "baloney!", NULL )); 725 DIAG_MOREF(( "Another string $S.\n", (WriteFS)"baloney!", NULL ));
726 DIAG_END( "TestTag2" ); 726 DIAG_END( "TestTag2" );
727#endif 727#endif
728} 728}
diff --git a/mps/code/locus.c b/mps/code/locus.c
index 2c94d0f71b3..56e7a1208c6 100644
--- a/mps/code/locus.c
+++ b/mps/code/locus.c
@@ -296,9 +296,9 @@ Res ChainCondemnAuto(double *mortalityReturn, Chain chain, Trace trace)
296 } while (genNewSize >= gen->capacity * (Size)1024); 296 } while (genNewSize >= gen->capacity * (Size)1024);
297 297
298 DIAG_SINGLEF(( "ChainCondemnAuto", 298 DIAG_SINGLEF(( "ChainCondemnAuto",
299 "condemn gens [0..$U]", topCondemnedGenSerial, 299 "condemn gens [0..$U]", (WriteFU)topCondemnedGenSerial,
300 " (of $U)", chain->genCount, 300 " (of $U)", (WriteFU)chain->genCount,
301 " of this chain $P.", (void*)chain, 301 " of this chain $P.", (WriteFP)chain,
302 NULL )); 302 NULL ));
303 303
304 /* Condemn everything in these zones. */ 304 /* Condemn everything in these zones. */
diff --git a/mps/code/poolamc.c b/mps/code/poolamc.c
index fc33cbbe548..a2e429da7cb 100644
--- a/mps/code/poolamc.c
+++ b/mps/code/poolamc.c
@@ -2219,28 +2219,28 @@ static void AMCTraceEnd(Pool pool, Trace trace)
2219 2219
2220 if(amc->pageretstruct[ti].pRet >= pRetMin) { 2220 if(amc->pageretstruct[ti].pRet >= pRetMin) {
2221 DIAG_SINGLEF(( "AMCTraceEnd_pageret", 2221 DIAG_SINGLEF(( "AMCTraceEnd_pageret",
2222 " $U", ArenaEpoch(pool->arena), 2222 " $U", (WriteFU)ArenaEpoch(pool->arena),
2223 " $U", trace->why, 2223 " $U", (WriteFU)trace->why,
2224 " $S", trace->emergency ? "Emergency" : "-", 2224 " $S", (WriteFS)(trace->emergency ? "Emergency" : "-"),
2225 " $U", amc->pageretstruct[ti].pCond, 2225 " $U", (WriteFU)amc->pageretstruct[ti].pCond,
2226 " $U", amc->pageretstruct[ti].pRet, ",", 2226 " $U", (WriteFU)amc->pageretstruct[ti].pRet, ",",
2227 " $U", amc->pageretstruct[ti].pCS, 2227 " $U", (WriteFU)amc->pageretstruct[ti].pCS,
2228 " $U", amc->pageretstruct[ti].pRS, ",", 2228 " $U", (WriteFU)amc->pageretstruct[ti].pRS, ",",
2229 " $U", amc->pageretstruct[ti].sCM, 2229 " $U", (WriteFU)amc->pageretstruct[ti].sCM,
2230 " $U", amc->pageretstruct[ti].pCM, 2230 " $U", (WriteFU)amc->pageretstruct[ti].pCM,
2231 " $U", amc->pageretstruct[ti].sRM, 2231 " $U", (WriteFU)amc->pageretstruct[ti].sRM,
2232 " $U", amc->pageretstruct[ti].pRM, 2232 " $U", (WriteFU)amc->pageretstruct[ti].pRM,
2233 " $U", amc->pageretstruct[ti].pRM1, 2233 " $U", (WriteFU)amc->pageretstruct[ti].pRM1,
2234 " $U", amc->pageretstruct[ti].pRMrr, 2234 " $U", (WriteFU)amc->pageretstruct[ti].pRMrr,
2235 " $U", amc->pageretstruct[ti].pRMr1, ",", 2235 " $U", (WriteFU)amc->pageretstruct[ti].pRMr1, ",",
2236 " $U", amc->pageretstruct[ti].sCL, 2236 " $U", (WriteFU)amc->pageretstruct[ti].sCL,
2237 " $U", amc->pageretstruct[ti].pCL, 2237 " $U", (WriteFU)amc->pageretstruct[ti].pCL,
2238 " $U", amc->pageretstruct[ti].sRL, 2238 " $U", (WriteFU)amc->pageretstruct[ti].sRL,
2239 " $U", amc->pageretstruct[ti].pRL, 2239 " $U", (WriteFU)amc->pageretstruct[ti].pRL,
2240 " $U", amc->pageretstruct[ti].pRLr, 2240 " $U", (WriteFU)amc->pageretstruct[ti].pRLr,
2241 " (page = $Ub,", ArenaAlign(pool->arena), 2241 " (page = $Ub,", (WriteFU)ArenaAlign(pool->arena),
2242 " Large >= $Up,", AMCLargeSegPAGES, 2242 " Large >= $Up,", (WriteFU)AMCLargeSegPAGES,
2243 " pRetMin $U)", pRetMin, 2243 " pRetMin $U)", (WriteFU)pRetMin,
2244 NULL )); 2244 NULL ));
2245 } 2245 }
2246 2246
diff --git a/mps/code/trace.c b/mps/code/trace.c
index e553d160318..6e8c8b262b0 100644
--- a/mps/code/trace.c
+++ b/mps/code/trace.c
@@ -309,7 +309,7 @@ static void traceSetSignalEmergency(TraceSet ts, Arena arena)
309 Trace trace; 309 Trace trace;
310 310
311 DIAG_SINGLEF(( "traceSetSignalEmergency", 311 DIAG_SINGLEF(( "traceSetSignalEmergency",
312 "traceSet: $B", ts, NULL )); 312 "traceSet: $B", (WriteFB)ts, NULL ));
313 313
314 TRACE_SET_ITER(ti, trace, ts, arena) 314 TRACE_SET_ITER(ti, trace, ts, arena)
315 trace->emergency = TRUE; 315 trace->emergency = TRUE;
@@ -1527,20 +1527,20 @@ static void TraceStartGenDesc_diag(GenDesc desc, int i)
1527 NULL )); 1527 NULL ));
1528 } else { 1528 } else {
1529 DIAG_WRITEF(( DIAG_STREAM, 1529 DIAG_WRITEF(( DIAG_STREAM,
1530 " GenDesc [$U]", i, 1530 " GenDesc [$U]", (WriteFU)i,
1531 NULL )); 1531 NULL ));
1532 } 1532 }
1533 DIAG_WRITEF(( DIAG_STREAM, 1533 DIAG_WRITEF(( DIAG_STREAM,
1534 " $P capacity: $U KiB, mortality $D\n", 1534 " $P capacity: $U KiB, mortality $D\n",
1535 (void *)desc, desc->capacity, desc->mortality, 1535 (WriteFP)desc, (WriteFU)desc->capacity, (WriteFD)desc->mortality,
1536 " ZoneSet:$B\n", desc->zones, 1536 " ZoneSet:$B\n", (WriteFB)desc->zones,
1537 NULL )); 1537 NULL ));
1538 RING_FOR(n, &desc->locusRing, nn) { 1538 RING_FOR(n, &desc->locusRing, nn) {
1539 DIAG_DECL( PoolGen gen = RING_ELT(PoolGen, genRing, n); ) 1539 DIAG_DECL( PoolGen gen = RING_ELT(PoolGen, genRing, n); )
1540 DIAG_WRITEF(( DIAG_STREAM, 1540 DIAG_WRITEF(( DIAG_STREAM,
1541 " PoolGen $U ($S)", gen->nr, gen->pool->class->name, 1541 " PoolGen $U ($S)", (WriteFU)gen->nr, (WriteFS)gen->pool->class->name,
1542 " totalSize $U", gen->totalSize, 1542 " totalSize $U", (WriteFU)gen->totalSize,
1543 " newSize $U\n", gen->newSizeAtCreate, 1543 " newSize $U\n", (WriteFU)gen->newSizeAtCreate,
1544 NULL )); 1544 NULL ));
1545 } 1545 }
1546} 1546}
@@ -1606,14 +1606,14 @@ void TraceStart(Trace trace, double mortality, double finishingTime)
1606 1606
1607 DIAG_FIRSTF(( "TraceStart", 1607 DIAG_FIRSTF(( "TraceStart",
1608 "because code $U: $S\n", 1608 "because code $U: $S\n",
1609 trace->why, TraceStartWhyToString(trace->why), 1609 (WriteFU)trace->why, (WriteFS)TraceStartWhyToString(trace->why),
1610 NULL )); 1610 NULL ));
1611 1611
1612 DIAG( ArenaDescribe(arena, DIAG_STREAM); ); 1612 DIAG( ArenaDescribe(arena, DIAG_STREAM); );
1613 1613
1614 DIAG_MOREF(( 1614 DIAG_MOREF((
1615 " white set:$B\n", 1615 " white set:$B\n",
1616 trace->white, 1616 (WriteFB)trace->white,
1617 NULL )); 1617 NULL ));
1618 1618
1619 { 1619 {
@@ -1626,7 +1626,7 @@ void TraceStart(Trace trace, double mortality, double finishingTime)
1626 RING_FOR(node, &arena->chainRing, nextNode) { 1626 RING_FOR(node, &arena->chainRing, nextNode) {
1627 Chain chain = RING_ELT(Chain, chainRing, node); 1627 Chain chain = RING_ELT(Chain, chainRing, node);
1628 DIAG_WRITEF(( DIAG_STREAM, 1628 DIAG_WRITEF(( DIAG_STREAM,
1629 " Chain $P\n", (void *)chain, 1629 " Chain $P\n", (WriteFP)chain,
1630 NULL )); 1630 NULL ));
1631 1631
1632 for(i = 0; i < chain->genCount; ++i) { 1632 for(i = 0; i < chain->genCount; ++i) {
diff --git a/mps/code/vmix.c b/mps/code/vmix.c
index 71f6354a32c..f5ba622f7c9 100644
--- a/mps/code/vmix.c
+++ b/mps/code/vmix.c
@@ -164,7 +164,9 @@ Res VMCreate(VM *vmReturn, Size size)
164 DIAG_SINGLEF(( 164 DIAG_SINGLEF((
165 "VM_ix_Create_ok", 165 "VM_ix_Create_ok",
166 "[$W..<$W>..$W)", 166 "[$W..<$W>..$W)",
167 vm->base, (char*)vm->limit - (char*)vm->base, vm->limit, 167 (WriteFW)vm->base,
168 (WriteFW)AddrOffset(vm->base, vm->limit),
169 (WriteFW)vm->limit,
168 NULL )); 170 NULL ));
169 171
170 *vmReturn = vm; 172 *vmReturn = vm;
@@ -188,7 +190,9 @@ void VMDestroy(VM vm)
188 DIAG_SINGLEF(( 190 DIAG_SINGLEF((
189 "VM_ix_Destroy", 191 "VM_ix_Destroy",
190 "[$W..<$W>..$W)", 192 "[$W..<$W>..$W)",
191 vm->base, (char*)vm->limit - (char*)vm->base, vm->limit, 193 (WriteFW)vm->base,
194 (WriteFW)AddrOffset(vm->base, vm->limit),
195 (WriteFW)vm->limit,
192 NULL )); 196 NULL ));
193 197
194 /* This appears to be pretty pointless, since the descriptor */ 198 /* This appears to be pretty pointless, since the descriptor */