Merged 2fdee4f9e146 (tools support and fixes) and 7d5ffec2f654 (multivers fixes) development
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sun, 06 Oct 2013 00:03:39 +0100
branchdevelopment
changeset 2800 24e508459735
parent 2798 2fdee4f9e146 (current diff)
parent 2759 7d5ffec2f654 (diff)
child 2802 b9c510a2234e
Merged 2fdee4f9e146 (tools support and fixes) and 7d5ffec2f654 (multivers fixes)
JavaClass.st
Make.proto
abbrev.stc
bmake.bat
libjava.rc
stx_libjava.st
--- a/JavaBehavior.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/JavaBehavior.st	Sun Oct 06 00:03:39 2013 +0100
@@ -194,30 +194,45 @@
     "Created: / 15-09-2013 / 00:29:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+hasMultipleVersions
+    "
+    return true if this class has multiple coexisting versions
+    "
+    ^ (accessFlags bitAnd:ACX_HASMULTIVERS) ~~ 1
+
+    "Created: / 02-10-2013 / 21:48:24 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
 makeObsolete
     accessFlags := accessFlags bitOr:ACC_OBSOLETE
 
     "Created: 7.8.1997 / 19:04:48 / cg"
 !
 
-markCacheable
+markMultipleVersions
     "
-    mark this class cacheable - references to this class don't have to be 
-    resolved over and over again, but can be cached.
-    "
-    self breakPoint: #mh.
+     mark this class cacheable - references to this class don't have to be
+     resolved over and over again, but can be cached."
+    
+    (accessFlags bitAnd: ACX_HASMULTIVERS) ~~ 1 ifTrue: [
+        accessFlags := accessFlags bitXor: ACX_HASMULTIVERS
+    ].
 
     "Created: / 14-04-2013 / 14:17:38 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: / 02-10-2013 / 21:40:19 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
-markNonCacheable
+markNonMultipleVersions
     "
-    mark this class non cacheable - references to this class have to be 
-    resolved over and over again, because multiple versions of this class exist.
-    "
-    self breakPoint: #mh.
+     mark this class non cacheable - references to this class have to be
+     resolved over and over again, because multiple versions of this class exist."
+    
+    (accessFlags bitAnd: ACX_HASMULTIVERS) ~~ 0 ifTrue: [
+        accessFlags := accessFlags bitXor: ACX_HASMULTIVERS
+    ].
 
     "Created: / 14-04-2013 / 14:25:23 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified (format): / 02-10-2013 / 21:47:26 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 markUninitialized
--- a/JavaClass.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/JavaClass.st	Sun Oct 06 00:03:39 2013 +0100
@@ -2391,6 +2391,12 @@
     "Created: / 5.11.1998 / 23:04:50 / cg"
 !
 
+canCacheReferences
+    ^ self versions isNil or: [ self versions isEmpty ].
+
+    "Created: / 10-09-2013 / 00:07:40 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
 canHaveExtensions
     ^false
 
@@ -2478,10 +2484,11 @@
 !
 
 isFullyResolved
-constantPool do: [:each | (each isJavaRef and: [each isResolved not]) ifTrue: [^false]].
-^ true.
+    constantPool do: [:each | (each isJavaRef and: [each isResolved not]) ifTrue: [^false]].
+    ^ true.
 
     "Created: / 08-12-2011 / 20:44:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified (format): / 02-10-2013 / 21:29:57 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 isJavaArrayClass
@@ -2982,8 +2989,11 @@
     2) versions instance includes both self and aJavaClass.
     "
 
+    self markMultipleVersions.
+    aJavaClass markMultipleVersions. 
+
     (self versions isNil and: [ aJavaClass versions isNil ]) ifTrue: [
-|versions|
+        |versions|        
         versions := WeakArray with: self with: aJavaClass.
         versions addDependent: JavaClass::JavaClassVersionDiedHandler new.
         self versions: versions.
@@ -3003,6 +3013,7 @@
     self error: 'merge of two classes both of which have multiple versions not supported'.
 
     "Created: / 14-04-2013 / 13:44:03 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: / 02-10-2013 / 21:52:39 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 ! !
 
 !JavaClass::Attributes class methodsFor:'accessing'!
@@ -3063,6 +3074,7 @@
 history
 
     "Created: #update:with:from: / 14-04-2013 / 14:04:20 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: #update:with:from: / 02-10-2013 / 21:49:51 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 ! !
 
 !JavaClass::JavaClassVersionDiedHandler methodsFor:'notification'!
@@ -3078,10 +3090,11 @@
         "only one version remaining - we can start caching. Let's change the flag"
         | javaClass |
         javaClass := (source at: 1).
-        javaClass markCacheable.
+        javaClass markNonMultipleVersions.
     ].
 
     "Created: / 14-04-2013 / 14:04:20 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: / 02-10-2013 / 21:49:51 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 ! !
 
 !JavaClass class methodsFor:'documentation'!
--- a/JavaClassReloader.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/JavaClassReloader.st	Sun Oct 06 00:03:39 2013 +0100
@@ -159,19 +159,20 @@
 
     anyInvalidated := false.
     JavaVM registry classesDo:[:class|
-        anyInvalidated := anyInvalidated | (self invalidateClass: class).
+        anyInvalidated := (self invalidateClass: class) | anyInvalidated.
     ].
     anyInvalidated ifTrue:[ObjectMemory flushCaches].
 
     "Created: / 21-02-2012 / 09:47:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-10-2013 / 23:27:59 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 invalidateClass: javaClass
-
-    ^javaClass constantPool invalidateForClass: oldClass
+    ^  javaClass constantPool invalidateForClass: oldClass name.
 
     "Created: / 21-02-2012 / 09:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 15-09-2013 / 00:26:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-10-2013 / 23:28:51 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 migrate
--- a/JavaConstantPool.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/JavaConstantPool.st	Sun Oct 06 00:03:39 2013 +0100
@@ -76,19 +76,12 @@
 !JavaConstantPool class methodsFor:'special'!
 
 invalidateForClass: internalJavaClassName 
-    "Only alias, everybody calls invalidateForClass so why not me :)"
-    
-    ^ self invalidateReferencesToClass: internalJavaClassName.
-
-    "Created: / 08-04-2011 / 16:52:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
-!
-
-invalidateReferencesToClass: internalJavaClassName 
     "Go over all constant pools and call invalidateForClass on all 
      references. (usable when given class was unloaded etc)"
     ConstantPools do: [:each | each invalidateForClass: internalJavaClassName].
 
-    "Created: / 08-04-2011 / 16:09:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Created: / 08-04-2011 / 16:52:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 02-10-2013 / 21:05:44 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 ! !
 
 !JavaConstantPool methodsFor:'accessing'!
--- a/JavaFieldRef2.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/JavaFieldRef2.st	Sun Oct 06 00:03:39 2013 +0100
@@ -105,6 +105,12 @@
 !
 
 findResolvedValue: doClassInit
+    "
+    Stores resolved field in valueCache field, fills offset and 
+    type fields. In case of multiple coexisting java class versions
+    sets cleanCacheFlag recognized by the vm, which causes the
+    caches to be cleaned after the use.
+    "
     valueCache := JavaResolver uniqueInstance 
                 resolveFieldIndentifiedByRef: self.
     valueCache isStatic ifTrue: [ classCache := valueCache javaClass ] ifFalse: [
@@ -119,6 +125,7 @@
     "Modified: / 07-12-2011 / 21:52:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
     "Created: / 09-02-2012 / 23:09:18 / mh <hlopik@gmail.com>"
     "Modified: / 16-10-2012 / 10:46:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-10-2013 / 21:34:10 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 findStaticOffset
--- a/JavaRuntimeConstantPoolTests.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/JavaRuntimeConstantPoolTests.st	Sun Oct 06 00:03:39 2013 +0100
@@ -109,7 +109,7 @@
     cp := self getPrettyBigConstantPool.
     cp do: [:each | each isJavaRef ifTrue: [ each resolve ] ].
     cp do: [:each | each isJavaRef ifTrue: [ self assertTrue: (each isResolved) ] ].
-    JavaConstantPool invalidateReferencesToClass: 'Ljava/lang/Runnable;'.
+    JavaConstantPool invalidateForClass: 'Ljava/lang/Runnable;'.
     1 to: 13 do: [
         :index | 
         (cp at: index) isJavaRef ifTrue: [ self assertTrue: (cp at: index) isResolved ]
@@ -122,6 +122,7 @@
     ].
 
     "Created: / 12-04-2012 / 10:16:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 02-10-2013 / 21:08:42 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 ! !
 
 !JavaRuntimeConstantPoolTests class methodsFor:'documentation'!
--- a/abbrev.stc	Sat Oct 05 23:37:01 2013 +0100
+++ b/abbrev.stc	Sun Oct 06 00:03:39 2013 +0100
@@ -75,7 +75,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
+JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 0
 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
--- a/experiments/JavaClassReloaderTests.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/experiments/JavaClassReloaderTests.st	Sun Oct 06 00:03:39 2013 +0100
@@ -68,6 +68,8 @@
 history
 
     "Created: #resources / 21-12-2012 / 18:09:27 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: #setUp / 02-10-2013 / 22:54:13 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: #tearDown / 02-10-2013 / 22:54:16 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 ! !
 
 !JavaClassReloaderTests class methodsFor:'resources'!
@@ -152,14 +154,18 @@
 
 setUp
     testClassLoader := JAVA java lang ClassLoader new.
+    ObjectMemory garbageCollect.
 
     "Created: / 16-12-2012 / 16:32:32 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: / 02-10-2013 / 22:54:13 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 tearDown
     JavaVM registry unregisterClassLoader: testClassLoader.
+    ObjectMemory garbageCollect.
 
     "Created: / 16-12-2012 / 16:33:31 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: / 02-10-2013 / 22:54:16 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 ! !
 
 !JavaClassReloaderTests methodsFor:'test helpers'!
--- a/experiments/JavaSingleClassReloaderTests.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/experiments/JavaSingleClassReloaderTests.st	Sun Oct 06 00:03:39 2013 +0100
@@ -78,25 +78,24 @@
 
 !JavaSingleClassReloaderTests methodsFor:'tests - fields'!
 
-test_fields_00
-    "
-    1) compile simple class with one field
-    2) change type of the field from int to Object
-
+test_fields_00a
     "
-
-    | jclass1 jinst1 jclass2 jinst2 callerClass |
-
-    jclass1 := self compileAndRegister:'
+     1) compile simple class with one field
+     2) change type of the field from int to Object
+"
+    
+    | jclass1  jinst1  jclass2  jinst2  callerClass |
+    jclass1 := self 
+            compileAndRegister: '
 public class test_01 { 
-    public String foo = 1;
+    public int foo = 1;
     public int bar() {
         return 1;
     }
 }'.
     jinst1 := jclass1 new.
-
-    jclass2 := self compileAndRegister:'
+    jclass2 := self 
+            compileAndRegister: '
 public class test_01 { 
     public Object foo = new Object();
     public int bar() {
@@ -104,35 +103,80 @@
     }
 }'.
     jinst2 := jclass2 new.
-
-    callerClass := self compileAndRegister:'
+    callerClass := self 
+            compileAndRegister: '
 public class CallerClass {
     public static Object getFoo(test_01 inst) {
         return inst.foo;
     }
 }'.
-
     self assert: jclass1 ~~ jclass2.
-
     self assert: jclass1 fields size == 1.
-    self assert: jclass1 fields anElement descriptor = 'Ljava/lang/String;'.
+    self assert: jclass1 fields anElement descriptor = 'I'.
     self assert: jinst1 bar == 1.
-
     self assert: jclass2 fields size == 1.
     self assert: jclass2 fields anElement descriptor = 'Ljava/lang/Object;'.
     self assert: jinst2 bar == 2.
-
-    self should:   [ callerClass getFoo: jinst1 ] raise: Error.
+    self should: [ callerClass getFoo: jinst1 ] raise: Error.
     self shouldnt: [ callerClass getFoo: jinst2 ] raise: Error.
 
     "Created: / 09-04-2013 / 15:00:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 09-04-2013 / 16:17:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 19-09-2013 / 23:53:22 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
+test_fields_00b
+    "
+     1) compile simple class with one field
+     2) change type of the field from Object to int
+"
+    
+    | jclass1  jinst1  jclass2  jinst2  callerClass |
+    jclass1 := self 
+            compileAndRegister: '
+public class test_01 { 
+    public Object foo = new Object();
+    public int bar() {
+        return 1;
+    }
+}'.
+    jinst1 := jclass1 new.
+    jclass2 := self 
+            compileAndRegister: '
+public class test_01 { 
+    public int foo = 42;
+    public int bar() {
+        return 2;
+    }
+}'.
+    jinst2 := jclass2 new.
+    callerClass := self 
+            compileAndRegister: '
+public class CallerClass {
+    public static int getFoo(test_01 inst) {
+        return inst.foo;
+    }
+}'.
+    self assert: jclass1 ~~ jclass2.
+    self assert: jclass1 fields size == 1.
+    self assert: jclass1 fields anElement descriptor = 'Ljava/lang/Object;'.
+    self assert: jinst1 bar == 1.
+    self assert: jclass2 fields size == 1.
+    self assert: jclass2 fields anElement descriptor = 'I'.
+    self assert: jinst2 bar == 2.
+    self should: [ callerClass getFoo: jinst1 ] raise: Error.
+    self shouldnt: [ callerClass getFoo: jinst2 ] raise: Error.
+
+    "Created: / 20-09-2013 / 00:05:59 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+    "Modified: / 01-10-2013 / 22:05:28 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 test_fields_01a
     "
     1) compile simple class with one field
     2) change type of the field from String to Object
+    3) as this is type generalization, no new class version
+        should be introduced
 
     "
 
@@ -163,7 +207,7 @@
     }
 }'.
 
-    self assert: jclass1 ~~ jclass2.
+    self assert: jclass1 == jclass2.
 
     self assert: jclass1 fields size == 1.
     self assert: jclass1 fields anElement descriptor = 'Ljava/lang/String;'.
@@ -177,12 +221,14 @@
     self shouldnt: [ callerClass getFoo: jinst2 ] raise: Error.
 
     "Created: / 09-04-2013 / 15:24:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-09-2013 / 00:00:50 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 test_fields_01b
     "
     1) compile simple class with one field
-    2) change type of the field from String to Object
+    2) change type of the field from Object to String
+    3) new class version should be created
 
     "
 
@@ -190,7 +236,7 @@
 
     jclass1 := self compileAndRegister:'
 public class test_01 { 
-    public String foo = "XXX";
+    public Object foo = new Object();
     public int bar() {
         return 1;
     }
@@ -206,7 +252,7 @@
 
     jclass2 := self compileAndRegister:'
 public class test_01 { 
-    public Object foo = new Object();
+    public String foo = "XXX";
     public int bar() {
         return 2;
     }
@@ -218,17 +264,18 @@
     self assert: jclass1 ~~ jclass2.
 
     self assert: jclass1 fields size == 1.
-    self assert: jclass1 fields anElement descriptor = 'Ljava/lang/String;'.
+    self assert: jclass1 fields anElement descriptor = 'Ljava/lang/Object;'.
     self assert: jinst1 bar == 1.
 
     self assert: jclass2 fields size == 1.
-    self assert: jclass2 fields anElement descriptor = 'Ljava/lang/Object;'.
+    self assert: jclass2 fields anElement descriptor = 'Ljava/lang/String;'.
     self assert: jinst2 bar == 2.
 
     self shouldnt: [ callerClass getFoo: jinst1 ] raise: Error.
     self should:   [ callerClass getFoo: jinst2 ] raise: Error.
 
     "Created: / 09-04-2013 / 15:25:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-09-2013 / 00:04:35 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 !
 
 test_fields_02a
@@ -1631,3 +1678,10 @@
     "Created: / 14-09-2013 / 18:37:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!JavaSingleClassReloaderTests class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/experiments/Make.proto	Sat Oct 05 23:37:01 2013 +0100
+++ b/experiments/Make.proto	Sun Oct 06 00:03:39 2013 +0100
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libjava/tools
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/goodies/sunit
 
 
 # if you need any additional defines for embedded C code,
@@ -134,20 +134,12 @@
 # build all mandatory prerequisite packages (containing superclasses) for this package
 prereq:
 	cd ../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../goodies/refactoryBrowser/parser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../goodies/petitparser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../../libtool && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../tools && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
 
 
--- a/experiments/bc.mak	Sat Oct 05 23:37:01 2013 +0100
+++ b/experiments/bc.mak	Sun Oct 06 00:03:39 2013 +0100
@@ -34,7 +34,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libjava\tools
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\goodies\sunit
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -51,20 +51,12 @@
 # build all mandatory prerequisite packages (containing superclasses) for this package
 prereq:
 	pushd ..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\goodies\refactoryBrowser\parser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\goodies\petitparser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd .. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\tools & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd .. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 
 
 
--- a/experiments/experiments.rc	Sat Oct 05 23:37:01 2013 +0100
+++ b/experiments/experiments.rc	Sun Oct 06 00:03:39 2013 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2013\nCopyright eXept Software AG 1998-2013\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Fri, 20 Sep 2013 01:01:21 GMT\0"
+      VALUE "ProductDate", "Wed, 02 Oct 2013 21:33:48 GMT\0"
     END
 
   END
--- a/experiments/stx_libjava_experiments.st	Sat Oct 05 23:37:01 2013 +0100
+++ b/experiments/stx_libjava_experiments.st	Sun Oct 06 00:03:39 2013 +0100
@@ -77,10 +77,8 @@
 
     ^ #(
         #'stx:goodies/sunit'    "TestAsserter - superclass of JavaClassReloaderTests "
-        #'stx:goodies/sunit'    "TestAsserter - superclass of JavaByteCodeInterpreterTests "
-        #'stx:libbasic'    "Collection - superclass of SetSample "
-        #'stx:libjava'    "Java - superclass of JavaMethodWrapperCompiler "
-        #'stx:libjava/tools'    "JavaParserI - superclass of JavaCompiler::ClassSourceAnalyzer "
+        #'stx:libbasic'    "Array - extended "
+        #'stx:libjava'    "Java - extended "
     )
 !