[Vm-dev] [commit][3244] CogVM source as per VMMaker.oscog-eem.1034

commits at squeakvm.org commits at squeakvm.org
Sat Jan 31 02:15:58 UTC 2015


Revision: 3244
Author:   eliot
Date:     2015-01-30 18:15:58 -0800 (Fri, 30 Jan 2015)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.1034

Spur:
Clarify and ensure that we always follow receivers after any become to ensure
that e.g. super sends on non-pointer receivers (which don't check) will have
unforwarded receivers and hence any primitives that don't validate their
receivers will function correctly.  Better safe than sorry.

Modified Paths:
--------------
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spurstack64src/vm/gcc3x-interp.c
    branches/Cog/spurstack64src/vm/interp.c
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2353,7 +2353,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1029";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1034";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -72847,7 +72847,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -72901,12 +72903,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
 
 

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2356,7 +2356,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1029";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.1034";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -72856,7 +72856,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -72910,12 +72912,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2104,7 +2104,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1029";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1034";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -62299,7 +62299,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -62353,12 +62355,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/nsspurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/nsspurstacksrc/vm/interp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/nsspurstacksrc/vm/interp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2101,7 +2101,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1029";
+const char *interpreterVersion = "Newspeak Virtual Machine StackInterpreterPrimitives_VMMaker.oscog-eem.1034";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -62290,7 +62290,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -62344,12 +62346,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Fri Jan 30 17:17:40 PST 2015
   + Fri Jan 30 18:15:57 PST 2015

Modified: branches/Cog/spursistasrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursistasrc/vm/cointerp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2354,7 +2354,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1034]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -72882,7 +72882,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -72936,12 +72938,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/spursistasrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursistasrc/vm/cointerp.h	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursistasrc/vm/cointerp.h	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
 
 

Modified: branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursistasrc/vm/gcc3x-cointerp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursistasrc/vm/gcc3x-cointerp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2357,7 +2357,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1034]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -72891,7 +72891,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -72945,12 +72947,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/spursrc/vm/cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/cointerp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursrc/vm/cointerp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2343,7 +2343,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1034]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -67742,7 +67742,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -67796,12 +67798,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/spursrc/vm/cointerp.h
===================================================================
--- branches/Cog/spursrc/vm/cointerp.h	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursrc/vm/cointerp.h	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
 
 

Modified: branches/Cog/spursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/spursrc/vm/gcc3x-cointerp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spursrc/vm/gcc3x-cointerp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2346,7 +2346,7 @@
 /*560*/	-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1
 	};
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Cog VM [CoInterpreterPrimitives VMMaker.oscog-eem.1034]";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
 volatile int sendTrace;
 
@@ -67751,7 +67751,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -67805,12 +67807,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/spurstack64src/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/gcc3x-interp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spurstack64src/vm/gcc3x-interp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2127,7 +2127,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1034]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -62482,7 +62482,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -62536,12 +62538,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/spurstack64src/vm/interp.c
===================================================================
--- branches/Cog/spurstack64src/vm/interp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spurstack64src/vm/interp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2124,7 +2124,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1034]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -62473,7 +62473,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -62527,12 +62529,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/spurstacksrc/vm/gcc3x-interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/gcc3x-interp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spurstacksrc/vm/gcc3x-interp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2097,7 +2097,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1034]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -57570,7 +57570,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -57624,12 +57626,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {

Modified: branches/Cog/spurstacksrc/vm/interp.c
===================================================================
--- branches/Cog/spurstacksrc/vm/interp.c	2015-01-31 02:14:57 UTC (rev 3243)
+++ branches/Cog/spurstacksrc/vm/interp.c	2015-01-31 02:15:58 UTC (rev 3244)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
    from
-	StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424
+	StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7
  */
-static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1029 uuid: a2c6da7a-d111-4184-bf10-039ed2bea424 " __DATE__ ;
+static char __buildInfo[] = "StackInterpreter VMMaker.oscog-eem.1034 uuid: 1a93b31c-cf2c-4a2c-b53f-9eae1d7863c7 " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -2094,7 +2094,7 @@
 	/* 575 */ (void (*)(void))0,
  0 };
 char expensiveAsserts = 0;
-const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1029]";
+const char *interpreterVersion = "Croquet Closure Stack VM [StackInterpreterPrimitives VMMaker.oscog-eem.1034]";
 volatile int sendTrace;
 sqInt suppressHeartbeatFlag;
 
@@ -57561,7 +57561,9 @@
 	All receivers must be unfollowed for two reasons:
 	1. inst var access is direct with no read barrier
 	2. super sends (always to the receiver) have no class check and so don't
-	trap for forwarded receivers.
+	trap for forwarded receivers. This is an issue for primitives that assume
+	their receiver
+	is valid and don't validate.
 	Methods must be unfollowed since bytecode access is direct with no read
 	barrier. But this only needs to be done if the becomeEffectsFlags indicate
 	that a
@@ -57615,12 +57617,8 @@
     sqInt schedAssoc;
     sqInt xArray;
 
+	followForwardingPointersInStackZone(theBecomeEffectsFlags);
 	if (theBecomeEffectsFlags != 0) {
-
-		/* (theBecomeEffectsFlags anyMask: BecamePointerObjectFlag+BecameCompiledMethodFlag) ifTrue:
-		   [ */
-
-		followForwardingPointersInStackZone(theBecomeEffectsFlags);
 		if (theBecomeEffectsFlags & BecameCompiledMethodFlag) {
 			/* begin followForwardedMethodsInMethodCache */
 			for (i = 0; i < MethodCacheSize; i += MethodCacheEntrySize) {



More information about the Vm-dev mailing list