<br><br><div class="gmail_quote">On Tue, Mar 12, 2013 at 1:45 PM, David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
On Tue, Mar 12, 2013 at 11:25:23AM -0700, Eliot Miranda wrote:<br>
&gt;<br>
&gt; On Tue, Mar 12, 2013 at 11:04 AM, Nicolas Cellier &lt;<br>
&gt; <a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; 2013/3/12 Nicolas Cellier &lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt;:<br>
&gt; &gt; &gt; 2013/3/12 Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;:<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Hi Dave,<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;     thanks, but...<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; On Sat, Mar 9, 2013 at 7:06 AM, &lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt; wrote:<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt; Item was changed:<br>
&gt; &gt; &gt;&gt;&gt;   ----- Method: VMMaker class&gt;&gt;versionString (in category &#39;version<br>
&gt; &gt; testing&#39;) -----<br>
&gt; &gt; &gt;&gt;&gt;   versionString<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;         &quot;VMMaker versionString&quot;<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt; +       ^&#39;4.10.13&#39;!<br>
&gt; &gt; &gt;&gt;&gt; -       ^&#39;4.10.12&#39;!<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; I *hate* the above.  It is busy work (it must be done manually before<br>
&gt; &gt; each commit).  It is really easy to forget to do.  It is meaningless<br>
&gt; &gt; (because it is easy to forget it makes no guarantee that it identifies a<br>
&gt; &gt; unique version). It is not a good search key.  Mapping the version number<br>
&gt; &gt; into the software configuration that produced the C code is hard (you have<br>
&gt; &gt; to trawl through Monticello packages searching for the version with the<br>
&gt; &gt; relevant version string; you can script this but fer christ&#39;s sake...).<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Using the Monticello package name and version (with the dirty marker)<br>
&gt; &gt; on the other hand is automatic, is a really good key, and is meaningful.<br>
&gt; &gt;  So please can we discard VMMaker versionString and move to using the<br>
&gt; &gt; Monticello package?  Please?  Please.<br>
&gt; &gt; &gt;&gt; --<br>
&gt; &gt; &gt;&gt; best,<br>
&gt; &gt; &gt;&gt; Eliot<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; +1, the two requirements are<br>
&gt; &gt; &gt; - automatic<br>
&gt; &gt; &gt; - meaningful<br>
&gt; &gt;<br>
<br>
</div></div>The primary requirement is that it needs to work with Ian&#39;s cmake build<br>
procedure in trunk, such that the build automatically creates a name for<br>
the installation subdirectory, and such that the name corresponds to what<br>
you see when you do &quot;squeak -version&quot;.<br></blockquote><div><br></div><div>OK.  Here&#39;s what happens with the old automake-based linux build for Cog.</div><div><br></div><div>oscogvm/coglinux/squeak -version</div>
<div>4.0-2701 #1 Mon Mar 11 17:31:47 PDT 2013 gcc 4.1.2</div><div>CoInterpreter VMMaker.oscog-eem.272 uuid: 8f4167f2-5bf0-4d90-9b7f-5355c741c68f Mar 11 2013</div><div>StackToRegisterMappingCogit VMMaker.oscog-eem.270 uuid: 014f0153-bb02-49b7-b544-d8f3ac2deef6 Mar 11 2013</div>
<div>VM: r2701 <a href="http://www.squeakvm.org/svn/squeak/branches/Cog">http://www.squeakvm.org/svn/squeak/branches/Cog</a></div><div>Plugins: r2545 <a href="http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins">http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins</a></div>
<div>Linux mcqfes 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux</div><div>plugin path: oscogvm/coglinux/lib/squeak/4.0-2701 [default: /home/eliot/all/Cog/oscogvm/coglinux/lib/squeak/4.0-2701/]</div>
<div><br></div><div>i.e. you get essentially the same info that you get for system attributes 1006 through 1009.  IMO thats a lot better.</div><div><br></div><div>The only thing poor here is that the version number I generate is always 4.0-.  That it uses the SVN checkin id is way better.  But the .0 is not good.  However it begs the question what changes cause the tenths to tick up?</div>
<div><br></div><div>Summary, we can port the Cog version info and have squeak -version be really informative.  No problem.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">&gt; &gt; However, there is also a dependency on external source (platform...),<br>
&gt; &gt; and I think it is also included in COG id no?<br>
&gt; &gt;<br>
&gt;<br>
&gt; Yes.  To mark the generated sources, the Cog VMMaker does this:<br>
&gt;<br>
&gt; For each source file generated, the Cog CCodeGenerator adds a comment<br>
&gt; containing the Smalltalk class and its VMMaker version that is translated<br>
&gt; to C and the Slang class and its version, e.g. from src/vm/gcc3x-cointerp,c:<br>
&gt;<br>
&gt; /* Automatically generated by<br>
&gt;     CCodeGeneratorGlobalStructure VMMaker.oscog-eem.272 uuid:<br>
&gt; 8f4167f2-5bf0-4d90-9b7f-5355c741c68f<br>
&gt;    from<br>
&gt;     CoInterpreter VMMaker.oscog-eem.272 uuid:<br>
&gt; 8f4167f2-5bf0-4d90-9b7f-5355c741c68f<br>
&gt;  */<br>
&gt;<br>
<br>
</div>This is a very good and useful thing, but unrelated to the intended use<br>
of the version string.<br></blockquote><div><br></div><div>I disagree.  The only uses of the version string are a) to uniquely identify a version, and b) order versions in time.  The current version info fails to do that because it is only unique if the VMMaker committer remembers to update the version info.  The current version fails to order versions in time because there&#39;s no coordination between versionString in the trunk VMMaker, in my Cog branch or in the Pharo branch.  So its become meaningless.  Whereas Monticello packages and svn and/or git commit ids are ordered in time.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I&#39;m sure there are better ways to generate the version string, but it&#39;s<br>
not something that I&#39;m working on. Meanwhile, no we cannot discard the<br>
versionString, and I&#39;m happy to do the updates if other folks forget to<br>
do so.<br></blockquote><div><br></div><div>Why not?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Dave<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>