<div dir="ltr">Hi All,<div><br></div><div> in trying to help Clément with his Sista work on Cog I'm trying to look at the latest version of pharovm. I'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 & mercurial, have used sccs, rcs & sccs, and it'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'd do</div>
<div>grep primitiveInterpreterSourceVersion src/vm/*.c src/plugins/*/*.c</div><div>and you'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't exist. Hence from</div><div><br></div><div><div>!VirtualMachine methodsFor: 'accessing' stamp: 'MarcusDenker 5/8/2013 11:51'!</div><div>interpreterSourceVersion</div>
<div> "The use of this primitive not recommended. Not all VMs providing that"</div><div><br></div><div> "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."</div><div><br></div><div> "Smalltalk vm interpreterSourceVersion"</div><div><br></div><div> <primitive: 'primitiveInterpreterSourceVersion'></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'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 "vmVersionInfo.h" // defines REVISION_STRING</div>
<div><br></div><div>#ifndef REVISION_STRING</div><div># error "Revision information not specified"</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'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> What I'm really trying to do is get my VM simulator to say it's a Pharo VM, so I can simulate Clément's Sista image and fix the infrastructure he'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>