[commit] r2503 - Filter-out attempts to create MNU pics with new selectors. Fixes

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[commit] r2503 - Filter-out attempts to create MNU pics with new selectors. Fixes

commits-3
 
Author: eliot
Date: 2011-10-25 11:52:29 -0700 (Tue, 25 Oct 2011)
New Revision: 2503

Modified:
   branches/Cog/nscogsrc/vm/cogit.c
   branches/Cog/nscogsrc/vm/cogit.h
   branches/Cog/nscogsrc/vm/cogmethod.h
   branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
   branches/Cog/src/vm/cogit.c
   branches/Cog/src/vm/cogit.h
   branches/Cog/src/vm/cogmethod.h
Log:
Filter-out attempts to create MNU pics with new selectors.  Fixes
Stephane Rollandin's crash of 21/10/2011:
        [((Compiler new evaluate: ('Beuh' ifNuk: [yo]))
                on: Error      
                do: [:ex | ex description]) printString] fork


Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c 2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/nscogsrc/vm/cogit.c 2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+ CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
    from
- StackToRegisterMappingCogit VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+ StackToRegisterMappingCogit VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -184,7 +184,7 @@
 #define ECX 1
 #define EDI 7
 #define EDX 2
-#define EncounteredUnknownBytecode -3
+#define EncounteredUnknownBytecode -4
 #define ESI 6
 #define ESP 4
 #define Fill16 5
@@ -261,10 +261,10 @@
 #define LongSizeMask 0xFFFFFFFCUL
 #define MapEnd 0
 #define MaxCompiledPrimitiveIndex 222
-#define MaxNegativeErrorCode -3
+#define MaxNegativeErrorCode -4
 #define MaxNumArgs 15
 #define MaxUnitDisplacement 31
-#define MaxUnreportableError -2
+#define MaxUnreportableError -3
 #define MaxX2NDisplacement 992
 #define MethodCacheClass 2
 #define MethodCacheMask 0xFFC
@@ -352,6 +352,7 @@
 #define XMM7L 14
 #define XorCwR 94
 #define XorRR 80
+#define YoungSelectorInPIC -3
 
 
 /*** Function Prototypes ***/
@@ -3130,6 +3131,9 @@
     sqInt size;
     sqInt startAddress;
 
+ if (isYoung(selector)) {
+ return 0;
+ }
  compilationBreakpoint(selector, lengthOf(selector));
  assert(endCPICCase0 != null);
  startAddress = allocate(closedPICSize);
@@ -3205,6 +3209,9 @@
     sqInt size;
     sqInt startAddress;
 
+ if (isYoung(selector)) {
+ return ((CogMethod *) YoungSelectorInPIC);
+ }
  compilationBreakpoint(selector, lengthOf(selector));
  startAddress = allocate(closedPICSize);
  if (startAddress == 0) {

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h 2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/nscogsrc/vm/cogit.h 2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+ CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h 2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/nscogsrc/vm/cogmethod.h 2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+ CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
 
 typedef struct {


Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Wed Oct 19 11:51:32 PDT 2011
   + Tue Oct 25 11:25:05 PDT 2011

Modified: branches/Cog/src/vm/cogit.c
===================================================================
--- branches/Cog/src/vm/cogit.c 2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/src/vm/cogit.c 2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,9 +1,9 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+ CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
    from
- StackToRegisterMappingCogit VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+ StackToRegisterMappingCogit VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -184,7 +184,7 @@
 #define ECX 1
 #define EDI 7
 #define EDX 2
-#define EncounteredUnknownBytecode -3
+#define EncounteredUnknownBytecode -4
 #define ESI 6
 #define ESP 4
 #define Fill16 5
@@ -261,10 +261,10 @@
 #define LongSizeMask 0xFFFFFFFCUL
 #define MapEnd 0
 #define MaxCompiledPrimitiveIndex 222
-#define MaxNegativeErrorCode -3
+#define MaxNegativeErrorCode -4
 #define MaxNumArgs 15
 #define MaxUnitDisplacement 31
-#define MaxUnreportableError -2
+#define MaxUnreportableError -3
 #define MaxX2NDisplacement 992
 #define MethodCacheClass 2
 #define MethodCacheMask 0xFFC
@@ -352,6 +352,7 @@
 #define XMM7L 14
 #define XorCwR 94
 #define XorRR 80
+#define YoungSelectorInPIC -3
 
 
 /*** Function Prototypes ***/
@@ -3053,6 +3054,9 @@
     sqInt size;
     sqInt startAddress;
 
+ if (isYoung(selector)) {
+ return 0;
+ }
  compilationBreakpoint(selector, lengthOf(selector));
  assert(endCPICCase0 != null);
  startAddress = allocate(closedPICSize);
@@ -3128,6 +3132,9 @@
     sqInt size;
     sqInt startAddress;
 
+ if (isYoung(selector)) {
+ return ((CogMethod *) YoungSelectorInPIC);
+ }
  compilationBreakpoint(selector, lengthOf(selector));
  startAddress = allocate(closedPICSize);
  if (startAddress == 0) {

Modified: branches/Cog/src/vm/cogit.h
===================================================================
--- branches/Cog/src/vm/cogit.h 2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/src/vm/cogit.h 2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+ CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
 
 

Modified: branches/Cog/src/vm/cogmethod.h
===================================================================
--- branches/Cog/src/vm/cogmethod.h 2011-10-19 18:52:10 UTC (rev 2502)
+++ branches/Cog/src/vm/cogmethod.h 2011-10-25 18:52:29 UTC (rev 2503)
@@ -1,5 +1,5 @@
 /* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.134 uuid: a0d46c48-3d9a-43f9-a769-51f31ce120e9
+ CCodeGenerator VMMaker.oscog-eem.135 uuid: 1c85e5ef-0fe8-4a1e-9421-ff0d53845fba
  */
 
 typedef struct {