[Vm-dev] some hand holding with git and the pharovm tree please...

Eliot Miranda eliot.miranda at gmail.com
Thu Jan 23 23:20:24 UTC 2014

Hi All,

    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://

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

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?

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?

e.g. in the Cog svn repository you'd do
grep primitiveInterpreterSourceVersion src/vm/*.c src/plugins/*/*.c
and you'd have an answer.

I tried
    cd mc/VMMaker-oscog.package/instance
    grep primitiveInterpreterSourceVersion *.st
and the lack of reply makes me think it doesn't exist.  Hence from

!VirtualMachine methodsFor: 'accessing' stamp: 'MarcusDenker 5/8/2013
        "The use of this primitive not recommended. Not all VMs providing

        "Answer a string corresponding to the version of the interpreter
        This represents the version level of the Smalltalk source code
        and various plugins) that is translated to C by a CCodeGenerator,
as distinct
        from the external platform source code, typically written in C and
        separately for each platform. An optional primitive is invoked that
may not
        be available on all virtual machines."

        "Smalltalk vm interpreterSourceVersion"

        <primitive: 'primitiveInterpreterSourceVersion'>
        ^ self getSystemAttribute: 1009! !

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
(which was written to be extended to satisfy us all).  It reads

 * A set of definitions for C source code control systems, to provide
 * and definitive version information to the VM.
 * Currently instantiated only for Subversion.  Please add definitions for
 * other repositories as appropriate.
 * I guess a good way to manage this is to edit the below define list to
 * appropriate the repository type, and then that's the extent of the fork.
 * Eliot Miranda
 * eliot.miranda at gmail.com
 * 15 July 2011

#include "vmVersionInfo.h" // defines REVISION_STRING

# error "Revision information not specified"

static char *sourceVersionString()

which is wrong.  I *didn't* write this.  I wrote something quite different
and you should have edited it to reflect that.

But alas, when I try
find . -iname vmVersionInfo.h
I find...nothing.

hmph. stymied.  frustrated.  confused.  hence this missive.

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140123/04498bae/attachment-0001.htm

More information about the Vm-dev mailing list