<div dir="ltr">Hi Paul,<div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 24, 2014 at 8:13 PM, Paul DeBruicker <span dir="ltr">&lt;<a href="mailto:pdebruic@gmail.com" target="_blank">pdebruic@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi Eliot,<br>
<br>
<br>
When you publish these are there things the general community can do to help<br>
you out with testing?  Things you&#39;re interested in knowing/learning?<br></blockquote><div><br></div><div>Yes.  I&#39;d love to know if the VMs are good or bad.  For example, if you have substantial benchmarks (perhaps a build script you often run) I&#39;d love to know whether builds have any marked impact on performance, or whether they break.</div>
<div><br></div><div>Right now there are two CI jobs that test the VMs, one by Frank Shearer that runs the trunk Squeak test suite, and a series of substantial tests at Cadence that bootstrap Newspeak, build our Glue environment and run lots of tests and some benchmarks.  So the VMs do get some coverage.  But with VM performance and reliability more is always better (at least I&#39;m not at the stage where I&#39;m overwhelmed with data).</div>
<div><br></div><div>And of course at the moment I&#39;m very interested in any v3 vs Spur performance comparisons.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks for whatever guidance you care to provide<br></blockquote><div><br></div><div>Thanks very very much for asking!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Paul<br>
<br>
Eliot Miranda-2 wrote<br>
<div><div class="h5">&gt; ... at <a href="http://www.mirandabanda.org/files/Cog/VM/VM.r3056/" target="_blank">http://www.mirandabanda.org/files/Cog/VM/VM.r3056/</a>.<br>
&gt;<br>
&gt; CogVM binaries as per VMMaker.oscog-eem.832/r3056<br>
&gt; Add the time zone to the version info on Mac OS X and Win32.<br>
&gt;<br>
&gt; Fix bug in assigning parameter 55 (growth ratio at which to do a global<br>
&gt; GC).<br>
&gt;<br>
&gt; Add vmParameter 52 to answer the capacity of the root table<br>
&gt; (in Spur a.k.a. the rememberedSet).<br>
&gt;<br>
&gt; In the wake of the inlining change below (see Slang:), split<br>
&gt; lookupInMethodCacheSel:classTag: into<br>
&gt; inlineLookupInMethodCacheSel:classTag:,<br>
&gt; and use the inline version in internalFindNewMethod.<br>
&gt;<br>
&gt; Fix printStringOf: (used in e.g. frame print) to not print crs<br>
&gt; that would cause previous info to be overwritten.<br>
&gt;<br>
&gt; Spur:<br>
&gt; Fix bug with class table management and two-way become.  Because two-way<br>
&gt; become<br>
&gt; may do an in-place swap obj1 &amp; obj2 in<br>
&gt; SpurMemoryManager&gt;&gt;doBecome:and:copyHash:<br>
&gt; may not be forwarded after the inner become.  Hence they should not be<br>
&gt; followed<br>
&gt; if not forwarded.  The bug manifested as Object&#39;s identityHash changing:<br>
&gt; superclass is the first slot in a class. Following an unforwarded subclass<br>
&gt; of<br>
&gt; object yields Object.  Setting the hash bits of the followed object<br>
&gt; smashes<br>
&gt; Object&#39;s identityHash.  Thanks to Stephane Rollandin for finding the bug.<br>
&gt;<br>
&gt; More rationalization of the class table management post become.  Now no<br>
&gt; post<br>
&gt; become scan of the class table is necessary at all.<br>
&gt;<br>
&gt; Add vm parameter 53 to answer the number of segments.<br>
&gt;<br>
&gt; Move the rememberedSet into a pinned object in oldSpace.  Allow it to grow<br>
&gt; on demand, starting at 1k entries, doubling on each grow.  Make sure to<br>
&gt; abort<br>
&gt; if the attempt to grow the remembered set fails.  Try to grow by another<br>
&gt; 1k<br>
&gt; slots if doubling fails, then abort.<br>
&gt;<br>
&gt; Revise markAndTrace: given that markAndShouldScan: is inlined within it<br>
&gt; (see<br>
&gt; Slang changes below).  Move the ephemeron processing into<br>
&gt; markAndShouldScan:<br>
&gt; out of the now unused numStringSlotsOf:ephemeronInactiveIf:<br>
&gt; circumlocution.<br>
&gt; Add activeAndDeferredScan: and numStrongSlotsOfInephemeral: in place of<br>
&gt; the<br>
&gt; double negative inactiveOrFailedToDeferScan: and hence inline<br>
&gt; numStrongSlotsOfInephemeral:.  Increase the traceImmediatelySlotLimit.<br>
&gt;  These<br>
&gt; changes plus the 2 repeats for compaction speed up global GC by at least<br>
&gt; x2.<br>
&gt;<br>
&gt; Change the defaultEdenBytes to 4Mb.<br>
&gt;<br>
&gt; Allow the number of compaction passes to vary, 2 on GC, 3 on GC for<br>
&gt; snapshot.<br>
&gt;<br>
&gt; Slang:<br>
&gt; Add support for inlining into the condition of ifTrue:/ifFalse:<br>
&gt; when it is marked as inline. Transform<br>
&gt; expr1 ifTrue:/ifFalse: [^expr2]<br>
&gt; by inlining ^expr2 into expr1.  Transform<br>
&gt; expr ifTrue:/ifFalse: [statements]<br>
&gt; by replacing ^boolean occurrences in expr with gotos.<br>
&gt; --<br>
&gt; Aloha,<br>
&gt; Eliot<br><br>
</div></div>--<br>
View this message in context: <a href="http://forum.world.st/New-CogVMs-available-tp4769982p4770016.html" target="_blank">http://forum.world.st/New-CogVMs-available-tp4769982p4770016.html</a><br>
Sent from the Squeak VM mailing list archive at Nabble.com.<br>
</blockquote></div><div><br></div>-- <br>Mahalo,<div>Eliot</div>
</div></div>