[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