[Vm-dev] [commit] r2465 - CogVM source as per VMMaker.oscog-eem.107.

commits at squeakvm.org commits at squeakvm.org
Wed Jul 20 18:28:35 UTC 2011


Author: eliot
Date: 2011-07-20 11:28:35 -0700 (Wed, 20 Jul 2011)
New Revision: 2465

Modified:
   branches/Cog/cygwinbuild/Makefile
   branches/Cog/nscogsrc/vm/cogit.c
   branches/Cog/nscogsrc/vm/cogit.h
   branches/Cog/nscogsrc/vm/cogmethod.h
   branches/Cog/nscogsrc/vm/cointerp.c
   branches/Cog/nscogsrc/vm/cointerp.h
   branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
   branches/Cog/nscogsrc/vm/interp.h
   branches/Cog/nscogsrc/vm/vmCallback.h
   branches/Cog/platforms/unix/plugins/UUIDPlugin/Makefile.inc
   branches/Cog/platforms/unix/plugins/UUIDPlugin/sqUnixUUID.c
   branches/Cog/src/vm/cogit.c
   branches/Cog/src/vm/cogit.h
   branches/Cog/src/vm/cogmethod.h
   branches/Cog/src/vm/cointerp.c
   branches/Cog/src/vm/cointerp.h
   branches/Cog/src/vm/cointerpmt.c
   branches/Cog/src/vm/cointerpmt.h
   branches/Cog/src/vm/gcc3x-cointerp.c
   branches/Cog/src/vm/gcc3x-cointerpmt.c
   branches/Cog/src/vm/interp.h
   branches/Cog/src/vm/vmCallback.h
   branches/Cog/stacksrc/vm/gcc3x-interp.c
   branches/Cog/stacksrc/vm/interp.c
   branches/Cog/stacksrc/vm/interp.h
   branches/Cog/stacksrc/vm/vmCallback.h
   branches/Cog/unixbuild/HowToBuild
Log:
CogVM source as per VMMaker.oscog-eem.107.
Fix signed32BitValueOf: for max neg int (fixes AlienSunit tests).
Faster primitiveFail code.
Faster bitblt rule 41 code.
Fix COGMTVM compilation (cogit.c was broken) & add MT compilation for cygwin
and how-to instructions for linux..
Fix UUID plugin on linux.


Modified: branches/Cog/cygwinbuild/Makefile
===================================================================
--- branches/Cog/cygwinbuild/Makefile	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/cygwinbuild/Makefile	2011-07-20 18:28:35 UTC (rev 2465)
@@ -7,6 +7,8 @@
 # Base definitions:
 # default configuration from product, assert & debug
 CONFIGURATION=product
+# default VM threading from multi, single
+THREADING=single
 
 # The name of the VM to build
 VM:=Croquet
@@ -22,12 +24,22 @@
 BASEDIR:=.
 endif
 
-ifeq ("$(CONFIGURATION)","product")
-BUILD:=build
-else ifeq ("$(CONFIGURATION)","assert")
-BUILD:=buildast
+ifeq ("$(THREADING)","multi")
+	ifeq ("$(CONFIGURATION)","product")
+		BUILD:=buildmt
+	else ifeq ("$(CONFIGURATION)","assert")
+		BUILD:=buildmtast
+	else
+		BUILD:=buildmtdbg
+	endif
 else
-BUILD:=builddbg
+	ifeq ("$(CONFIGURATION)","product")
+		BUILD:=build
+	else ifeq ("$(CONFIGURATION)","assert")
+		BUILD:=buildast
+	else
+		BUILD:=builddbg
+	endif
 endif
 SRCDIR:= ../src
 BLDDIR:= $(BASEDIR)/$(BUILD)
@@ -43,7 +55,11 @@
 
 CROSSSRC:= $(wildcard $(CROSSDIR)/*.c) $(wildcard $(CROSSDIR)/*.cpp)
 WIN32SRC:= $(wildcard $(WIN32DIR)/*.c) $(wildcard $(WIN32DIR)/*.cpp)
+ifeq ("$(THREADING)","multi")
+MAKERSRC:= $(MAKERDIR)/gcc3x-cointerpmt.c $(MAKERDIR)/cogit.c
+else
 MAKERSRC:= $(MAKERDIR)/gcc3x-cointerp.c $(MAKERDIR)/cogit.c
+endif
 VMSRC:= $(notdir $(MAKERSRC) $(WIN32SRC) $(CROSSSRC))
 
 VPATH:= $(MAKERDIR) $(WIN32DIR) $(CROSSDIR)
@@ -113,11 +129,19 @@
 else ifeq ("$(CONFIGURATION)","assert")
 OFLAGS:= -D_MT -O1 -march=pentium4 -fno-omit-frame-pointer
 DEBUGVM=0
+NDEBUG:=-DAllocationCheckFiller=0xADD4E55
 else
 OFLAGS:= -D_MT -march=pentium4
 DEBUGVM=1
+NDEBUG:=-DAllocationCheckFiller=0xADD4E55
 endif
 
+ifeq ("$(THREADING)","multi")
+COGDEFS:=-DCOGMTVM=1 -DDEBUGVM=$(DEBUGVM)
+else
+COGDEFS:=-DCOGMTVM=0 -DDEBUGVM=$(DEBUGVM)
+endif
+
 # Set minimum version to WindowsXP (see /cygwin/usr/include//w32api/w32api.h)
 WINVER:=-D_WIN32_WINNT=0x0501 -DWINVER=0x0501
 
@@ -126,7 +150,7 @@
 NOBUILTIN:= -D_MT -fno-builtin-printf -fno-builtin-putchar -fno-builtin-fprintf
 CFLAGS:= $(INCLUDEPATH) -msse2 -ggdb2 -mwindows -mthreads -mno-cygwin -mwin32 \
 	-mno-rtd -mms-bitfields -mno-accumulate-outgoing-args $(OFLAGS) $(NOBUILTIN)
-DEFS:=	-DDEBUGVM=$(DEBUGVM) $(WINVER) -DWIN32 -DWIN32_FILE_SUPPORT -DNO_ISNAN \
+DEFS:=	$(COGDEFS) $(WINVER) -DWIN32 -DWIN32_FILE_SUPPORT -DNO_ISNAN \
 		-DNO_SERVICE -DNO_STD_FILE_SUPPORT \
 		$(NDEBUG) -DLSB_FIRST -D'VM_NAME="$(VM_NAME)"' -DX86 $(XDEFS) $(CROQUET)
 XDEFS:=	-DSQUEAK_BUILTIN_PLUGIN
@@ -139,8 +163,8 @@
 #       The switch '-mwindows' gives us a GUI app instead of a console app.
 #
 LD:=	 gcc
-LDFLAGS:= -mno-cygwin -mwindows -Wl,--export-dynamic -L/usr/lib/mingw
-CONSOLELDFLAGS:= -mno-cygwin -mconsole -Wl,--export-dynamic -L/usr/lib/mingw
+LDFLAGS:= -mno-cygwin -mwindows -mthreads -Wl,--export-dynamic -L/usr/lib/mingw
+CONSOLELDFLAGS:= -mno-cygwin -mconsole -mthreads -Wl,--export-dynamic -L/usr/lib/mingw
 STDLIBS:= -lddraw -ldinput -lopengl32 -lwsock32 -lcomdlg32 -lole32 -lwinmm \
 	 -lversion -lwininet -luser32 -lgdi32 -lpsapi -lkernel32 -lcrtdll \
 	-ldsound -lsecur32
@@ -180,14 +204,23 @@
 #
 default: print-settings init $(VMEXE) $(CONSOLEVMEXE) $(DLLS) $(STRIPEXE) $(STRIPCONSOLEEXE)
 
+productmt:;
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=product THREADING=multi $(@,product=) default
+
 product:;
-	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=product $(@,product=) default
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=product THREADING=single $(@,product=) default
 
+assertmt:
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=assert THREADING=multi $(@,assert=) default
+
 assert:
-	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=assert $(@,assert=) default
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=assert THREADING=single $(@,assert=) default
 
+debugmt:
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=debug THREADING=multi $(@,debug=) default
+
 debug:
-	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=debug $(@,debug=) default
+	$(MAKE) -f $(MAKEFILE_LIST) CONFIGURATION=debug THREADING=single $(@,debug=) default
 
 # Do make init to allow make -n to function.
 init:	$(OBJDIR) eitheror.exe mkNamedPrims.exe
@@ -195,15 +228,22 @@
 clean:
 	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe build
 
+cleanmt:
+	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe buildmt
+
 cleanast:
 	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe buildast
 
-cleandbg:
-	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe builddbg
+cleanmtast:
+	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe buildmtast
 
+cleanmtdbg:
+	rm -rf sqNamedPrims.h eitheror.exe mkNamedPrims.exe buildmtdbg
+
 print-settings:
 	@echo ---------------- Makefile settings ------------------
 	@echo CONFIGURATION=$(CONFIGURATION)
+	@echo THREADING=$(THREADING)
 	@echo VPATH=$(VPATH)
 	@echo INCLUDES=$(INCLUDES)
 	@echo CFLAGS=$(CFLAGS)
@@ -284,7 +324,7 @@
 	$(MAKE) $(MFLAGS) -C $(BLDDIR)/$(*F) BUILD=$(BUILD) \
 		-f../../$(shell ./eitheror.exe $(PLATDIR)/win32/plugins/$(*F)/Makefile Makefile.plugin) \
 		PLATDIR=../../$(PLATDIR) SRCDIR=../../$(SRCDIR) BASEDIR=../../$(BASEDIR) \
-		LIBNAME=$(*F) XDEFS=-DSQUEAK_BUILTIN_PLUGIN \
+		LIBNAME=$(*F) COGDEFS="$(COGDEFS)" XDEFS=-DSQUEAK_BUILTIN_PLUGIN \
 		../../$(OBJDIR)/$(*F).lib
 
 # External plugin.  Build as dll and copy to vm dir ($(OBJDIR)).
@@ -294,7 +334,7 @@
 	$(MAKE) $(MFLAGS) -C $(BLDDIR)/$(*F) BUILD=$(BUILD) \
 		-f../../$(shell ./eitheror.exe $(PLATDIR)/win32/plugins/$(*F)/Makefile Makefile.plugin) \
 		PLATDIR=../../$(PLATDIR) SRCDIR=../../$(SRCDIR) BASEDIR=../../$(BASEDIR) \
-		LIBNAME=$(*F) ../../$(OBJDIR)/$(*F).dll
+		COGDEFS="$(COGDEFS)" LIBNAME=$(*F) ../../$(OBJDIR)/$(*F).dll
 
 FORCE:
 

Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/nscogsrc/vm/cogit.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1
+	CCodeGenerator VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1
+	StackToRegisterMappingCogit VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -162,7 +162,6 @@
 #define CmpCwR 89
 #define CmpRdRd 96
 #define CmpRR 75
-#define COGMTVM 0
 #define ConstZero 1
 #define ConvertRRd 102
 #define CPUID 106

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/nscogsrc/vm/cogit.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1
+	CCodeGenerator VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/nscogsrc/vm/cogmethod.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1
+	CCodeGenerator VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631
  */
 
 typedef struct {

Modified: branches/Cog/nscogsrc/vm/cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/nscogsrc/vm/cointerp.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
    from
-	CoInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CoInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1883,7 +1883,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.105";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.106";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -18110,14 +18110,6 @@
 	GIV(primFailCode) = 0;
 	/* begin initializeExtraClassInstVarIndices */
 	VM_LABEL(0initializeExtraClassInstVarIndices);
-
-	/* default */
-
-	GIV(classNameIndex) = 6;
-
-	/* default */
-
-	GIV(thisClassIndex) = 5;
 	classArrayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord));
 	/* begin fetchClassOfNonInt: */
 	if (((ccIndex = (((usqInt) (longAt(classArrayObj))) >> 12) & 31)) == 0) {
@@ -18134,18 +18126,26 @@
 	GIV(metaclassSizeBytes) = ((header & TypeMask) == HeaderTypeSizeAndClass
 		? (longAt(classArrayClass - (BytesPerWord * 2))) & LongSizeMask
 		: header & SizeMask);
+
+	/* default */
+
+	GIV(thisClassIndex) = 5;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayClass)); i4 += 1) {
-		if ((longAt((classArrayClass + BaseHeaderSize) + (i4 << ShiftForWord))) == classArrayObj) {
-			GIV(thisClassIndex) = i4;
+		if ((longAt((classArrayClass + BaseHeaderSize) + ((i4 - 1) << ShiftForWord))) == classArrayObj) {
+			GIV(thisClassIndex) = i4 - 1;
 		}
 	}
+
+	/* default */
+
+	GIV(classNameIndex) = 6;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayObj)); i4 += 1) {
-		oop = longAt((classArrayObj + BaseHeaderSize) + (i4 << ShiftForWord));
+		oop = longAt((classArrayObj + BaseHeaderSize) + ((i4 - 1) << ShiftForWord));
 		if ((((oop & 1) == 0)
  && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8))
 		 && (((lengthOf(oop)) == 5)
 		 && ((strncmp("Array", firstFixedField(oop), 5)) == 0))) {
-			GIV(classNameIndex) = i4;
+			GIV(classNameIndex) = i4 - 1;
 		}
 	}
 

Modified: branches/Cog/nscogsrc/vm/cointerp.h
===================================================================
--- branches/Cog/nscogsrc/vm/cointerp.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/nscogsrc/vm/cointerp.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 

Modified: branches/Cog/nscogsrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/nscogsrc/vm/gcc3x-cointerp.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
    from
-	CoInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CoInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1886,7 +1886,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.105";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.106";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -18114,14 +18114,6 @@
 	GIV(primFailCode) = 0;
 	/* begin initializeExtraClassInstVarIndices */
 	VM_LABEL(0initializeExtraClassInstVarIndices);
-
-	/* default */
-
-	GIV(classNameIndex) = 6;
-
-	/* default */
-
-	GIV(thisClassIndex) = 5;
 	classArrayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord));
 	/* begin fetchClassOfNonInt: */
 	if (((ccIndex = (((usqInt) (longAt(classArrayObj))) >> 12) & 31)) == 0) {
@@ -18138,18 +18130,26 @@
 	GIV(metaclassSizeBytes) = ((header & TypeMask) == HeaderTypeSizeAndClass
 		? (longAt(classArrayClass - (BytesPerWord * 2))) & LongSizeMask
 		: header & SizeMask);
+
+	/* default */
+
+	GIV(thisClassIndex) = 5;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayClass)); i4 += 1) {
-		if ((longAt((classArrayClass + BaseHeaderSize) + (i4 << ShiftForWord))) == classArrayObj) {
-			GIV(thisClassIndex) = i4;
+		if ((longAt((classArrayClass + BaseHeaderSize) + ((i4 - 1) << ShiftForWord))) == classArrayObj) {
+			GIV(thisClassIndex) = i4 - 1;
 		}
 	}
+
+	/* default */
+
+	GIV(classNameIndex) = 6;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayObj)); i4 += 1) {
-		oop = longAt((classArrayObj + BaseHeaderSize) + (i4 << ShiftForWord));
+		oop = longAt((classArrayObj + BaseHeaderSize) + ((i4 - 1) << ShiftForWord));
 		if ((((oop & 1) == 0)
  && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8))
 		 && (((lengthOf(oop)) == 5)
 		 && ((strncmp("Array", firstFixedField(oop), 5)) == 0))) {
-			GIV(classNameIndex) = i4;
+			GIV(classNameIndex) = i4 - 1;
 		}
 	}
 

Modified: branches/Cog/nscogsrc/vm/interp.h
===================================================================
--- branches/Cog/nscogsrc/vm/interp.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/nscogsrc/vm/interp.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/nscogsrc/vm/vmCallback.h
===================================================================
--- branches/Cog/nscogsrc/vm/vmCallback.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/nscogsrc/vm/vmCallback.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/platforms/unix/plugins/UUIDPlugin/Makefile.inc
===================================================================
--- branches/Cog/platforms/unix/plugins/UUIDPlugin/Makefile.inc	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/platforms/unix/plugins/UUIDPlugin/Makefile.inc	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,2 +1,2 @@
-XCFLAGS=-DHAVE_UUID_UUID_H=1
+XCFLAGS=-DHAVE_UUID_UUID_H=1 -DHAVE_UUID_GENERATE
 XLDFLAGS = $(LIB_UUID)

Modified: branches/Cog/platforms/unix/plugins/UUIDPlugin/sqUnixUUID.c
===================================================================
--- branches/Cog/platforms/unix/plugins/UUIDPlugin/sqUnixUUID.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/platforms/unix/plugins/UUIDPlugin/sqUnixUUID.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -22,6 +22,8 @@
   uuidgen(&uuid, 1);
 #elif defined(HAVE_UUID_GENERATE)
   uuid_generate(uuid);
+#else
+# error "you must define some way of generating a UUID."
 #endif
 
   memcpy((void *)location, (void *)&uuid, sizeof(uuid));

Modified: branches/Cog/src/vm/cogit.c
===================================================================
--- branches/Cog/src/vm/cogit.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/cogit.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1
+	CCodeGenerator VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1
+	StackToRegisterMappingCogit VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631 " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -162,7 +162,6 @@
 #define CmpCwR 89
 #define CmpRdRd 96
 #define CmpRR 75
-#define COGMTVM 0
 #define ConstZero 1
 #define ConvertRRd 102
 #define CPUID 106

Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/cogit.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1
+	CCodeGenerator VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631
  */
 
 

Modified: branches/Cog/src/vm/cogmethod.h
===================================================================
--- branches/Cog/src/vm/cogmethod.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/cogmethod.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.104 uuid: 3ca0990a-ad74-44f1-bd92-a8be337813a1
+	CCodeGenerator VMMaker.oscog-eem.107 uuid: e97a2dd5-e1e7-4281-bb49-cb97be511631
  */
 
 typedef struct {

Modified: branches/Cog/src/vm/cointerp.c
===================================================================
--- branches/Cog/src/vm/cointerp.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/cointerp.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
    from
-	CoInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CoInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1874,7 +1874,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.105]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.106]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -17441,14 +17441,6 @@
 	GIV(primFailCode) = 0;
 	/* begin initializeExtraClassInstVarIndices */
 	VM_LABEL(0initializeExtraClassInstVarIndices);
-
-	/* default */
-
-	GIV(classNameIndex) = 6;
-
-	/* default */
-
-	GIV(thisClassIndex) = 5;
 	classArrayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord));
 	/* begin fetchClassOfNonInt: */
 	if (((ccIndex = (((usqInt) (longAt(classArrayObj))) >> 12) & 31)) == 0) {
@@ -17465,18 +17457,26 @@
 	GIV(metaclassSizeBytes) = ((header & TypeMask) == HeaderTypeSizeAndClass
 		? (longAt(classArrayClass - (BytesPerWord * 2))) & LongSizeMask
 		: header & SizeMask);
+
+	/* default */
+
+	GIV(thisClassIndex) = 5;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayClass)); i4 += 1) {
-		if ((longAt((classArrayClass + BaseHeaderSize) + (i4 << ShiftForWord))) == classArrayObj) {
-			GIV(thisClassIndex) = i4;
+		if ((longAt((classArrayClass + BaseHeaderSize) + ((i4 - 1) << ShiftForWord))) == classArrayObj) {
+			GIV(thisClassIndex) = i4 - 1;
 		}
 	}
+
+	/* default */
+
+	GIV(classNameIndex) = 6;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayObj)); i4 += 1) {
-		oop = longAt((classArrayObj + BaseHeaderSize) + (i4 << ShiftForWord));
+		oop = longAt((classArrayObj + BaseHeaderSize) + ((i4 - 1) << ShiftForWord));
 		if ((((oop & 1) == 0)
  && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8))
 		 && (((lengthOf(oop)) == 5)
 		 && ((strncmp("Array", firstFixedField(oop), 5)) == 0))) {
-			GIV(classNameIndex) = i4;
+			GIV(classNameIndex) = i4 - 1;
 		}
 	}
 

Modified: branches/Cog/src/vm/cointerp.h
===================================================================
--- branches/Cog/src/vm/cointerp.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/cointerp.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 

Modified: branches/Cog/src/vm/cointerpmt.c
===================================================================
--- branches/Cog/src/vm/cointerpmt.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/cointerpmt.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
    from
-	CoInterpreterMT VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CoInterpreterMT VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1974,7 +1974,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.105]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.106]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 sqInt willNotThreadWarnCount;
@@ -18134,14 +18134,6 @@
 	GIV(primFailCode) = 0;
 	/* begin initializeExtraClassInstVarIndices */
 	VM_LABEL(0initializeExtraClassInstVarIndices);
-
-	/* default */
-
-	GIV(classNameIndex) = 6;
-
-	/* default */
-
-	GIV(thisClassIndex) = 5;
 	classArrayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord));
 	/* begin fetchClassOfNonInt: */
 	if (((ccIndex = (((usqInt) (longAt(classArrayObj))) >> 12) & 31)) == 0) {
@@ -18158,18 +18150,26 @@
 	GIV(metaclassSizeBytes) = ((header & TypeMask) == HeaderTypeSizeAndClass
 		? (longAt(classArrayClass - (BytesPerWord * 2))) & LongSizeMask
 		: header & SizeMask);
+
+	/* default */
+
+	GIV(thisClassIndex) = 5;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayClass)); i4 += 1) {
-		if ((longAt((classArrayClass + BaseHeaderSize) + (i4 << ShiftForWord))) == classArrayObj) {
-			GIV(thisClassIndex) = i4;
+		if ((longAt((classArrayClass + BaseHeaderSize) + ((i4 - 1) << ShiftForWord))) == classArrayObj) {
+			GIV(thisClassIndex) = i4 - 1;
 		}
 	}
+
+	/* default */
+
+	GIV(classNameIndex) = 6;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayObj)); i4 += 1) {
-		oop = longAt((classArrayObj + BaseHeaderSize) + (i4 << ShiftForWord));
+		oop = longAt((classArrayObj + BaseHeaderSize) + ((i4 - 1) << ShiftForWord));
 		if ((((oop & 1) == 0)
  && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8))
 		 && (((lengthOf(oop)) == 5)
 		 && ((strncmp("Array", firstFixedField(oop), 5)) == 0))) {
-			GIV(classNameIndex) = i4;
+			GIV(classNameIndex) = i4 - 1;
 		}
 	}
 

Modified: branches/Cog/src/vm/cointerpmt.h
===================================================================
--- branches/Cog/src/vm/cointerpmt.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/cointerpmt.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 

Modified: branches/Cog/src/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerp.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/gcc3x-cointerp.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
    from
-	CoInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CoInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1877,7 +1877,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.105]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.106]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -17445,14 +17445,6 @@
 	GIV(primFailCode) = 0;
 	/* begin initializeExtraClassInstVarIndices */
 	VM_LABEL(0initializeExtraClassInstVarIndices);
-
-	/* default */
-
-	GIV(classNameIndex) = 6;
-
-	/* default */
-
-	GIV(thisClassIndex) = 5;
 	classArrayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord));
 	/* begin fetchClassOfNonInt: */
 	if (((ccIndex = (((usqInt) (longAt(classArrayObj))) >> 12) & 31)) == 0) {
@@ -17469,18 +17461,26 @@
 	GIV(metaclassSizeBytes) = ((header & TypeMask) == HeaderTypeSizeAndClass
 		? (longAt(classArrayClass - (BytesPerWord * 2))) & LongSizeMask
 		: header & SizeMask);
+
+	/* default */
+
+	GIV(thisClassIndex) = 5;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayClass)); i4 += 1) {
-		if ((longAt((classArrayClass + BaseHeaderSize) + (i4 << ShiftForWord))) == classArrayObj) {
-			GIV(thisClassIndex) = i4;
+		if ((longAt((classArrayClass + BaseHeaderSize) + ((i4 - 1) << ShiftForWord))) == classArrayObj) {
+			GIV(thisClassIndex) = i4 - 1;
 		}
 	}
+
+	/* default */
+
+	GIV(classNameIndex) = 6;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayObj)); i4 += 1) {
-		oop = longAt((classArrayObj + BaseHeaderSize) + (i4 << ShiftForWord));
+		oop = longAt((classArrayObj + BaseHeaderSize) + ((i4 - 1) << ShiftForWord));
 		if ((((oop & 1) == 0)
  && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8))
 		 && (((lengthOf(oop)) == 5)
 		 && ((strncmp("Array", firstFixedField(oop), 5)) == 0))) {
-			GIV(classNameIndex) = i4;
+			GIV(classNameIndex) = i4 - 1;
 		}
 	}
 

Modified: branches/Cog/src/vm/gcc3x-cointerpmt.c
===================================================================
--- branches/Cog/src/vm/gcc3x-cointerpmt.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/gcc3x-cointerpmt.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
    from
-	CoInterpreterMT VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CoInterpreterMT VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
-static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreterMT VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1977,7 +1977,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 static void (*externalPrimitiveTable[MaxExternalPrimitiveTableSize + 1 /* 4097 */])(void);
-const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.105]";
+const char *interpreterVersion = "Croquet Closure Cog MT VM [CoInterpreterMT VMMaker.oscog-eem.106]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 sqInt willNotThreadWarnCount;
@@ -18138,14 +18138,6 @@
 	GIV(primFailCode) = 0;
 	/* begin initializeExtraClassInstVarIndices */
 	VM_LABEL(0initializeExtraClassInstVarIndices);
-
-	/* default */
-
-	GIV(classNameIndex) = 6;
-
-	/* default */
-
-	GIV(thisClassIndex) = 5;
 	classArrayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord));
 	/* begin fetchClassOfNonInt: */
 	if (((ccIndex = (((usqInt) (longAt(classArrayObj))) >> 12) & 31)) == 0) {
@@ -18162,18 +18154,26 @@
 	GIV(metaclassSizeBytes) = ((header & TypeMask) == HeaderTypeSizeAndClass
 		? (longAt(classArrayClass - (BytesPerWord * 2))) & LongSizeMask
 		: header & SizeMask);
+
+	/* default */
+
+	GIV(thisClassIndex) = 5;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayClass)); i4 += 1) {
-		if ((longAt((classArrayClass + BaseHeaderSize) + (i4 << ShiftForWord))) == classArrayObj) {
-			GIV(thisClassIndex) = i4;
+		if ((longAt((classArrayClass + BaseHeaderSize) + ((i4 - 1) << ShiftForWord))) == classArrayObj) {
+			GIV(thisClassIndex) = i4 - 1;
 		}
 	}
+
+	/* default */
+
+	GIV(classNameIndex) = 6;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayObj)); i4 += 1) {
-		oop = longAt((classArrayObj + BaseHeaderSize) + (i4 << ShiftForWord));
+		oop = longAt((classArrayObj + BaseHeaderSize) + ((i4 - 1) << ShiftForWord));
 		if ((((oop & 1) == 0)
  && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8))
 		 && (((lengthOf(oop)) == 5)
 		 && ((strncmp("Array", firstFixedField(oop), 5)) == 0))) {
-			GIV(classNameIndex) = i4;
+			GIV(classNameIndex) = i4 - 1;
 		}
 	}
 

Modified: branches/Cog/src/vm/interp.h
===================================================================
--- branches/Cog/src/vm/interp.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/interp.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/src/vm/vmCallback.h
===================================================================
--- branches/Cog/src/vm/vmCallback.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/src/vm/vmCallback.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/stacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/stacksrc/vm/gcc3x-interp.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/stacksrc/vm/gcc3x-interp.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
    from
-	StackInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	StackInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1672,7 +1672,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.105]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.106]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -13620,14 +13620,6 @@
 	GIV(primFailCode) = 0;
 	/* begin initializeExtraClassInstVarIndices */
 	VM_LABEL(0initializeExtraClassInstVarIndices);
-
-	/* default */
-
-	GIV(classNameIndex) = 6;
-
-	/* default */
-
-	GIV(thisClassIndex) = 5;
 	classArrayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord));
 	/* begin fetchClassOfNonInt: */
 	if (((ccIndex = (((usqInt) (longAt(classArrayObj))) >> 12) & 31)) == 0) {
@@ -13644,18 +13636,26 @@
 	GIV(metaclassSizeBytes) = ((header & TypeMask) == HeaderTypeSizeAndClass
 		? (longAt(classArrayClass - (BytesPerWord * 2))) & LongSizeMask
 		: header & SizeMask);
+
+	/* default */
+
+	GIV(thisClassIndex) = 5;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayClass)); i4 += 1) {
-		if ((longAt((classArrayClass + BaseHeaderSize) + (i4 << ShiftForWord))) == classArrayObj) {
-			GIV(thisClassIndex) = i4;
+		if ((longAt((classArrayClass + BaseHeaderSize) + ((i4 - 1) << ShiftForWord))) == classArrayObj) {
+			GIV(thisClassIndex) = i4 - 1;
 		}
 	}
+
+	/* default */
+
+	GIV(classNameIndex) = 6;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayObj)); i4 += 1) {
-		oop = longAt((classArrayObj + BaseHeaderSize) + (i4 << ShiftForWord));
+		oop = longAt((classArrayObj + BaseHeaderSize) + ((i4 - 1) << ShiftForWord));
 		if ((((oop & 1) == 0)
  && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8))
 		 && (((lengthOf(oop)) == 5)
 		 && ((strncmp("Array", firstFixedField(oop), 5)) == 0))) {
-			GIV(classNameIndex) = i4;
+			GIV(classNameIndex) = i4 - 1;
 		}
 	}
 

Modified: branches/Cog/stacksrc/vm/interp.c
===================================================================
--- branches/Cog/stacksrc/vm/interp.c	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/stacksrc/vm/interp.c	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
    from
-	StackInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	StackInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1669,7 +1669,7 @@
  0 };
 char * breakSelector;
 sqInt breakSelectorLength = -1;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.105]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreter VMMaker.oscog-eem.106]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -13616,14 +13616,6 @@
 	GIV(primFailCode) = 0;
 	/* begin initializeExtraClassInstVarIndices */
 	VM_LABEL(0initializeExtraClassInstVarIndices);
-
-	/* default */
-
-	GIV(classNameIndex) = 6;
-
-	/* default */
-
-	GIV(thisClassIndex) = 5;
 	classArrayObj = longAt((GIV(specialObjectsOop) + BaseHeaderSize) + (ClassArray << ShiftForWord));
 	/* begin fetchClassOfNonInt: */
 	if (((ccIndex = (((usqInt) (longAt(classArrayObj))) >> 12) & 31)) == 0) {
@@ -13640,18 +13632,26 @@
 	GIV(metaclassSizeBytes) = ((header & TypeMask) == HeaderTypeSizeAndClass
 		? (longAt(classArrayClass - (BytesPerWord * 2))) & LongSizeMask
 		: header & SizeMask);
+
+	/* default */
+
+	GIV(thisClassIndex) = 5;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayClass)); i4 += 1) {
-		if ((longAt((classArrayClass + BaseHeaderSize) + (i4 << ShiftForWord))) == classArrayObj) {
-			GIV(thisClassIndex) = i4;
+		if ((longAt((classArrayClass + BaseHeaderSize) + ((i4 - 1) << ShiftForWord))) == classArrayObj) {
+			GIV(thisClassIndex) = i4 - 1;
 		}
 	}
+
+	/* default */
+
+	GIV(classNameIndex) = 6;
 	for (i4 = (InstanceSpecificationIndex + 1); i4 <= (lengthOf(classArrayObj)); i4 += 1) {
-		oop = longAt((classArrayObj + BaseHeaderSize) + (i4 << ShiftForWord));
+		oop = longAt((classArrayObj + BaseHeaderSize) + ((i4 - 1) << ShiftForWord));
 		if ((((oop & 1) == 0)
  && (((((usqInt) (longAt(oop))) >> 8) & 15) >= 8))
 		 && (((lengthOf(oop)) == 5)
 		 && ((strncmp("Array", firstFixedField(oop), 5)) == 0))) {
-			GIV(classNameIndex) = i4;
+			GIV(classNameIndex) = i4 - 1;
 		}
 	}
 

Modified: branches/Cog/stacksrc/vm/interp.h
===================================================================
--- branches/Cog/stacksrc/vm/interp.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/stacksrc/vm/interp.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 #define VM_PROXY_MAJOR 1

Modified: branches/Cog/stacksrc/vm/vmCallback.h
===================================================================
--- branches/Cog/stacksrc/vm/vmCallback.h	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/stacksrc/vm/vmCallback.h	2011-07-20 18:28:35 UTC (rev 2465)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.105 uuid: 79234f80-ee6a-404c-9e5c-2134e3b76463
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.106 uuid: 5e185229-3c2a-4912-a60f-e2a42fa627cb
  */
 
 #define VM_CALLBACK_INC 1

Modified: branches/Cog/unixbuild/HowToBuild
===================================================================
--- branches/Cog/unixbuild/HowToBuild	2011-07-20 18:23:52 UTC (rev 2464)
+++ branches/Cog/unixbuild/HowToBuild	2011-07-20 18:28:35 UTC (rev 2465)
@@ -42,26 +42,32 @@
 3b. For a full debug VM do
      ../../platforms/unix/config/configure --without-vm-display-fbdev --without-npsqueak CFLAGS="-g3 -msse2 -D_GNU_SOURCE -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=1" LIBS=-lpthread
 
+3c. For a multi-threaded VM open a shell and cd to the mtbld directory.  Then
+   execute
+     ../../platforms/unix/config/configure INTERP=cointerpmt --without-vm-display-fbdev --without-npsqueak CFLAGS="-g -O2 -msse2 -DNDEBUG -DCOGMTVM=1 -DDEBUGVM=0 -D_GNU_SOURCE -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1" LIBS=-lpthread
+     make squeakmt
+     make installmt prefix=WhereYouWantTheVmToGo
+
 N.B.  As of early 2010 the linux pthreads implementation doesn't appear to
 provide a way of setting priorities for the default thread scheduling policy
 SCHED_OTHER (unlike e.g. Mac OS X) and doesn't appear to allow changing the
 policy to one that does (e.g. SCHED_RR).  So for now we use the itimer
 scheme.  See platforms/unix/vm/sqUnixHeartbeat.c
 
-3c. If you want to get the Cog VM simulator working you'll need to build the
+3d. If you want to get the Cog VM simulator working you'll need to build the
 BochsIA32Plugin/BochsIA32Plugin.xcodeproj project and to build that you'll
 need to first build bochs.  First check-out the processor simulator source tree
 containing Bochs:
      svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build using the following, which works on Mac OS and is hence likely to
-work on linux:
+Then build using the following, which works on Mac OS and is hence unlikely to
+work entirely on linux (no xcodebuild):
   $ cd ROOT/processors/IA32/bochs
   $ ./conf.COG
   $ ./makeem
   $ cd ROOT/macbuild/BochsIA32Plugin
   $ xcodebuild
 
-3d. If you're building the VM on a 64-bit OS, you'll need a compiler which can
+3e. If you're building the VM on a 64-bit OS, you'll need a compiler which can
 compile and link to 32-bit binaries. On most Linuxes the gcc-multilib package
 provides the 32-bit compiler and the ia32-libs provides the 32-bit libraries.
 You'll also have to add the -m32 switch to all gcc & g++ invocations.  The



More information about the Vm-dev mailing list