[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
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:
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
../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 <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
>
> #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
>
-------------- 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