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; }
vm-dev@lists.squeakfoundation.org