[Vm-dev] [commit] r2530 - Add 1007, 1008 & 1009 attribute info to version info on linux, & 1009 on Windows.

commits at squeakvm.org commits at squeakvm.org
Fri Feb 3 23:02:38 UTC 2012


Author: eliot
Date: 2012-02-03 15:02:38 -0800 (Fri, 03 Feb 2012)
New Revision: 2530

Modified:
   branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
   branches/Cog/platforms/Mac OS/vm/sqMacMain.c
   branches/Cog/platforms/Mac OS/vm/sqMacUnixCommandLineInterface.c
   branches/Cog/platforms/unix/vm/sqUnixMain.c
   branches/Cog/platforms/win32/vm/sqWin32Intel.c
   branches/Cog/platforms/win32/vm/sqWin32PluginSupport.c
Log:
Add 1007,1008 & 1009 attribute info to version info on linux, & 1009 on Windows.
Add -version option to Mac VM (with similar info to linux).
Fix compilation warning in sqWin32PluginSupport.c



Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Thu Feb  2 14:44:43 PST 2012
   + Fri Feb  3 15:01:19 PST 2012

Modified: branches/Cog/platforms/Mac OS/vm/sqMacMain.c
===================================================================
--- branches/Cog/platforms/Mac OS/vm/sqMacMain.c	2012-02-02 22:45:39 UTC (rev 2529)
+++ branches/Cog/platforms/Mac OS/vm/sqMacMain.c	2012-02-03 23:02:38 UTC (rev 2530)
@@ -152,6 +152,7 @@
 extern void dumpPrimTraceLog(void);
 extern BOOL NSApplicationLoad(void);
 static void fetchPrefrences(void);
+char *getVersionInfo(int verbose);
 
 
 /*** errors ***/
@@ -170,6 +171,7 @@
 	static sqInt printingStack = false;
 
 	printf("\n%s%s%s\n\n", msg, date ? " " : "", date ? date : "");
+	printf("%s\n\n", getVersionInfo(1));
 
 #if !defined(NOEXECINFO)
 	printf("C stack backtrace:\n");
@@ -262,13 +264,12 @@
 }
 
 static void
-sigusr1(int sig, siginfo_t *info, ucontext_t *uap)
+sigusr1(int sig, siginfo_t *info, void *uap)
 {
 	int saved_errno = errno;
 	time_t now = time(NULL);
 	char ctimebuf[32];
 	char crashdump[IMAGE_NAME_SIZE+1];
-	unsigned long pc;
 
 	if (!ioOSThreadsEqual(ioCurrentOSThread(),getVMOSThread())) {
 		pthread_kill(getVMOSThread(),sig);
@@ -287,7 +288,7 @@
 }
 
 static void
-sigsegv(int sig, siginfo_t *info, ucontext_t *uap)
+sigsegv(int sig, siginfo_t *info, void *uap)
 {
 	time_t now = time(NULL);
 	char ctimebuf[32];
@@ -907,7 +908,45 @@
 
 }
 
+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
+  extern char vmBuildString[];
+  CFStringRef versionString;
+  char *info= (char *)malloc(4096);
+  info[0]= '\0';
+
+  if (verbose)
+    sprintf(info+strlen(info), IMAGE_DIALECT_NAME " VM version: ");
+  sprintf(info+strlen(info), "%s ", VM_VERSION);
+  if ((versionString = CFBundleGetValueForInfoDictionaryKey(
+						CFBundleGetMainBundle(),
+						CFSTR("CFBundleVersion"))))
+    CFStringGetCString(versionString, info+strlen(info), 4095-strlen(info), gCurrentVMEncoding);
+  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());
+  return info;
+}
+#if COGVM
 /*
  * Support code for Cog.
  * a) Answer whether the C frame pointer is in use, for capture of the C stack

Modified: branches/Cog/platforms/Mac OS/vm/sqMacUnixCommandLineInterface.c
===================================================================
--- branches/Cog/platforms/Mac OS/vm/sqMacUnixCommandLineInterface.c	2012-02-02 22:45:39 UTC (rev 2529)
+++ branches/Cog/platforms/Mac OS/vm/sqMacUnixCommandLineInterface.c	2012-02-03 23:02:38 UTC (rev 2530)
@@ -152,6 +152,11 @@
   if      (!strcmp(argv[0], "-help"))		{ 
 	usage();
 	return 1; }
+  else if (!strcmp(argv[0], "-version")) {
+	extern char *getVersionInfo(int verbose);
+	printf("%s\n", getVersionInfo(0));
+	exit(0);
+  }
   else if (!strncmp(argv[0], "-psn_", 5)) { return 1; }
   else if (!strcmp(argv[0], "-headless")) { gSqueakHeadless = true; return 1; }
   else if (!strcmp(argv[0], "-headfull")) { gSqueakHeadless = false; return 1; }
@@ -280,6 +285,7 @@
 #endif
   printf("  -pathenc <enc>        set encoding for pathnames (default: macintosh)\n");
   printf("  -headless             run in headless (no window) mode (default: false)\n");
+  printf("  -version              print version information, then exit\n");
 }
 
 static void printUsageNotes(void)

Modified: branches/Cog/platforms/unix/vm/sqUnixMain.c
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixMain.c	2012-02-02 22:45:39 UTC (rev 2529)
+++ branches/Cog/platforms/unix/vm/sqUnixMain.c	2012-02-03 23:02:38 UTC (rev 2530)
@@ -137,6 +137,7 @@
 struct SqSound   *snd= 0;
 
 extern void dumpPrimTraceLog(void);
+char *getVersionInfo(int verbose);
 
 
 /*
@@ -779,6 +780,7 @@
 	static sqInt printingStack = false;
 
 	printf("\n%s%s%s\n\n", msg, date ? " " : "", date ? date : "");
+	printf("%s\n\n", getVersionInfo(1));
 
 #if !defined(NOEXECINFO)
 	printf("C stack backtrace:\n");
@@ -860,7 +862,7 @@
 }
 
 static void
-sigusr1(int sig, siginfo_t *info, ucontext_t *uap)
+sigusr1(int sig, siginfo_t *info, void *uap)
 {
 	int saved_errno = errno;
 	time_t now = time(NULL);
@@ -885,7 +887,7 @@
 }
 
 static void
-sigsegv(int sig, siginfo_t *info, ucontext_t *uap)
+sigsegv(int sig, siginfo_t *info, void *uap)
 {
 	time_t now = time(NULL);
 	char ctimebuf[32];
@@ -1405,7 +1407,7 @@
 # if !STACKVM
   printf("  -jit                  enable the dynamic compiler (if available)\n");
 # endif
-  printf("  -notimer              disable interval timer for low-res clock \n");
+  printf("  -notimer              disable interval timer for low-res clock\n");
   printf("  -display <dpy>        quivalent to '-vm-display-X11 -display <dpy>'\n");
   printf("  -headless             quivalent to '-vm-display-X11 -headless'\n");
   printf("  -nodisplay            quivalent to '-vm-display-null'\n");
@@ -1473,6 +1475,15 @@
 
 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
   extern int   vm_serial;
   extern char *vm_date, *cc_version, *ux_version;
   char *info= (char *)malloc(4096);
@@ -1487,8 +1498,16 @@
   sprintf(info+strlen(info), " %s %s\n", vm_date, cc_version);
   if (verbose)
     sprintf(info+strlen(info), "Built from: ");
-  sprintf(info+strlen(info), "%s\n", interpreterVersion);
+  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());
+  if (verbose)
     sprintf(info+strlen(info), "Build host: ");
   sprintf(info+strlen(info), "%s\n", ux_version);
   sprintf(info+strlen(info), "plugin path: %s [default: %s]\n", squeakPlugins, vmPath);

Modified: branches/Cog/platforms/win32/vm/sqWin32Intel.c
===================================================================
--- branches/Cog/platforms/win32/vm/sqWin32Intel.c	2012-02-02 22:45:39 UTC (rev 2529)
+++ branches/Cog/platforms/win32/vm/sqWin32Intel.c	2012-02-03 23:02:38 UTC (rev 2530)
@@ -20,6 +20,7 @@
 #include <ole2.h>
 #include "sq.h"
 #include "sqWin32Backtrace.h"
+#include "sqSCCSVersion.h"
 #if COGVM
 # include "cogmethod.h"
 # if COGMTVM
@@ -854,6 +855,7 @@
     fprintf(f,"Cogit Build: %s\n", __cogitBuildInfo);
 # endif
 #endif
+    fprintf(f,"Source Version: %s\n", sourceVersionString());
     fflush(f);
     fprintf(f,"\n"
 	    "Current byte code: %d\n"

Modified: branches/Cog/platforms/win32/vm/sqWin32PluginSupport.c
===================================================================
--- branches/Cog/platforms/win32/vm/sqWin32PluginSupport.c	2012-02-02 22:45:39 UTC (rev 2529)
+++ branches/Cog/platforms/win32/vm/sqWin32PluginSupport.c	2012-02-03 23:02:38 UTC (rev 2530)
@@ -250,7 +250,7 @@
 #endif
     fileHandle = instantiateClassindexableSize(classByteArray(), fileRecordSize());
     fBrowserMode = false;
-    sqFileOpen(fileValueOf(fileHandle),(int)req->localName, strlen(req->localName), 0);
+    sqFileOpen(fileValueOf(fileHandle),req->localName,strlen(req->localName),0);
     fBrowserMode = true;
     if(failed()) return 0;
   }



More information about the Vm-dev mailing list