[Vm-dev] [commit] r2546 - Add version infor for the Cross/plugins tree. Add a -version switch to win32.

commits at squeakvm.org commits at squeakvm.org
Thu Apr 5 19:21:49 UTC 2012


Author: eliot
Date: 2012-04-05 12:21:49 -0700 (Thu, 05 Apr 2012)
New Revision: 2546

Added:
   branches/Cog/scripts/svnciplugins
Modified:
   branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
   branches/Cog/platforms/Mac OS/vm/sqMacMain.c
   branches/Cog/platforms/unix/vm/sqUnixMain.c
   branches/Cog/platforms/win32/vm/sqWin32Intel.c
   branches/Cog/platforms/win32/vm/sqWin32Window.c
Log:
Add version infor for the Cross/plugins tree.  Add a -version switch to win32.


Modified: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
===================================================================
--- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h	2012-04-05 18:48:38 UTC (rev 2545)
+++ branches/Cog/platforms/Cross/vm/sqSCCSVersion.h	2012-04-05 19:21:49 UTC (rev 2546)
@@ -21,6 +21,7 @@
 #define MERCURIAL 0
 #define GIT 0
 
+#include "../plugins/sqPluginsSCCSVersion.h"
 
 #if SUBVERSION
 static char SvnRawRevisionString[] = "$Rev$";
@@ -29,9 +30,6 @@
 static char SvnRawRepositoryURL[] = "$URL$";
 # define URL_START (SvnRawRepositoryURL + 6)
 
-static long
-revisionAsLong() { return atol(REV_START); }
-
 static char *
 revisionAsString()
 {
@@ -52,9 +50,6 @@
 # undef REV_START
 # undef URL_START
 #else /* SUBVERSION */
-static long
-revisionAsLong() { return -1; }
-
 static char *
 revisionAsString() { return "?"; }
 
@@ -64,12 +59,28 @@
 
 static char *sourceVersion = 0;
 
-static char *sourceVersionString()
+static char *
+sourceVersionString(char separator)
 {
 	if (!sourceVersion) {
-		int len = strlen(revisionAsString()) + strlen(repositoryURL()) + 3;
+#if WIN32
+		char *fmt = "VM: r%s %s%cPlugins: r%s %s";
+		int len = strlen(fmt)
+				+ strlen(revisionAsString())
+				+ strlen(repositoryURL())
+				+ strlen(pluginsRevisionAsString())
+				+ strlen(pluginsRepositoryURL());
 		sourceVersion = malloc(len);
-		sprintf(sourceVersion,"r%s %s",revisionAsString(),repositoryURL());
+		sprintf(sourceVersion, fmt,
+				revisionAsString(), repositoryURL(),
+				separator,
+				pluginsRevisionAsString(), pluginsRepositoryURL());
+#else
+		asprintf(&sourceVersion, "VM: r%s %s Plugins: r%s %s",
+				revisionAsString(), repositoryURL(),
+				separator,
+				pluginsRevisionAsString(), pluginsRepositoryURL());
+#endif
 	}
 	return sourceVersion;
 }


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Tue Apr  3 14:23:49 PDT 2012
   + Thu Apr  5 12:21:16 PDT 2012

Modified: branches/Cog/platforms/Mac OS/vm/sqMacMain.c
===================================================================
--- branches/Cog/platforms/Mac OS/vm/sqMacMain.c	2012-04-05 18:48:38 UTC (rev 2545)
+++ branches/Cog/platforms/Mac OS/vm/sqMacMain.c	2012-04-05 19:21:49 UTC (rev 2546)
@@ -611,7 +611,7 @@
 #endif
 
 	  if (id == 1009) /* source tree version info */
-		return sourceVersionString();
+		return sourceVersionString(' ');
 
 // 		return "Mac Carbon 3.8.18b4 29-May-08 >02DA4BFD-4050-4372-8DBB-9582DA7D0218<";
 // 		return "Mac Carbon 3.8.18b3 10-Apr-08 >DC0EAF5D-C46C-479D-B2A3-DBD4A2DF95A8<";
@@ -945,7 +945,7 @@
 #endif
   if (verbose)
     sprintf(info+strlen(info), "Revision: ");
-  sprintf(info+strlen(info), "%s\n", sourceVersionString());
+  sprintf(info+strlen(info), "%s\n", sourceVersionString('\n'));
   return info;
 }
 #if COGVM

Modified: branches/Cog/platforms/unix/vm/sqUnixMain.c
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixMain.c	2012-04-05 18:48:38 UTC (rev 2545)
+++ branches/Cog/platforms/unix/vm/sqUnixMain.c	2012-04-05 19:21:49 UTC (rev 2546)
@@ -481,7 +481,7 @@
 #endif
 
 	  case 1009: /* source tree version info */
-		return sourceVersionString();
+		return sourceVersionString(' ');
 
       default:
 	if ((id - 2) < squeakArgCnt)
@@ -1506,7 +1506,7 @@
 #endif
   if (verbose)
     sprintf(info+strlen(info), "Revision: ");
-  sprintf(info+strlen(info), "%s\n", sourceVersionString());
+  sprintf(info+strlen(info), "%s\n", sourceVersionString('\n'));
   if (verbose)
     sprintf(info+strlen(info), "Build host: ");
   sprintf(info+strlen(info), "%s\n", ux_version);

Modified: branches/Cog/platforms/win32/vm/sqWin32Intel.c
===================================================================
--- branches/Cog/platforms/win32/vm/sqWin32Intel.c	2012-04-05 18:48:38 UTC (rev 2545)
+++ branches/Cog/platforms/win32/vm/sqWin32Intel.c	2012-04-05 19:21:49 UTC (rev 2546)
@@ -756,6 +756,58 @@
   gdInfoString = _strdup(tmpString);
 }
 
+char *
+getVersionInfo(int verbose)
+{
+#if STACKVM
+  extern char *__interpBuildInfo;
+# define INTERP_BUILD __interpBuildInfo
+# if COGVM
+  extern char *__cogitBuildInfo;
+# endif
+#else
+# define INTERP_BUILD interpreterVersion
+#endif
+  char *info= (char *)malloc(4096);
+  info[0]= '\0';
+
+  sprintf(info+strlen(info), "%s\n", vmBuildString);
+  if (verbose)
+    sprintf(info+strlen(info), "Built from: ");
+  sprintf(info+strlen(info), "%s\n", INTERP_BUILD);
+#if COGVM
+  if (verbose)
+    sprintf(info+strlen(info), "With: ");
+  sprintf(info+strlen(info), "%s\n", GetAttributeString(1008)); /* __cogitBuildInfo */
+#endif
+  if (verbose)
+    sprintf(info+strlen(info), "Revision: ");
+  sprintf(info+strlen(info), "%s\n", sourceVersionString('\n'));
+  return info;
+}
+
+
+static void
+versionInfo(void)
+{
+#if 0
+	/* we could create a console but to version the non-consoel VM it is
+	 * sufficient to do e.g. Squeak.exe >foo; cat foo.  But feel free to
+	 * add the code if you have the energy ;)
+	 */
+	DWORD mode;
+	HANDLE stdouth = GetStdHandle(STD_OUTPUT_HANDLE);
+
+	if (GetConsoleMode(stdouth, &mode) != 0) {
+		char *vi = getVersionInfo(0);
+		WriteConsole(stdouth, vi, strlen(vi), 0, 0);
+	}
+	else
+#endif
+		printf("%s", getVersionInfo(0));
+	exit(0);
+}
+
 /****************************************************************************/
 /*                      Error handling                                      */
 /****************************************************************************/
@@ -855,7 +907,7 @@
     fprintf(f,"Cogit Build: %s\n", __cogitBuildInfo);
 # endif
 #endif
-    fprintf(f,"Source Version: %s\n", sourceVersionString());
+    fprintf(f,"Source Version: %s\n", sourceVersionString('\n'));
     fflush(f);
     fprintf(f,"\n"
 	    "Current byte code: %d\n"
@@ -1521,6 +1573,7 @@
 	if      (!strcmp(argv[0], "-help"))		{ 
 		printUsage(1);
 		return 1; }
+	else if (!strcmp(argv[0], "-version"))	{ versionInfo();	return 1; }
 	else if (!strcmp(argv[0], "-headless")) { fHeadlessImage = true; return 1; }
 	else if (!strcmp(argv[0], "-headfull")) { fHeadlessImage = false; return 1;}
 #ifdef  VISTA_SECURITY /* IE7/Vista protected mode support */

Modified: branches/Cog/platforms/win32/vm/sqWin32Window.c
===================================================================
--- branches/Cog/platforms/win32/vm/sqWin32Window.c	2012-04-05 18:48:38 UTC (rev 2545)
+++ branches/Cog/platforms/win32/vm/sqWin32Window.c	2012-04-05 19:21:49 UTC (rev 2546)
@@ -2793,7 +2793,7 @@
 #endif
 
 	  case 1009: /* source tree version info */
-		return sourceVersionString();
+		return sourceVersionString(' ');
 
     /* Windows internals */
     case 10001: /* addl. hardware info */

Added: branches/Cog/scripts/svnciplugins
===================================================================
--- branches/Cog/scripts/svnciplugins	                        (rev 0)
+++ branches/Cog/scripts/svnciplugins	2012-04-05 19:21:49 UTC (rev 2546)
@@ -0,0 +1,6 @@
+#!/bin/sh
+# checkin script for subverison that serves to cause
+# platforms/Cross/plugins/sqPluginsSCCSVersion.h to be checked-in so that its version
+# info reflects that of the current check-in.
+svn propset checkindate "`date`" platforms/Cross/plugins/sqPluginsSCCSVersion.h
+svn ci platforms/Cross/plugins


Property changes on: branches/Cog/scripts/svnciplugins
___________________________________________________________________
Added: svn:executable
   + *



More information about the Vm-dev mailing list