[Vm-dev] source version info

Eliot Miranda eliot.miranda at gmail.com
Sun Feb 6 20:34:53 UTC 2011


Hi All,

    in building up to the VM releases for 4.2 I would like to add meaningful
source info to all VMs in a consistent way.  The main rationale here is to
know exactly what source a VM was built from so that there's a chance of
recreating it, hence to be able to use gdb-style debugging tools against
source, and reduced chance of putting out different VMs that answer the same
version info.

There are two elements to the source info.  One is the VMMaker package.
 This is in the Cog VMs in getSystemAttribute: 1007 (Interpreter class) and
getSystemAttribute: 1008 (Cogit class, if any).  But there's no similar
specific info for the ensure VM source (platform tree, and
hopefully generated source aincluded in it).  Rather than just provide a
revision in whatever version control system we're using I'd like us to use a
url and a version identifier, e.g. "
http://www.squeakvm.org/svn/squeak/branches/Cog 2359".  This could be
getSystemAttribute: 1009 but that would probably break code that enumerates
attributes until it gets an empty one since the StackInterpreter and
Interpreter don;t have a Cogit class.  So, if there's agreement on including
the url/version I would make that 1007 and move the Interpreter class and
Cogit class to 1008 and 1009 respectively.   Since various version control
systems don't necessarily provide a convenient way to derive the version
info I suggest we modify the build system to include a file that is not
included in the source tree that nas to be manually edited to contain the
relevant string.  We can then provide helpful info close to the error
location (when one tries to compile the file when its missing) that explain
how to fill in the file.  (better ideas?)

Also, the three platforms define their version info SQ_VERSION and
VM_VERSION in different places and using different mechanisms, which makes
it hard to keep things consistent.  I'd like to see these defined in
platforms/Cross/vm/ something (platforms/Cross/vm/sqVersion.h
? platforms/Cross/vm/sq.h?).  SQ_VERSION appears to be unused so I'm nuking
it from the Cog sources.  Does this make sense?


best
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110206/b4f2f42d/attachment.htm


More information about the Vm-dev mailing list