Index: /trunk/ccl/lisp-kernel/ppc-gc.c
===================================================================
--- /trunk/ccl/lisp-kernel/ppc-gc.c	(revision 7823)
+++ /trunk/ccl/lisp-kernel/ppc-gc.c	(revision 7824)
@@ -25,4 +25,28 @@
 #include <string.h>
 #include <sys/time.h>
+
+void
+comma_output_decimal(char *buf, int len, natural n) 
+{
+  int nout = 0;
+
+  buf[--len] = 0;
+  do {
+    buf[--len] = n%10+'0';
+    n = n/10;
+    if (n == 0) {
+      while (len) {
+        buf[--len] = ' ';
+      }
+      return;
+    }
+    if (len == 0) return;
+    nout ++;
+    if (nout == 3) {
+      buf[--len] = ',';
+      nout = 0;
+    }
+  } while (len >= 0);
+}
 
 /* Heap sanity checking. */
@@ -2485,12 +2509,15 @@
 
   if (GCverbose) {
+    char buf[16];
+
+    comma_output_decimal(buf,16,area_dnode(oldfree,a->low) << dnode_shift);
     if (GCephemeral_low) {
       fprintf(stderr,
-              "\n\n;;; Starting Ephemeral GC of generation %d",
+              "\n\n;;; Starting EGC of generation %d",
               (from == g2_area) ? 2 : (from == g1_area) ? 1 : 0); 
     } else {
       fprintf(stderr,"\n\n;;; Starting full GC");
     }
-    fprintf(stderr, ",  %ld bytes allocated.\n", area_dnode(oldfree,a->low) << dnode_shift);
+    fprintf(stderr, ", %s bytes allocated.\n", buf);
   }
 
@@ -2798,13 +2825,14 @@
       *( (long long *) ptr_from_lispobj(((macptr *) ptr_from_lispobj(untag(val)))->address)) += justfreed;
       if (GCverbose) {
+        char buf[16];
         if (justfreed <= heap_segment_size) {
           justfreed = 0;
         }
         if (note == tenured_area) {
-          fprintf(stderr,";;; Finished full GC.  Freed %lld bytes in %d.%06d s\n\n", justfreed, elapsed.tv_sec, elapsed.tv_usec);
+          fprintf(stderr,";;; Finished full GC. %s bytes freed in %d.%06d s\n\n", buf, elapsed.tv_sec, elapsed.tv_usec);
         } else {
-          fprintf(stderr,";;; Finished Ephemeral GC of generation %d.  Freed %lld bytes in %d.%06d s\n\n", 
+          fprintf(stderr,";;; Finished EGC of generation %d. %s bytes freed in %d.%06d s\n\n", 
                   (from == g2_area) ? 2 : (from == g1_area) ? 1 : 0,
-                  justfreed, 
+                  buf, 
                   elapsed.tv_sec, elapsed.tv_usec);
         }
Index: /trunk/ccl/lisp-kernel/x86-gc.c
===================================================================
--- /trunk/ccl/lisp-kernel/x86-gc.c	(revision 7823)
+++ /trunk/ccl/lisp-kernel/x86-gc.c	(revision 7824)
@@ -50,4 +50,28 @@
 #endif
 
+
+void
+comma_output_decimal(char *buf, int len, natural n) 
+{
+  int nout = 0;
+
+  buf[--len] = 0;
+  do {
+    buf[--len] = n%10+'0';
+    n = n/10;
+    if (n == 0) {
+      while (len) {
+        buf[--len] = ' ';
+      }
+      return;
+    }
+    if (len == 0) return;
+    nout ++;
+    if (nout == 3) {
+      buf[--len] = ',';
+      nout = 0;
+    }
+  } while (len >= 0);
+}
 
 /* Heap sanity checking. */
@@ -2417,12 +2441,15 @@
 
   if (GCverbose) {
+    char buf[16];
+    
+    comma_output_decimal(buf,16,area_dnode(oldfree,a->low) << dnode_shift);
     if (GCephemeral_low) {
       fprintf(stderr,
-              "\n\n;;; Starting Ephemeral GC of generation %d",
+              "\n\n;;; Starting EGC of generation %d",
               (from == g2_area) ? 2 : (from == g1_area) ? 1 : 0); 
     } else {
       fprintf(stderr,"\n\n;;; Starting full GC");
     }
-    fprintf(stderr, ",  %ld bytes allocated.\n", area_dnode(oldfree,a->low) << dnode_shift);
+    fprintf(stderr, ", %s bytes allocated.\n", buf);
   }
 
@@ -2712,13 +2739,15 @@
       *( (long long *) ptr_from_lispobj(((macptr *) ptr_from_lispobj(untag(val)))->address)) += justfreed;
       if (GCverbose) {
+        char buf[16];
         if (justfreed <= heap_segment_size) {
           justfreed = 0;
         }
+        comma_output_decimal(buf,16,justfreed);
         if (note == tenured_area) {
-          fprintf(stderr,";;; Finished full GC.  Freed %lld bytes in %d.%06d s\n\n", justfreed, elapsed.tv_sec, elapsed.tv_usec);
+          fprintf(stderr,";;; Finished full GC. %s bytes freed in %d.%06d s\n\n", buf, elapsed.tv_sec, elapsed.tv_usec);
         } else {
-          fprintf(stderr,";;; Finished Ephemeral GC of generation %d.  Freed %lld bytes in %d.%06d s\n\n", 
+          fprintf(stderr,";;; Finished EGC of generation %d. %s bytes freed in %d.%06d s\n\n", 
                   (from == g2_area) ? 2 : (from == g1_area) ? 1 : 0,
-                  justfreed, 
+                  buf, 
                   elapsed.tv_sec, elapsed.tv_usec);
         }
