CHECKCAST/INSTANCEOF/ARRAYLENGTH refactoring (part 1) performance-optimizations
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 14 May 2013 15:36:56 +0100
branchperformance-optimizations
changeset 2595 77ab6e032c7f
parent 2594 6b2c378121a3
child 2596 957f4aa699bb
CHECKCAST/INSTANCEOF/ARRAYLENGTH refactoring (part 1) The jitted sends _CHECKCAST:/_INSTANCEOF:/_ARRAYLENGTH: to the object itself instead of to JavaVM. This allow for saving some tests and also removes the neccessity to specialize ILC on non-receiver class.
JavaArray.st
JavaObject.st
JavaVM.st
Make.proto
abbrev.stc
bmake.bat
extensions.st
lccmake.bat
libjava.rc
libs/java/pom.xml
mingwmake.bat
stx_libjava.st
vcmake.bat
--- a/JavaArray.st	Mon May 13 00:59:43 2013 +0100
+++ b/JavaArray.st	Tue May 14 15:36:56 2013 +0100
@@ -20,7 +20,7 @@
 "
 "{ Package: 'stx:libjava' }"
 
-Array subclass:#JavaArray
+Array variableSubclass:#JavaArray
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
@@ -60,7 +60,6 @@
 "
 ! !
 
-
 !JavaArray class methodsFor:'initialization'!
 
 classInit
@@ -83,7 +82,6 @@
     "Created: / 17-12-2010 / 13:25:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaArray class methodsFor:'accessing'!
 
 classLoader
@@ -132,7 +130,6 @@
     "Created: / 22-05-2011 / 18:03:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaArray class methodsFor:'accessing - java'!
 
 javaMirrorClass
@@ -145,7 +142,6 @@
     "Created: / 31-07-2012 / 18:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaArray class methodsFor:'autoboxing support'!
 
 javaUnwrap: anObject
@@ -190,7 +186,6 @@
     "Created: / 04-11-2012 / 23:33:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaArray class methodsFor:'class creation'!
 
 javaArrayClass
@@ -226,7 +221,6 @@
     "Modified: / 05-07-2012 / 23:23:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaArray class methodsFor:'queries'!
 
 hasInterface:aJavaInterface
@@ -320,6 +314,25 @@
     "Created: / 21-12-2010 / 12:51:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!JavaArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+_CHECKCAST: cls
+    ^JavaVM _CHECKCAST: self _: cls
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+_INSTANCEOF: cls
+    ^JavaVM _INSTANCEOF: self _: cls
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
 
 !JavaArray class methodsFor:'documentation'!
 
--- a/JavaObject.st	Mon May 13 00:59:43 2013 +0100
+++ b/JavaObject.st	Tue May 14 15:36:56 2013 +0100
@@ -491,6 +491,26 @@
     "Created: / 08-11-2011 / 12:25:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 ! !
 
+!JavaObject methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^JavaVM _ARRAYLENGTH: self
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+_CHECKCAST: cls
+    ^JavaVM _CHECKCAST: self _: cls
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+_INSTANCEOF: cls
+    ^JavaVM _INSTANCEOF: self _: cls
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaObject class methodsFor:'documentation'!
 
 version
--- a/JavaVM.st	Mon May 13 00:59:43 2013 +0100
+++ b/JavaVM.st	Tue May 14 15:36:56 2013 +0100
@@ -4921,111 +4921,21 @@
 
 
 _CHECKCAST: obj _: cls
-    "An optimized implementation of the CHECKCAST instruction. 
-     Called by the VM"
+    "A principal implementation of CHECKCAST instruction. Called by the bytecode
+     interpreter for unhandled cases."     
     
-%{  /* NOCONTEXT */
-    OBJ objCls; 
-
-    if ( obj == nil ) goto ___checkcast_done;
-
-    objCls = __Class(obj);
-    /* 
-        The following rules are used to determine whether an objectref that is not
-        null can be cast to the resolved type: if S is the class of the object
-        referred to by objectref and T is the resolved class, array, or interface type,
-        checkcast determines whether objectref can be cast to type T as follows:
-        * If S is an ordinary (nonarray) class, then:
-          * If T is a class type, then S must be the same class as T, or a subclass
-            of T.
-          * If T is an interface type, then S must implement interface T.
-        * If S is an interface type, then:
-          * If T is a class type, then T must be Object.
-          * If T is an interface type, then T must be the same interface as S or a
-            superinterface of S.
-        * If S is a class representing the array type SC[], that is, an array of com-
-          ponents of type SC , then:
-          * If T is a class type, then T must be Object.
-          * If T is an array type TC[], that is, an array of components of type TC ,
-            then one of the following must be true:
-            * TC and SC are the same primitive type.
-            * TC and SC are reference types, and type SC can be cast to TC by
-              recursive application of these rules.
-          * If T is an interface type, T must be one of the interfaces implemented
-            by arrays (JLS3 §4.10.3).
-    */
-#define S (objCls)
-#define T (cls)
-    {
-        ___checkcast_fast:        
-        if (S == T) { goto ___checkcast_ok; }
-        /* S is object type... */
-        if (__qIsJavaBehaviorLike(S)) {
-            while (S != nil) {
-                if (S == T) { goto ___checkcast_ok; }
-                 S = __ClassInstPtr(S)->c_superclass;
-            }
-            goto ___checkcast_slow;            
-        }
-        /* S os object array type... */
-        if ( ((INT)(__ClassInstPtr(S)->c_flags) & __MASKSMALLINT(JARRAY_INSTS))) {
-            if (  ((INT)(__ClassInstPtr(T)->c_flags) & __MASKSMALLINT(JARRAY_INSTS))) {
-                /* both S and T are reference arrays... */
-                S = __JavaArrayClassPtr(S)->jac_componentClass;
-                T = __JavaArrayClassPtr(T)->jac_componentClass;
-                goto ___checkcast_fast;
-           }
-           /* check if T is an java.lang.Object, any array is kind of an Object */
-           if (__ClassInstPtr(T)->c_superclass == JavaObject) { goto ___checkcast_ok; }
-        }
-        /* S is primitive type */
-        if (S == Unicode16String) {
-            if (T == String) { goto ___checkcast_ok; }        
-        } else {
-           if (__ClassInstPtr(T)->c_superclass == JavaObject) { goto ___checkcast_ok; }         
-        }
-        goto ___checkcast_slow;
-    }          
-    
-    ___checkcast_ok:
-    if ( ( __ILC_FLAGS(__pilc) & 0x0F) != I_PERF )  {
-        if ( __qSpace(objCls) < NEWSPACE ) {   
-            void ___ilcBindPrimitive();            
-            /* printf("CHECKCAST: __pilc == 0x%x\n", __pilc); */
-            OBJ ___checkcast_f();
-            __ilcBindPrimitive(__pilc, objCls, &___checkcast_f, 2, __selector);
-        }
-    }
-    ___checkcast_done:
-    return obj;
-
-    ___checkcast_slow:;
-%}.
+    obj isNil ifTrue:[ ^ obj ].
     (self canCast: obj class to: cls) ifFalse: [
         self throwClassCastException.
         ^ nil
     ].
-%{    
-    OBJ objCls;
-    objCls = __Class(obj);
-    if ( ( __ILC_FLAGS(__pilc) & 0x0F) != I_PERF )  {
-        if ( __qSpace(objCls) < NEWSPACE ) {   
-            void ___ilcBindPrimitive();            
-            /* printf("CHECKCAST: __pilc == 0x%x\n", __pilc); */
-            OBJ ___checkcast_f();
-            __ilcBindPrimitive(__pilc, objCls, &___checkcast_f, 2, __selector);
-        }
-    }	
-%}.    
     ^ obj
 
 !
 
 _CHECKCAST_R: object _: classRef
-    "Called by the VM for unhandled cases.
-     Unlike in _CHECKCAST:_: the second parameter is a class reference,
-     not the class itself!! Called by JIT-compiled code."
-
+    "An implementation of CHECKCAST instruction. Called by the jitted code
+     when if the classRef hasn't been resolved at the time of jitting."
     | class |
 
     object isNil ifTrue: [ ^ object ].
@@ -5160,100 +5070,13 @@
 !
 
 _INSTANCEOF:obj _:cls
-    "An optimized implementation of the INSTANCEOF instruction. 
-     Called by the VM"
-%{  /* NOCONTEXT */
-    OBJ objCls;
-
-    if (obj == nil) return __MKSMALLINT(0);
-
-    objCls = __Class(obj);
-    /* 
-        The following rules are used to determine whether an objectref that is not
-        null can be cast to the resolved type: if S is the class of the object
-        referred to by objectref and T is the resolved class, array, or interface type,
-        instanceof  determines whether objectref is an instance of T as follows:
-        * If S is an ordinary (nonarray) class, then:
-          * If T is a class type, then S must be the same class as T, or a subclass
-            of T.
-          * If T is an interface type, then S must implement interface T.
-        * If S is an interface type, then:
-          * If T is a class type, then T must be Object.
-          * If T is an interface type, then T must be the same interface as S or a
-            superinterface of S.
-        * If S is a class representing the array type SC[], that is, an array of com-
-          ponents of type SC , then:
-          * If T is a class type, then T must be Object.
-          * If T is an array type TC[], that is, an array of components of type TC ,
-            then one of the following must be true:
-            * TC and SC are the same primitive type.
-            * TC and SC are reference types, and type SC can be cast to TC by
-              recursive application of these rules.
-          * If T is an interface type, T must be one of the interfaces implemented
-            by arrays (JLS3 §4.10.3).
-    */
-#define S (objCls)
-#define T (cls)
-    {
-        ___instanceof_fast:    
-        if (S == T)  goto ___instanceof_done_true; 
-        /* S is object type... */
-        if (__qIsJavaBehaviorLike(S)) {
-            while (S != nil) {
-                if (S == T) goto ___instanceof_done_true; 
-                 S = __ClassInstPtr(S)->c_superclass;
-            }
-            goto ___instanceof_slow;            
-        }
-        /* S os object array type... */
-        if ( ((INT)(__ClassInstPtr(S)->c_flags) & __MASKSMALLINT(JARRAY_INSTS))) {
-            if (  ((INT)(__ClassInstPtr(T)->c_flags) & __MASKSMALLINT(JARRAY_INSTS))) {
-                /* both S and T are reference arrays... */
-                S = __JavaArrayClassPtr(S)->jac_componentClass;
-                T = __JavaArrayClassPtr(T)->jac_componentClass;
-                goto ___instanceof_fast;
-           }
-           /* check if T is an java.lang.Object, any array is kind of an Object */
-           if (__ClassInstPtr(T)->c_superclass == JavaObject) goto ___instanceof_done_true; 
-        }
-        /* S is primitive type */
-        if (S == Unicode16String) {
-            if (T == String) { goto ___instanceof_done_true; }        
-        } else {
-           if (__ClassInstPtr(T)->c_superclass == JavaObject) goto ___instanceof_done_true; 
-        }
-
-        goto ___instanceof_slow;
-    }          
-
-    ___instanceof_done_true:
-    if ( ( __ILC_FLAGS(__pilc) & 0x0F) != I_PERF )  {
-        if ( __qSpace(objCls) < NEWSPACE ) {   
-            void ___ilcBindPrimitive();            
-            /* printf("CHECKCAST: __pilc == 0x%x\n", __pilc); */
-            OBJ ___instanceof_f();
-            __ilcBindPrimitive(__pilc, objCls, &___instanceof_f, 2, __selector);
-        }
-    }
-    return __MKSMALLINT(1);
-
-    ___instanceof_slow:;
-%}.
+    "A principal implementation of INSTANCEOF instruction. Called by the bytecode
+     interpreter for unhandled cases."     
+
+    obj isNil ifTrue: [ ^ 0 ].
     (self canCast: obj class to: cls) ifFalse: [
         ^ 0
     ].
-%{    
-    OBJ objCls;
-    objCls = __Class(obj);
-    if ( ( __ILC_FLAGS(__pilc) & 0x0F) != I_PERF )  {
-        if ( __qSpace(objCls) < NEWSPACE ) {   
-            void ___ilcBindPrimitive();            
-            /* printf("CHECKCAST: __pilc == 0x%x\n", __pilc); */
-            OBJ ___instanceof_f();
-            __ilcBindPrimitive(__pilc, objCls, &___instanceof_f, 2, __selector);
-        }
-    }	
-%}.    
     ^ 1
 
 
@@ -5264,9 +5087,8 @@
 !
 
 _INSTANCEOF_R: object _: classRef
-    "Called by the VM (java bytecode interpreter) for unhandled cases.
-     Unlike _INSTANCEOF:_: the second parameter is a class reference,
-     not the class itself!! Called by JIT-compiled code."
+    "An implementation of INSTANCEOF instruction. Called by the jitted code
+     when if the classRef hasn't been resolved at the time of jitting."
    
     | class |
 
--- a/Make.proto	Mon May 13 00:59:43 2013 +0100
+++ b/Make.proto	Tue May 14 15:36:56 2013 +0100
@@ -21,7 +21,7 @@
 INCLUDE_TOP=$(TOP)/..
 
 # subdirectories where targets are to be made:
-SUBDIRS= tools benchmarks libs experiments
+SUBDIRS= tools experiments
 
 
 # subdirectories where Makefiles are to be made:
--- a/abbrev.stc	Mon May 13 00:59:43 2013 +0100
+++ b/abbrev.stc	Tue May 14 15:36:56 2013 +0100
@@ -5,6 +5,7 @@
 GroovyEvaluator GroovyEvaluator stx:libjava 'Languages-Groovy-Compiler' 0
 GroovyLanguage GroovyLanguage stx:libjava 'Languages-Groovy-Support' 1
 GroovySourceFileWriter GroovySourceFileWriter stx:libjava 'Languages-Groovy-Support' 0
+JUnitTestCaseProxy JUnitTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 JavaAnnotation JavaAnnotation stx:libjava 'Languages-Java-Reader-Support' 0
 JavaAnnotationContainer JavaAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
 JavaAnnotationDefault JavaAnnotationDefault stx:libjava 'Languages-Java-Annotations' 1
@@ -13,11 +14,14 @@
 JavaAntProjectResource JavaAntProjectResource stx:libjava 'Languages-Java-Tests' 2
 JavaArray JavaArray stx:libjava 'Languages-Java-Classes' 1
 JavaByte JavaByte stx:libjava 'Languages-Java-Support' 0
+JavaByteCodeDisassemblerTests JavaByteCodeDisassemblerTests stx:libjava 'Languages-Java-Tests' 1
 JavaByteCodeProcessor JavaByteCodeProcessor stx:libjava 'Languages-Java-Bytecode' 0
 JavaByteCodeProcessorTests JavaByteCodeProcessorTests stx:libjava 'Languages-Java-Tests' 1
 JavaClassAccessor JavaClassAccessor stx:libjava 'Languages-Java-Classes' 0
 JavaClassLoadingTests JavaClassLoadingTests stx:libjava 'Languages-Java-Tests-ClassLoading' 1
 JavaClassQuery JavaClassQuery stx:libjava 'Languages-Java-Classes' 1
+JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaClassRefTests JavaClassRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaClassReloader JavaClassReloader stx:libjava 'Languages-Java-Support' 0
 JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
 JavaCompiler_Eclipse JavaCompiler_Eclipse stx:libjava 'Languages-Java-Tools-Eclipse' 0
@@ -30,8 +34,11 @@
 JavaExceptionTable JavaExceptionTable stx:libjava 'Languages-Java-Support' 0
 JavaExceptionTests JavaExceptionTests stx:libjava 'Languages-Java-Tests' 1
 JavaField JavaField stx:libjava 'Languages-Java-Reader-Support' 0
+JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaFinalizationRegistry JavaFinalizationRegistry stx:libjava 'Languages-Java-Support' 0
 JavaFreshlyInitializedResource JavaFreshlyInitializedResource stx:libjava 'Languages-Java-Tests' 1
+JavaInitializedResource JavaInitializedResource stx:libjava 'Languages-Java-Tests' 2
+JavaInterfaceMethodRefTests JavaInterfaceMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaJUnitTests JavaJUnitTests stx:libjava 'Languages-Java-Tests-Libraries' 1
 JavaLanguage JavaLanguage stx:libjava 'Languages-Java-Support' 1
 JavaLibraries JavaLibraries stx:libjava 'Languages-Java-Support' 0
@@ -44,6 +51,7 @@
 JavaLookupTestsResource JavaLookupTestsResource stx:libjava 'Languages-Java-Tests-Interop' 3
 JavaMathSupport JavaMathSupport stx:libjava 'Languages-Java-Support-Native' 0
 JavaMetaclass JavaMetaclass stx:libjava 'Languages-Java-Classes' 0
+JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaMirror JavaMirror stx:libjava 'Languages-Java-Classes' 0
 JavaMonitor JavaMonitor stx:libjava 'Languages-Java-Support' 0
 JavaMonitorsTests JavaMonitorsTests stx:libjava 'Languages-Java-Tests' 1
@@ -57,8 +65,10 @@
 JavaPopUpView JavaPopUpView stx:libjava 'Languages-Java-Views-Support' 2
 JavaProcess JavaProcess stx:libjava 'Languages-Java-Classes' 0
 JavaRef2 JavaRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
+JavaRefMock JavaRefMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
 JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaResolver JavaResolver stx:libjava 'Languages-Java-Reader-Support-new' 0
+JavaRuntimeConstantPoolTests JavaRuntimeConstantPoolTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaShort JavaShort stx:libjava 'Languages-Java-Support' 0
 JavaSlotIndexCache JavaSlotIndexCache stx:libjava 'Languages-Java-Support' 0
 JavaSocket JavaSocket stx:libjava 'Languages-Java-Support' 0
@@ -66,6 +76,7 @@
 JavaSourceFileWriter JavaSourceFileWriter stx:libjava 'Languages-Java-Support' 0
 JavaTestCaseProxy JavaTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 JavaTestsLoader JavaTestsLoader stx:libjava 'Languages-Java-Tests' 0
+JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
 JavaTopView JavaTopView stx:libjava 'Languages-Java-Views-Support' 2
 JavaUTF8Tests JavaUTF8Tests stx:libjava 'Languages-Java-Tests' 1
 JavaUnresolvedCompilationError JavaUnresolvedCompilationError stx:libjava 'Languages-Java-Support' 1
@@ -79,9 +90,9 @@
 ProxyMethodNode ProxyMethodNode stx:libjava 'System-Compiler-Interop' 0
 SmalltalkAppletContext SmalltalkAppletContext stx:libjava 'Languages-Java-Views-Support' 0
 SmalltalkAppletStub SmalltalkAppletStub stx:libjava 'Languages-Java-Views-Support' 0
+TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 stx_libjava stx_libjava stx:libjava '* Projects & Packages *' 3
 GroovyMetaclass GroovyMetaclass stx:libjava 'Languages-Groovy-Classes' 0
-JUnitTestCaseProxy JUnitTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 Java Java stx:libjava 'Languages-Java-Support' 0
 JavaAnnotationArrayValue JavaAnnotationArrayValue stx:libjava 'Languages-Java-Reader-Support' 0
 JavaAnnotationClassValue JavaAnnotationClassValue stx:libjava 'Languages-Java-Reader-Support' 0
@@ -90,15 +101,12 @@
 JavaAnnotationPrimitiveValue JavaAnnotationPrimitiveValue stx:libjava 'Languages-Java-Reader-Support' 0
 JavaBehavior JavaBehavior stx:libjava 'Languages-Java-Classes' 0
 JavaByteCodeDisassembler JavaByteCodeDisassembler stx:libjava 'Languages-Java-Bytecode' 0
-JavaByteCodeDisassemblerTests JavaByteCodeDisassemblerTests stx:libjava 'Languages-Java-Tests' 1
 JavaByteCodeEnumerator JavaByteCodeEnumerator stx:libjava 'Languages-Java-Support-Decompiling' 0
 JavaByteCodeProcessorAdapter JavaByteCodeProcessorAdapter stx:libjava 'Languages-Java-Bytecode' 0
 JavaClassAnnotationContainer JavaClassAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
 JavaClassContentRef2 JavaClassContentRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaClassReader JavaClassReader stx:libjava 'Languages-Java-Support' 0
-JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaClassRef2 JavaClassRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaClassRefTests JavaClassRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaClassRegistry JavaClassRegistry stx:libjava 'Languages-Java-Support' 0
 JavaCodeBundle JavaCodeBundle stx:libjava 'Languages-Java-Support-Libraries' 0
 JavaCodeLibrary JavaCodeLibrary stx:libjava 'Languages-Java-Support-Libraries' 0
@@ -106,20 +114,13 @@
 JavaFieldAnnotationContainer JavaFieldAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
 JavaFieldDescriptor JavaFieldDescriptor stx:libjava 'Languages-Java-Support' 0
 JavaFieldDescriptorWithUnionType JavaFieldDescriptorWithUnionType stx:libjava 'Languages-Java-Support' 0
-JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
-JavaInitializedResource JavaInitializedResource stx:libjava 'Languages-Java-Tests' 2
-JavaInterfaceMethodRefTests JavaInterfaceMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaInvalidRefError JavaInvalidRefError stx:libjava 'Languages-Java-Support' 1
 JavaMethod JavaMethod stx:libjava 'Languages-Java-Classes' 0
 JavaMethodAnnotationContainer JavaMethodAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
 JavaMethodDescriptor JavaMethodDescriptor stx:libjava 'Languages-Java-Support' 0
-JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaNativeMethodImpl_OpenJDK6 JavaNativeMethodImpl_OpenJDK6 stx:libjava 'Languages-Java-Support-OpenJDK6' 0
-JavaRefMock JavaRefMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
 JavaRelease JavaRelease stx:libjava 'Languages-Java-Support' 1
-JavaRuntimeConstantPoolTests JavaRuntimeConstantPoolTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaStringRef2 JavaStringRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
 JavaUnhandledExceptionError JavaUnhandledExceptionError stx:libjava 'Languages-Java-Support' 1
 JavaUnresolvedClassConstant JavaUnresolvedClassConstant stx:libjava 'Languages-Java-Reader-Support' 0
 JavaUnresolvedStringConstant JavaUnresolvedStringConstant stx:libjava 'Languages-Java-Reader-Support' 0
@@ -128,7 +129,6 @@
 ProxyMethodGuardNode ProxyMethodGuardNode stx:libjava 'System-Compiler-Interop' 0
 ProxyMethodInvocationNode ProxyMethodInvocationNode stx:libjava 'System-Compiler-Interop' 0
 ProxyMethodJavaFieldAccessor ProxyMethodJavaFieldAccessor stx:libjava 'Languages-Java-Interop' 0
-TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 JavaByteCodePreresolver JavaByteCodePreresolver stx:libjava 'Languages-Java-Bytecode' 0
 JavaClass JavaClass stx:libjava 'Languages-Java-Classes' 0
 JavaClassPathBundle JavaClassPathBundle stx:libjava 'Languages-Java-Support-Libraries' 0
--- a/bmake.bat	Mon May 13 00:59:43 2013 +0100
+++ b/bmake.bat	Tue May 14 15:36:56 2013 +0100
@@ -17,20 +17,6 @@
 @cd ..
 
 @echo "***********************************"
-@echo "Buildung stx/libjava/benchmarks
-@echo "***********************************"
-@cd benchmarks
-@call bmake %1 %2
-@cd ..
-
-@echo "***********************************"
-@echo "Buildung stx/libjava/libs
-@echo "***********************************"
-@cd libs
-@call bmake %1 %2
-@cd ..
-
-@echo "***********************************"
 @echo "Buildung stx/libjava/experiments
 @echo "***********************************"
 @cd experiments
--- a/extensions.st	Mon May 13 00:59:43 2013 +0100
+++ b/extensions.st	Tue May 14 15:36:56 2013 +0100
@@ -114,6 +114,30 @@
     "Modified: / 07-05-2013 / 11:21:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!BooleanArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BooleanArray methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^cls == BooleanArray ifTrue:[self] ifFalse:[JavaVM throwClassCastException]
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BooleanArray methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^BooleanArray == cls ifTrue:[1] ifFalse:[0]
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !BooleanArray methodsFor:'queries'!
 
 isInterface
@@ -175,6 +199,30 @@
     "Modified: / 31-08-2011 / 23:57:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!ByteArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ByteArray methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^cls == BooleanArray ifTrue:[self] ifFalse:[JavaVM throwClassCastException]
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ByteArray methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^BooleanArray == cls ifTrue:[1] ifFalse:[0]
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !ByteArray class methodsFor:'testing'!
 
 isInterface
@@ -293,6 +341,37 @@
     "Modified: / 07-05-2013 / 11:21:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!CharacterArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CharacterArray methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    cls == Unicode16String ifTrue:[^self].
+    cls == String          ifTrue:[^self].
+    ^JavaVM throwClassCastException.
+
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:10:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CharacterArray methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    cls == Unicode16String ifTrue:[^1].
+    cls == String          ifTrue:[^1].
+    ^0
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:10:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !CharacterArray methodsFor:'java conversions'!
 
 asDottedJavaClassName
@@ -675,6 +754,32 @@
     "Created: / 30-11-2011 / 13:38:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 ! !
 
+!DoubleArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!DoubleArray methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^cls == DoubleArray ifTrue:[self] ifFalse:[JavaVM throwClassCastException]
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:11:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!DoubleArray methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^DoubleArray == cls ifTrue:[1] ifFalse:[0]
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:11:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !DoubleArray class methodsFor:'testing'!
 
 isInterface
@@ -806,6 +911,32 @@
     "Modified: / 07-05-2013 / 11:21:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!FloatArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!FloatArray methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^cls == FloatArray ifTrue:[self] ifFalse:[JavaVM throwClassCastException]
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:11:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!FloatArray methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^FloatArray == cls ifTrue:[1] ifFalse:[0]
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:11:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !FloatArray class methodsFor:'testing'!
 
 isInterface
@@ -1032,6 +1163,30 @@
     "Created: / 22-08-2012 / 13:20:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!Object methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^JavaVM _ARRAYLENGTH: self
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!Object methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^JavaVM _CHECKCAST: self _: cls
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!Object methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^JavaVM _INSTANCEOF: self _: cls
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !Object methodsFor:'accessing-Java'!
 
 getJavaLockWord
@@ -1526,6 +1681,32 @@
     "Created: / 24-02-2012 / 19:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!SignedIntegerArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SignedIntegerArray methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^cls == SignedIntegerArray ifTrue:[self] ifFalse:[JavaVM throwClassCastException]
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:11:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SignedIntegerArray methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^SignedIntegerArray == cls ifTrue:[1] ifFalse:[0]
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:11:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !SignedIntegerArray class methodsFor:'testing'!
 
 isInterface
@@ -1570,6 +1751,32 @@
     "Modified: / 25-02-2011 / 19:03:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!SignedLongIntegerArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SignedLongIntegerArray methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^cls == SignedLongIntegerArray ifTrue:[self] ifFalse:[JavaVM throwClassCastException]
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:14:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SignedLongIntegerArray methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^SignedLongIntegerArray == cls ifTrue:[1] ifFalse:[0]
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:14:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !SignedLongIntegerArray class methodsFor:'testing'!
 
 isInterface
@@ -1624,6 +1831,32 @@
     "Modified: / 25-02-2011 / 19:03:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!SignedWordArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SignedWordArray methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^cls == SignedWordArray ifTrue:[self] ifFalse:[JavaVM throwClassCastException]
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:14:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SignedWordArray methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^SignedWordArray == cls ifTrue:[1] ifFalse:[0]
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:14:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !SignedWordArray class methodsFor:'queries'!
 
 isJavaArrayClass
@@ -1734,6 +1967,32 @@
     "Created: / 18-01-2013 / 22:27:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!UndefinedObject methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^JavaVM throwNullPointerException
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!UndefinedObject methodsFor:'vm support'!
+
+_CHECKCAST: cls
+    ^nil
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:10:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!UndefinedObject methodsFor:'vm support'!
+
+_INSTANCEOF: cls
+    ^0
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-05-2013 / 11:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !UndefinedObject class methodsFor:'queries'!
 
 isJavaPrimitiveType
--- a/lccmake.bat	Mon May 13 00:59:43 2013 +0100
+++ b/lccmake.bat	Tue May 14 15:36:56 2013 +0100
@@ -13,20 +13,6 @@
 @cd ..
 
 @echo "***********************************"
-@echo "Buildung stx/libjava/benchmarks
-@echo "***********************************"
-@cd benchmarks
-@call lccmake %1 %2
-@cd ..
-
-@echo "***********************************"
-@echo "Buildung stx/libjava/libs
-@echo "***********************************"
-@cd libs
-@call lccmake %1 %2
-@cd ..
-
-@echo "***********************************"
 @echo "Buildung stx/libjava/experiments
 @echo "***********************************"
 @cd experiments
--- a/libjava.rc	Mon May 13 00:59:43 2013 +0100
+++ b/libjava.rc	Tue May 14 15:36:56 2013 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\n          SWING Research Group, Czech Technical University In Prague\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Mon, 06 May 2013 21:32:27 GMT\0"
+      VALUE "ProductDate", "Tue, 14 May 2013 10:34:19 GMT\0"
     END
 
   END
--- a/libs/java/pom.xml	Mon May 13 00:59:43 2013 +0100
+++ b/libs/java/pom.xml	Tue May 14 15:36:56 2013 +0100
@@ -32,11 +32,13 @@
         </dependency>
         -->
 
+        <!-- 
         <dependency>
             <groupId>net.sf.jasperreports</groupId>
             <artifactId>jasperreports</artifactId>
             <version>5.0.1</version>
         </dependency>
+        -->
 
 
         <dependency>
@@ -80,11 +82,13 @@
             <version>4.8.2</version>
         </dependency>
 
+        <!-- 
         <dependency>
             <groupId>eclipse</groupId>
             <artifactId>eclipse-runtime</artifactId>
             <version>2.1.0</version>
         </dependency>
+        -->
 
         <dependency>
             <groupId>org.apache.poi</groupId>
--- a/mingwmake.bat	Mon May 13 00:59:43 2013 +0100
+++ b/mingwmake.bat	Tue May 14 15:36:56 2013 +0100
@@ -21,20 +21,6 @@
 @cd ..
 
 @echo "***********************************"
-@echo "Buildung stx/libjava/benchmarks
-@echo "***********************************"
-@cd benchmarks
-@call mingwmake %1 %2
-@cd ..
-
-@echo "***********************************"
-@echo "Buildung stx/libjava/libs
-@echo "***********************************"
-@cd libs
-@call mingwmake %1 %2
-@cd ..
-
-@echo "***********************************"
 @echo "Buildung stx/libjava/experiments
 @echo "***********************************"
 @cd experiments
--- a/stx_libjava.st	Mon May 13 00:59:43 2013 +0100
+++ b/stx_libjava.st	Tue May 14 15:36:56 2013 +0100
@@ -51,14 +51,6 @@
      as of 1.9.2010
 
 "
-!
-
-extensionsVersion_CVS
-    ^ '$Header: /cvs/stx/stx/libjava/extensions.st,v 1.4 2013-03-08 09:47:48 cg Exp $'
-!
-
-extensionsVersion_SVN
-    ^ '$Id: stx_libjava.st,v 1.12 2013-02-25 13:43:08 cg Exp $'
 ! !
 
 !stx_libjava class methodsFor:'accessing'!
@@ -166,7 +158,7 @@
      exclude individual packages in the #excludedFromPreRequisites method."
 
     ^ #(
-        #'stx:goodies/sunit'    "TestAsserter - superclass of JUnitTestCaseProxy "
+        #'stx:goodies/sunit'    "TestAsserter - superclass of JavaAntProjectResource "
         #'stx:libbasic'    "AbstractNumberVector - extended "
         #'stx:libbasic2'    "BitArray - extended "
         #'stx:libbasic3'    "WrappedMethod - extended "
@@ -202,8 +194,6 @@
 
     ^ #(
         #'stx:libjava/tools'
-        #'stx:libjava/benchmarks'
-        #'stx:libjava/libs'
         #'stx:libjava/experiments'
     )
 ! !
@@ -321,6 +311,7 @@
         GroovyEvaluator
         GroovyLanguage
         GroovySourceFileWriter
+        (JUnitTestCaseProxy autoload)
         JavaAnnotation
         JavaAnnotationContainer
         JavaAnnotationDefault
@@ -329,11 +320,14 @@
         (JavaAntProjectResource autoload)
         JavaArray
         JavaByte
+        (JavaByteCodeDisassemblerTests autoload)
         JavaByteCodeProcessor
         (JavaByteCodeProcessorTests autoload)
         JavaClassAccessor
         (JavaClassLoadingTests autoload)
         JavaClassQuery
+        (JavaClassReaderTests autoload)
+        (JavaClassRefTests autoload)
         JavaClassReloader
         JavaCodeLibraryOrBundle
         #'JavaCompiler_Eclipse'
@@ -346,8 +340,11 @@
         JavaExceptionTable
         (JavaExceptionTests autoload)
         JavaField
+        (JavaFieldRefTests autoload)
         JavaFinalizationRegistry
         (JavaFreshlyInitializedResource autoload)
+        (JavaInitializedResource autoload)
+        (JavaInterfaceMethodRefTests autoload)
         (JavaJUnitTests autoload)
         JavaLanguage
         JavaLibraries
@@ -360,6 +357,7 @@
         (JavaLookupTestsResource autoload)
         JavaMathSupport
         JavaMetaclass
+        (JavaMethodRefTests autoload)
         JavaMirror
         JavaMonitor
         (JavaMonitorsTests autoload)
@@ -373,8 +371,10 @@
         JavaPopUpView
         JavaProcess
         JavaRef2
+        (JavaRefMock autoload)
         (JavaRefsAndConstantPoolTestCase autoload)
         JavaResolver
+        (JavaRuntimeConstantPoolTests autoload)
         JavaShort
         JavaSlotIndexCache
         JavaSocket
@@ -382,6 +382,7 @@
         JavaSourceFileWriter
         (JavaTestCaseProxy autoload)
         JavaTestsLoader
+        (JavaTestsResource autoload)
         JavaTopView
         (JavaUTF8Tests autoload)
         JavaUnresolvedCompilationError
@@ -395,9 +396,9 @@
         ProxyMethodNode
         SmalltalkAppletContext
         SmalltalkAppletStub
+        (TestletTestCaseProxy autoload)
         #'stx_libjava'
         GroovyMetaclass
-        (JUnitTestCaseProxy autoload)
         Java
         JavaAnnotationArrayValue
         JavaAnnotationClassValue
@@ -406,15 +407,12 @@
         JavaAnnotationPrimitiveValue
         JavaBehavior
         JavaByteCodeDisassembler
-        (JavaByteCodeDisassemblerTests autoload)
         JavaByteCodeEnumerator
         JavaByteCodeProcessorAdapter
         JavaClassAnnotationContainer
         JavaClassContentRef2
         JavaClassReader
-        (JavaClassReaderTests autoload)
         JavaClassRef2
-        (JavaClassRefTests autoload)
         JavaClassRegistry
         JavaCodeBundle
         JavaCodeLibrary
@@ -422,20 +420,13 @@
         JavaFieldAnnotationContainer
         JavaFieldDescriptor
         JavaFieldDescriptorWithUnionType
-        (JavaFieldRefTests autoload)
-        (JavaInitializedResource autoload)
-        (JavaInterfaceMethodRefTests autoload)
         JavaInvalidRefError
         JavaMethod
         JavaMethodAnnotationContainer
         JavaMethodDescriptor
-        (JavaMethodRefTests autoload)
         #'JavaNativeMethodImpl_OpenJDK6'
-        (JavaRefMock autoload)
         JavaRelease
-        (JavaRuntimeConstantPoolTests autoload)
         JavaStringRef2
-        (JavaTestsResource autoload)
         JavaUnhandledExceptionError
         JavaUnresolvedClassConstant
         JavaUnresolvedStringConstant
@@ -444,7 +435,6 @@
         ProxyMethodGuardNode
         ProxyMethodInvocationNode
         ProxyMethodJavaFieldAccessor
-        (TestletTestCaseProxy autoload)
         JavaByteCodePreresolver
         JavaClass
         JavaClassPathBundle
@@ -633,6 +623,36 @@
         Context arg1Index
         'Float class' javaUnbox:onError:
         'ShortFloat class' javaUnbox:onError:
+        BooleanArray #'_ARRAYLENGTH:'
+        BooleanArray #'_CHECKCAST:'
+        BooleanArray #'_INSTANCEOF:'
+        ByteArray #'_ARRAYLENGTH:'
+        ByteArray #'_CHECKCAST:'
+        ByteArray #'_INSTANCEOF:'
+        CharacterArray #'_ARRAYLENGTH:'
+        CharacterArray #'_CHECKCAST:'
+        CharacterArray #'_INSTANCEOF:'
+        DoubleArray #'_ARRAYLENGTH:'
+        DoubleArray #'_CHECKCAST:'
+        DoubleArray #'_INSTANCEOF:'
+        FloatArray #'_ARRAYLENGTH:'
+        FloatArray #'_CHECKCAST:'
+        FloatArray #'_INSTANCEOF:'
+        Object #'_ARRAYLENGTH:'
+        Object #'_CHECKCAST:'
+        Object #'_INSTANCEOF:'
+        SignedIntegerArray #'_ARRAYLENGTH:'
+        SignedIntegerArray #'_CHECKCAST:'
+        SignedIntegerArray #'_INSTANCEOF:'
+        SignedLongIntegerArray #'_ARRAYLENGTH:'
+        SignedLongIntegerArray #'_CHECKCAST:'
+        SignedLongIntegerArray #'_INSTANCEOF:'
+        SignedWordArray #'_ARRAYLENGTH:'
+        SignedWordArray #'_CHECKCAST:'
+        SignedWordArray #'_INSTANCEOF:'
+        UndefinedObject #'_ARRAYLENGTH:'
+        UndefinedObject #'_CHECKCAST:'
+        UndefinedObject #'_INSTANCEOF:'
     )
 ! !
 
--- a/vcmake.bat	Mon May 13 00:59:43 2013 +0100
+++ b/vcmake.bat	Tue May 14 15:36:56 2013 +0100
@@ -25,20 +25,6 @@
 @cd ..
 
 @echo "***********************************"
-@echo "Buildung stx/libjava/benchmarks
-@echo "***********************************"
-@cd benchmarks
-@call vcmake %1 %2
-@cd ..
-
-@echo "***********************************"
-@echo "Buildung stx/libjava/libs
-@echo "***********************************"
-@cd libs
-@call vcmake %1 %2
-@cd ..
-
-@echo "***********************************"
 @echo "Buildung stx/libjava/experiments
 @echo "***********************************"
 @cd experiments