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

Ronie Salgado roniesalg at gmail.com
Fri Jan 24 00:15:21 UTC 2014


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:

For cloning, you only need to do in the command line:
git clone https://github.com/pharo-project/pharo-vm

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

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.

Ronie Salgado

2014/1/24 Eliot Miranda <eliot.miranda at gmail.com>

> 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
>  * eliot.miranda at gmail.com
>  * 15 July 2011
>  */
> #include "vmVersionInfo.h" // defines 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140124/a9f86366/attachment.htm

More information about the Vm-dev mailing list