<div dir="ltr">Thanks David!<div><br></div><div>    does the report look OK on the Interpreter VMs?</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 26, 2014 at 4:07 PM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">David T. Lewis uploaded a new version of SystemReporter to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/SystemReporter-dtl.23.mcz" target="_blank">http://source.squeak.org/trunk/SystemReporter-dtl.23.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: SystemReporter-dtl.23<br>
Author: dtl<br>
Time: 26 June 2014, 7:07:41.163 pm<br>
UUID: 1becec2c-9df2-43f8-b6f3-374d5d490000<br>
Ancestors: SystemReporter-eem.22<br>
<br>
Fix missing ifFalse: for isCog in VM parameters<br>
<br>
=============== Diff against SystemReporter-eem.22 ===============<br>
<br>
Item was changed:<br>
  ----- Method: SystemReporter&gt;&gt;reportVMParameters: (in category &#39;reporting&#39;) -----<br>
  reportVMParameters: aStream<br>
        | vmParameters isCog isSpur |<br>
        self header: &#39;Virtual Machine Parameters&#39; on: aStream.<br>
        vmParameters := Smalltalk vm getVMParameters.<br>
        isCog := (vmParameters at: 41 ifAbsent: [0]) anyMask: 1. &quot;determine Cog/Stack via bit 0, requires native float order.&quot;<br>
        isSpur := isCog and: [(vmParameters at: 41 ifAbsent: [0]) anyMask: 2r10000]. &quot;bit 16 is the Spur bit&quot;<br>
        (isSpur<br>
                ifFalse:<br>
                        [#(     1       &#39;size of old space&#39;<br>
                                2       &#39;size of young+old space&#39;<br>
                                3       &#39;size of memory&#39;)]<br>
                ifTrue:<br>
                        [#(     1       &#39;size of old space&#39;<br>
                                2       &#39;size of new space&#39;<br>
                                3       &#39;size of heap&#39;)]),<br>
        (isSpur<br>
                ifFalse:<br>
                        [#(     4       &#39;allocationCount&#39;<br>
                                5       &#39;allocations between GCs&#39;<br>
                                6       &#39;survivor count tenuring threshold&#39;)]<br>
                ifTrue: [#()]),<br>
        #(      7       &#39;full GCs since startup&#39;<br>
                8       &#39;total milliseconds in full GCs since startup&#39;),<br>
        (isSpur<br>
                ifFalse: [#(    9       &#39;incremental GCs since startup&#39;<br>
                                        10      &#39;total milliseconds in incremental GCs since startup&#39;)]<br>
                ifTrue: [#(     9       &#39;scavenging GCs since startup&#39;<br>
                                        10      &#39;total milliseconds in scavenging GCs since startup&#39;)]),<br>
        #(      11      &#39;tenures of surving objects since startup&#39;),<br>
        (isCog<br>
                ifFalse:<br>
                        [#(     12      &#39;specific to the translating VM&#39;<br>
                                13  &#39;specific to the translating VM&#39;<br>
                                14  &#39;specific to the translating VM&#39;<br>
                                15  &#39;specific to the translating VM&#39;<br>
                                16  &#39;specific to the translating VM&#39;<br>
                                17  &#39;specific to the translating VM&#39;<br>
                                18  &#39;specific to the translating VM&#39;<br>
                                19  &#39;specific to the translating VM&#39;<br>
                                20  &#39;specific to the translating VM&#39;)]<br>
                ifTrue:<br>
                        [{12 to: 20. &#39;specific to the translating VM&#39;}]),<br>
        #(      21      &#39;root table size&#39;<br>
                22      &#39;root table overflows since startup&#39;<br>
                23      &#39;bytes of extra memory to reserve for VM buffers, plugins, etc.&#39;<br>
                24      &#39;memory threshold above which shrinking object memory&#39;<br>
                25      &#39;memory headroom when growing object memory&#39;),<br>
        (isCog<br>
                ifFalse:<br>
                        [#(     26  &#39;interruptChecksEveryNms - force an ioProcessEvents every N milliseconds, in case the image  is not calling getNextEvent often&#39;)]<br>
                ifTrue:<br>
                        [#(     26  &#39;heartbeat period (ms)&#39;)]),<br>
        (isSpur<br>
                ifFalse:<br>
                        [#(     27      &#39;number of times mark loop iterated for current IGC/FGC includes ALL marking&#39;<br>
                                28      &#39;number of times sweep loop iterated  for current IGC/FGC&#39;<br>
                                29      &#39;number of times make forward loop iterated for current IGC/FGC&#39;<br>
                                30      &#39;number of times compact move loop iterated for current IGC/FGC&#39;)]<br>
                ifTrue: [#()]),<br>
        #(      31      &#39;number of grow memory requests&#39;<br>
                32      &#39;number of shrink memory requests&#39;),<br>
        (isSpur<br>
                ifFalse:<br>
                        [#(     33      &#39;number of root table entries used for current IGC/FGC&#39;<br>
                                34      &#39;number of allocations done before current IGC/FGC&#39;<br>
                                35      &#39;number of survivor objects after current IGC/FGC&#39;<br>
                                36  &#39;millisecond clock when current IGC/FGC completed&#39;<br>
                                37  &#39;number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC&#39;<br>
                                38  &#39;milliseconds taken by current IGC &#39;<br>
                                39  &#39;Number of finalization signals for Weak Objects pending when current IGC/FGC completed&#39;)]<br>
                ifTrue:<br>
                        [#(     36  &#39;millisecond clock when current SGC/FGC completed&#39;<br>
                                38  &#39;milliseconds taken by current SGC &#39;<br>
                                39  &#39;Number of finalization signals for Weak Objects pending when current SGC/FGC completed&#39;)]),<br>
        #(      40  &#39;VM word size - 4 or 8&#39;),<br>
+       (isCog<br>
+               ifTrue:<br>
+                       [#(<br>
+                               41      &#39;imageFormatVersion for the VM&#39;<br>
+                               42      &#39;number of stack pages in use&#39;<br>
+                               43      &#39;desired number of stack pages (stored in image file header, max 65535)&#39;<br>
+                               44      &#39;size of eden, in bytes&#39;<br>
+                               45      &#39;desired size of eden, in bytes (stored in image file header)&#39;<br>
+                               46      &#39;machine code zone size, in bytes&#39;<br>
+                               47      &#39;desired machine code zone size (0 =&gt; default 1Mb)&#39;<br>
+                               48      &#39;various header flags.  See getCogVMFlags.&#39;<br>
+                               49      &#39;max size the image promises to grow the external semaphore table to&#39;),<br>
+                       (isSpur<br>
+                               ifFalse:<br>
+                                       [{      50 to: 54.      &#39;reserved for VM parameters that persist in the image (such as size of eden above)&#39;.<br>
+                                               55 to: 56.      &#39;specific to Spur&#39; }]<br>
+                               ifTrue:<br>
+                                       [{      50 to: 53.      &#39;reserved for VM parameters that persist in the image (such as size of eden above)&#39; },<br>
+                                       #(      54                      &#39;total free old space&#39;<br>
+                                               55                      &#39;ratio of growth and image size at or above which a GC will be performed post scavenge&#39;)]),<br>
+                       #(      56      &#39;number of process switches since startup&#39;<br>
+                               57      &#39;number of ioProcessEvents calls since startup&#39;<br>
+                               58      &#39;number of forceInterruptCheck calls since startup&#39;<br>
+                               59      &#39;number of check event calls since startup&#39;<br>
+                               60      &#39;number of stack page overflows since startup&#39;<br>
+                               61      &#39;number of stack page divorces since startup&#39;<br>
+                               62      &#39;compiled code compactions since startup&#39;<br>
+                               63      &#39;total milliseconds in compiled code compactions since startup&#39;<br>
+                               64      &#39;the number of methods that currently have jitted machine-code&#39;<br>
+                               65      &#39;whether the VM supports MULTIPLE_BYTECODE_SETS or not.&#39;<br>
+                               66      &#39;the byte size of a stack page&#39;),<br>
+                       {       67 to: 69.      &#39;reserved for more Cog-related info&#39; },<br>
+                       #(      70      &#39;the vmProxyMajorVersion (the interpreterProxy VM_MAJOR_VERSION)&#39;<br>
+                               71      &#39;the vmProxyMinorVersion (the interpreterProxy VM_MINOR_VERSION)&#39;)]<br>
+               ifFalse:<br>
+                       [#()])<br>
-       (isCog ifTrue:<br>
-               [#(<br>
-                       41      &#39;imageFormatVersion for the VM&#39;<br>
-                       42      &#39;number of stack pages in use&#39;<br>
-                       43      &#39;desired number of stack pages (stored in image file header, max 65535)&#39;<br>
-                       44      &#39;size of eden, in bytes&#39;<br>
-                       45      &#39;desired size of eden, in bytes (stored in image file header)&#39;<br>
-                       46      &#39;machine code zone size, in bytes&#39;<br>
-                       47      &#39;desired machine code zone size (0 =&gt; default 1Mb)&#39;<br>
-                       48      &#39;various header flags.  See getCogVMFlags.&#39;<br>
-                       49      &#39;max size the image promises to grow the external semaphore table to&#39;),<br>
-               (isSpur<br>
-                       ifFalse:<br>
-                               [{      50 to: 54.      &#39;reserved for VM parameters that persist in the image (such as size of eden above)&#39;.<br>
-                                       55 to: 56.      &#39;specific to Spur&#39; }]<br>
-                       ifTrue:<br>
-                               [{      50 to: 53.      &#39;reserved for VM parameters that persist in the image (such as size of eden above)&#39; },<br>
-                               #(      54                      &#39;total free old space&#39;<br>
-                                       55                      &#39;ratio of growth and image size at or above which a GC will be performed post scavenge&#39;)]),<br>
-               #(      56      &#39;number of process switches since startup&#39;<br>
-                       57      &#39;number of ioProcessEvents calls since startup&#39;<br>
-                       58      &#39;number of forceInterruptCheck calls since startup&#39;<br>
-                       59      &#39;number of check event calls since startup&#39;<br>
-                       60      &#39;number of stack page overflows since startup&#39;<br>
-                       61      &#39;number of stack page divorces since startup&#39;<br>
-                       62      &#39;compiled code compactions since startup&#39;<br>
-                       63      &#39;total milliseconds in compiled code compactions since startup&#39;<br>
-                       64      &#39;the number of methods that currently have jitted machine-code&#39;<br>
-                       65      &#39;whether the VM supports MULTIPLE_BYTECODE_SETS or not.&#39;<br>
-                       66      &#39;the byte size of a stack page&#39;),<br>
-               {       67 to: 69.      &#39;reserved for more Cog-related info&#39; },<br>
-               #(      70      &#39;the vmProxyMajorVersion (the interpreterProxy VM_MAJOR_VERSION)&#39;<br>
-                       71      &#39;the vmProxyMinorVersion (the interpreterProxy VM_MINOR_VERSION)&#39;)])<br>
        pairsDo: [:idx :desc | | value values |<br>
                aStream nextPut: $#.<br>
                idx isInteger<br>
                        ifTrue:<br>
                                [value := vmParameters at: idx.<br>
                                 aStream print: idx; tab; nextPutAll: ((value isInteger and: [idx ~= 41]) ifTrue: [value asStringWithCommas] ifFalse: [value printString])]<br>
                        ifFalse:<br>
                                [value := vmParameters at: idx first.<br>
                                 aStream print: idx first; next: 2 put: $.; print: idx last; tab.<br>
                                 values := idx collect: [:i| vmParameters at: i].<br>
                                 values asSet size = 1<br>
                                        ifTrue: [aStream print: value]<br>
                                        ifFalse: [values do: [:v| aStream print: v] separatedBy: [aStream nextPutAll: &#39;, &#39;]]].<br>
                aStream tab; nextPutAll: desc; cr]!<br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div>