[Vm-dev] About VM version string

Mariano Martinez Peck marianopeck at gmail.com
Tue Apr 12 15:32:17 UTC 2011


On Tue, Apr 12, 2011 at 1:58 PM, David T. Lewis <lewis at mail.msen.com> wrote:

>
> On Tue, Apr 12, 2011 at 12:53:20PM +0200, Igor Stasenko wrote:
> >
> > Hello,
> >
> > i'd like to know what we can do to clean up the mess with Cog VM
> > versioning, so people could identify it more easily.
> >
> > Currently , what
> >
> > Smalltalk vmVersion shows is:
> >
> > Smalltalk vmVersion
> >
> >  'Croquet Closure Stack VM [StackInterpreter
> > VMMaker-oscog-IgorStasenko.Stasenko.49] StackVM VM 4.0.0'
> >
> > but it doesn't says anything about which version of platform sources
> > are used to build it.
> > Also, a version number VM 4.0.0 makes no sense..
> >
> > I'd really like to see what we can do to improve it.
>
> (this may be a duplicate response, I'm having mail problems today)
>
> The mechanism used in the standard VMMaker and Unix platform sources
> works well in practice. This uses VMMaker class>>versionString to
> identify the (approximate) version of Smalltalk sources, combined
> with the Subversion revision number identified at compile time.
>
> For the VMMaker side, I'd suggest adopting a similar (manually
> maintained) convention for #versionString, but also add a
> suffix to identify a cog VM versus interpreter VM. Thus if
> the versionString is '1.2.3' the Cog VM might use '1.2.3c'.
> The suffix identifier is helpful in the near term for maintaining
> separate installation directories on unix, and possibly becomes
> irrelevant whenever we get the code bases merged.
>
> For the platforms sources on the git mirror with CMMakerVMMaker
> build, some mechanism would be needed to identify version level.
> Ian's build procedure on unix with Subversion works well for
> this, but I don't know how to do the equivalent on the git
> mirror. But I'm not really familiar with git, so hopefully
> someone can suggest something here.
>
>
For SVN you have the versions. Let say 2023. In Git, each commit has a
commit hash, which looks something like:
f3fe94c828f66cd0e7c37cfa3434e384ff65915e
You can look at them throught gitorious or by doing "git log". Example:

;-) /usr/local/git/bin/git log
commit f3fe94c828f66cd0e7c37cfa3434e384ff65915e
Merge: 1af7478 f123973
Author: Esteban Lorenzano <estebanlm at gmail.com>
Date:   Mon Apr 4 08:46:21 2011 -0300

    Merge branch 'master' of gitorious.org:cogvm/blessed into integration

commit f1239738a1f14f6f067465e71dc24fd84f5a041e
Author: Igor Stasenko <siguctua at gmail.com>
Date:   Mon Apr 4 12:49:55 2011 +0200

    Merge branch 'master' of gitorious.org:cogvm/blessed into svn-merge

    Conflicts:
        image/VMMaker-Squeak4.1.changes
        platforms/iOS/vm/iPhone/iPhone.image
        platforms/unix/vm/sqUnixMain.c
        platforms/win32/vm/sqWin32Window.c
        src/plugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c
        src/plugins/HostWindowPlugin/HostWindowPlugin.c
        src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c
        src/plugins/SoundPlugin/SoundPlugin.c
        src/plugins/SqueakFFIPrims/SqueakFFIPrims.c
        src/vm/cointerp.c
        src/vm/cointerp.h
        src/vm/gcc3x-cointerp.c

commit 1af7478875b2d534c3b6cdc89d8244ff3ea4ec65
Author: Esteban Lorenzano <estebanlm at gmail.com>
Date:   Sun Apr 3 09:09:20 2011 -0300

    added LocalePlugin




However, only the 4 first characters are usually enough to specify a
version. So for example in Git you can do:

git checkout 1af7478875b2d534c3b6cdc89d8244ff3ea4ec65

or

git checkout 1af7

So...we can have the same as the SVN if we want.

Cheers

-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110412/6204275d/attachment.htm


More information about the Vm-dev mailing list