<div dir="ltr">Hi All,<div><br></div><div>    in trying to help Clément with his Sista work on Cog I&#39;m trying to look at the latest version of pharovm.  I&#39;ve been using git://<a href="http://gitorious.org/cogvm/blessed">gitorious.org/cogvm/blessed</a>.<br clear="all">
<div><br></div><div><br></div><div>I cloned it on December 2nd, and just did a git fetch, but I see no changes to any files other than .git/FETCH_HEAD and .git/ORIG_HEAD.  How do I update the files to their current state (I use svn &amp; mercurial, have used sccs, rcs &amp; sccs, and it&#39;s such a pain having to learn yet another f***ing sccs)?</div>
<div><br></div><div>Further, I see no generated files such as gcc3x-cointerp.c or cogit.c.  Why not?  Do you always fire up an image and freshly generate the C source??  If not, where do I find it?</div><div><br></div><div>
All this is to answer the simple question of whether the blessed pharo vm contains primitiveInterpreterSourceVersion.  How would you answer that question without running the VM?</div><div><br></div><div>e.g. in the Cog svn repository you&#39;d do</div>
<div>grep primitiveInterpreterSourceVersion src/vm/*.c src/plugins/*/*.c</div><div>and you&#39;d have an answer.</div><div><br></div><div>I tried</div><div>    cd mc/VMMaker-oscog.package/instance</div><div>    grep primitiveInterpreterSourceVersion *.st</div>
<div>and the lack of reply makes me think it doesn&#39;t exist.  Hence from</div><div><br></div><div><div>!VirtualMachine methodsFor: &#39;accessing&#39; stamp: &#39;MarcusDenker 5/8/2013 11:51&#39;!</div><div>interpreterSourceVersion</div>
<div>        &quot;The use of this primitive not recommended. Not all VMs providing that&quot;</div><div><br></div><div>        &quot;Answer a string corresponding to the version of the interpreter source.</div><div>        This represents the version level of the Smalltalk source code (interpreter</div>
<div>        and various plugins) that is translated to C by a CCodeGenerator, as distinct</div><div>        from the external platform source code, typically written in C and managed</div><div>        separately for each platform. An optional primitive is invoked that may not</div>
<div>        be available on all virtual machines.&quot;</div><div><br></div><div>        &quot;Smalltalk vm interpreterSourceVersion&quot;</div><div><br></div><div>        &lt;primitive: &#39;primitiveInterpreterSourceVersion&#39;&gt;</div>
<div>        ^ self getSystemAttribute: 1009! !</div></div><div><br></div><div>I can tell I need to look at the implementation of sourceVersionString in platforms/Cross/vm/sqSCCSVersion.h, which, despite all my best efforts, has diverged completely (and IMO unnecessarily) from <a href="http://www.squeakvm.org/svn/squeak/branches/Cog/platforms/Cross/vm/sqSCCSVersion.h">http://www.squeakvm.org/svn/squeak/branches/Cog/platforms/Cross/vm/sqSCCSVersion.h</a>, (which was written to be extended to satisfy us all).  It reads</div>
<div><br></div><div><div>/*</div><div> * A set of definitions for C source code control systems, to provide accurate</div><div> * and definitive version information to the VM.</div><div> *</div><div> * Currently instantiated only for Subversion.  Please add definitions for</div>
<div> * other repositories as appropriate.</div><div> *</div><div> * I guess a good way to manage this is to edit the below define list to select</div><div> * appropriate the repository type, and then that&#39;s the extent of the fork.</div>
<div> *</div><div> * Eliot Miranda</div><div> * <a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a></div><div> * 15 July 2011</div><div> */</div><div><br></div><div><br></div><div>#include &quot;vmVersionInfo.h&quot; // defines REVISION_STRING</div>
<div><br></div><div>#ifndef REVISION_STRING</div><div># error &quot;Revision information not specified&quot;</div><div>#endif</div><div><br></div><div>static char *sourceVersionString()</div><div>{</div><div>    return REVISION_STRING;</div>
<div>}</div></div><div><br></div><div>which is wrong.  I *didn&#39;t* write this.  I wrote something quite different and you should have edited it to reflect that.</div><div><br></div><div>But alas, when I try</div><div>find . -iname vmVersionInfo.h<br>
</div><div>I find...nothing.</div><div><br></div><div>hmph. stymied.  frustrated.  confused.  hence this missive.</div><div><br></div><div>P.S&gt;  What I&#39;m really trying to do is get my VM simulator to say it&#39;s a Pharo VM, so I can simulate Clément&#39;s Sista image and fix the infrastructure he&#39;s trying to use for speculative inlining/adaptive optimization.  So this is in aid of a (much) faster Pharo VM.  Hence helpful answers only please.</div>
<div>-- </div>best,<div>Eliot</div>
</div></div>