some hand holding with git and the pharovm tree please...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

some hand holding with git and the pharovm tree please...

Eliot Miranda-2
 
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://gitorious.org/cogvm/blessed.


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)?

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 11:51'!
interpreterSourceVersion
        "The use of this primitive not recommended. Not all VMs providing that"

        "Answer a string corresponding to the version of the interpreter source.
        This represents the version level of the Smalltalk source code (interpreter
        and various plugins) that is translated to C by a CCodeGenerator, as distinct
        from the external platform source code, typically written in C and managed
        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 http://www.squeakvm.org/svn/squeak/branches/Cog/platforms/Cross/vm/sqSCCSVersion.h, (which was written to be extended to satisfy us all).  It reads

/*
 * A set of definitions for C source code control systems, to provide accurate
 * 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 select
 * appropriate the repository type, and then that's the extent of the fork.
 *
 * Eliot Miranda
 * 15 July 2011
 */


#include "vmVersionInfo.h" // defines REVISION_STRING

#ifndef REVISION_STRING
# error "Revision information not specified"
#endif

static char *sourceVersionString()
{
    return REVISION_STRING;
}

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.
-- 
best,
Eliot
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] some hand holding with git and the pharovm tree please...

Ronie Salgado
 
Hello,

I started working with the Pharo VM not too much ago, but the latest bleeding edge Pharo VM code is placed on the GitHub hosted repository: https://github.com/pharo-project/pharo-vm

For cloning, you only need to do in the command line:

For building the Pharo VM, you need to follow the instructions that are better formatted in the GitHub page. I only have a bit of experience with building it at Linux, where there is a small problem with the generated build.sh script. From here I am going to explain a bit that problem, just in case, assuming that you have already taken a look at the GitHub page or the Readme in the repository.

The build.sh script tries to execute ../codegen-scripts/extract-commit-info.sh which is actually located in ../scripts/extract-commit-info.sh

When running that build.sh you could see an error about that path, then start making the whole project, until hitting a compilation error. For fixing that error, you need to run the ../scripts/extract-commit-info.sh from the build directory path, so it generates the missing file. Then, you can just run make. For subsequent builds, you don't have run ../scripts/extract-commit-info.sh all the time, unless you remove the whole build directory to do a new clean build.

Greetings,
Ronie Salgado



2014/1/24 Eliot Miranda <[hidden email]>
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://gitorious.org/cogvm/blessed.


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)?

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 11:51'!
interpreterSourceVersion
        "The use of this primitive not recommended. Not all VMs providing that"

        "Answer a string corresponding to the version of the interpreter source.
        This represents the version level of the Smalltalk source code (interpreter
        and various plugins) that is translated to C by a CCodeGenerator, as distinct
        from the external platform source code, typically written in C and managed
        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 http://www.squeakvm.org/svn/squeak/branches/Cog/platforms/Cross/vm/sqSCCSVersion.h, (which was written to be extended to satisfy us all).  It reads

/*
 * A set of definitions for C source code control systems, to provide accurate
 * 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 select
 * appropriate the repository type, and then that's the extent of the fork.
 *
 * Eliot Miranda
 * 15 July 2011
 */


#include "vmVersionInfo.h" // defines REVISION_STRING

#ifndef REVISION_STRING
# error "Revision information not specified"
#endif

static char *sourceVersionString()
{
    return REVISION_STRING;
}

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.
-- 
best,
Eliot