--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaAlienMirror.st Wed Dec 18 12:03:32 2013 +0100
@@ -0,0 +1,277 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+ of one of the above copright owners. For exact set of such code,
+ see the differences between this version and version stx:libjava
+ as of 1.9.2010
+"
+"{ Package: 'stx:libjava' }"
+
+JavaMirror subclass:#JavaAlienMirror
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:'JavaVMData'
+ category:'Languages-Java-Classes'
+!
+
+!JavaAlienMirror class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+ of one of the above copright owners. For exact set of such code,
+ see the differences between this version and version stx:libjava
+ as of 1.9.2010
+
+"
+!
+
+documentation
+"
+ Specialized mirror for Smalltalk (and all other
+ non-Java classes)
+
+ [author:]
+ Jan Vrany <jan.vrany@fit.cvut.cz>
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+
+"
+! !
+
+!JavaAlienMirror methodsFor:'accessing'!
+
+getClassLoader
+ "Returns a class loader that loaded this class"
+
+ ^ (JavaVM classForName:'stx.libjava.ClassLoader' definedBy: nil) instVarNamed: #scl.
+
+ "Modified: / 18-05-2013 / 10:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredConstructors:publicOnly
+ "Returns an java.lang.reflect.Constructor[] with all constructors
+ declared by this class"
+
+ "Here, return onlu default constructor. Later, all methods annotated
+ with <jsignature: #'<init>(...)V'> wil be returned as well"
+
+ | ctors |
+
+ ctors := OrderedCollection new.
+ klass selectorsAndMethodsDo:[:sel :mthd|
+ (self isJavaConstructor: mthd selector: sel) ifTrue:[
+ ctors add: (self getDeclaredConstructorFor: mthd).
+ ].
+ ].
+
+ ctors isEmpty ifTrue:[
+ "/If no constructor is found, fake default one...
+ ctors add: (self getDeclaredConstructorFor: (klass lookupMethodFor: #initialize)).
+ ].
+
+ ^java_lang_reflect_Constructor javaArrayClass withAll: ctors
+
+ "Modified: / 18-05-2013 / 10:57:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredFields:publicOnly
+ "Returns an java.lang.reflect.Field[] with all constructors
+ declared by this class."
+
+ | fields |
+
+ fields := OrderedCollection new.
+
+ klass instVarNames withIndexDo:[:nm :index|
+ | field |
+
+ field := JavaField new.
+ field
+ setAccessFlags: JavaConstants ACC_PROTECTED;
+ setClass: klass;
+ setIndex: klass superclass instSize + index;
+ setDescriptor: #'Ljava/lang/Object;';
+ setName: nm.
+
+ fields add: (self createFieldFor: field)
+ ].
+
+ ^ java_lang_reflect_Field javaArrayClass
+ withAll:fields
+
+ "Modified: / 18-05-2013 / 10:57:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredMethods:publicOnly
+ "Returns an java.lang.reflect.Method[] with all methods
+ declared by this class"
+
+ | methods |
+
+ methods := OrderedCollection new.
+ klass selectorsAndMethodsDo:[:sel :mthd|
+ (self isJavaMethod: mthd selector: sel) ifTrue:[
+ methods add: (self getDeclaredMethodFor: mthd).
+ ].
+ ].
+ ^java_lang_reflect_Method javaArrayClass withAll: methods
+
+ "Modified: / 18-05-2013 / 10:57:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getInterfaces
+ "Return a list if interfaces"
+
+ ^ Array with: (JavaVM classForName: 'java.lang.Cloneable' definedBy: nil)
+
+ "Modified: / 18-05-2013 / 10:57:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getModifiers
+ "Return class modifiers (public/abstract/final...)"
+
+ ^ JavaConstants ACC_PUBLIC
+
+ "Modified: / 22-08-2012 / 11:01:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getName
+ "Returns name of the class"
+ ^'SMALLTALK.' , klass name
+
+ "Created: / 22-08-2012 / 10:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaAlienMirror methodsFor:'accessing-private'!
+
+getDeclaredConstructorFor: method
+ ^ self
+ createConstructorFor: klass
+ method: method
+ signature: (self getSignatureForConstructor: method)
+ modifiers: JavaConstants ACC_PUBLIC
+ parameterTyoes: #()
+ exceptionTypes: #()
+ annotations: JavaMethodAnnotationContainer new
+
+ "Created: / 22-08-2012 / 11:36:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredMethodFor:method
+ | signature name |
+
+ signature := self getSignatureForMethod: method short: false.
+ name := signature upTo: $(.
+ ^ self
+ createMethodFor: klass
+ method: method
+ name: name
+ signature: signature
+ modifiers: JavaConstants ACC_PUBLIC
+ parameterTyoes: ((1 to: method selector numArgs)collect:[:i|java_lang_Object])
+ returnType: java_lang_Object
+ exceptionTypes: #()
+ annotations: JavaMethodAnnotationContainer new
+
+ "Created: / 22-08-2012 / 11:36:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getSignatureForConstructor: method
+ | signature |
+
+ signature :=
+ (String streamContents:[:s|
+ s nextPutAll: '<init>('.
+ method selector numArgs timesRepeat:[
+ s nextPutAll:'Ljava/lang/Object;'.
+ ].
+ s nextPutAll: ')V'.
+ ]) asSymbol.
+ ^signature
+
+ "Created: / 22-08-2012 / 11:40:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getSignatureForMethod: method short: short
+ | selector signature |
+
+ selector := method selector.
+ signature :=
+ (String streamContents:[:s|
+ short ifTrue:[
+ s nextPutAll: (selector upTo: $:)
+ ] ifFalse:[
+ selector numArgs == 1 ifTrue:[
+ s nextPutAll: (selector copyTo: selector size - 1)
+ ] ifFalse:[
+ s nextPutAll: (selector copyReplaceAll: $: with: $_)
+ ]
+ ].
+ s nextPut: $(.
+ method selector numArgs timesRepeat:[
+ s nextPutAll:'Ljava/lang/Object;'.
+ ].
+ s nextPutAll: ')'.
+ s nextPutAll:'Ljava/lang/Object;'.
+ ]) asSymbol.
+ ^signature
+
+ "Created: / 22-08-2012 / 11:46:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaAlienMirror methodsFor:'testing-private'!
+
+isJavaConstructor: mthd selector: sel
+
+ ^sel startsWith: #initialize
+
+ "Created: / 22-08-2012 / 11:47:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isJavaMethod: mthd selector: sel
+
+ ^sel isBinarySelector not
+ and:[(self isJavaConstructor: mthd selector: sel) not]
+
+ "Created: / 22-08-2012 / 11:47:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaAlienMirror class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/JavaArray.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaArray.st Wed Dec 18 12:03:32 2013 +0100
@@ -20,7 +20,7 @@
"
"{ Package: 'stx:libjava' }"
-Array variableSubclass:#JavaArray
+Array subclass:#JavaArray
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
@@ -325,10 +325,44 @@
"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.
+%{
+ void ___checkcast_bind();
+ ___checkcast_bind(__pilc, __Class(self));
+
+%}.
+ ^self
+
+ "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+_INSTANCEOF: cls
+ | r |
+
+ r := JavaVM _INSTANCEOF: self _: cls.
+%{
+ void ___instanceof_bind();
+ ___instanceof_bind(__pilc, __Class(self), r);
+
+%}.
+ ^r
+
+ "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!JavaArray class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libjava/JavaArray.st,v 1.6 2013-09-06 00:41:12 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaArray.st,v 1.5 2013-02-25 11:15:31 vrany Exp $'
!
version_HG
@@ -337,6 +371,6 @@
!
version_SVN
- ^ 'Id'
+ ^ '§Id§'
! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaArrayMirror.st Wed Dec 18 12:03:32 2013 +0100
@@ -0,0 +1,117 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+ of one of the above copright owners. For exact set of such code,
+ see the differences between this version and version stx:libjava
+ as of 1.9.2010
+"
+"{ Package: 'stx:libjava' }"
+
+JavaMirror subclass:#JavaArrayMirror
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:'JavaVMData'
+ category:'Languages-Java-Classes'
+!
+
+!JavaArrayMirror class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+ of one of the above copright owners. For exact set of such code,
+ see the differences between this version and version stx:libjava
+ as of 1.9.2010
+
+"
+! !
+
+!JavaArrayMirror methodsFor:'accessing'!
+
+getClassLoader
+ "Returns a class loader that loaded this class"
+
+ ^ klass javaComponentClass javaMirror getClassLoader
+
+ "Modified: / 31-07-2012 / 18:35:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredConstructors:publicOnly
+ "Returns an java.lang.reflect.Constructor[] with all constructors
+ declared by this class"
+
+ ^ java_lang_reflect_Constructor javaArrayClass new:0.
+
+ "Modified: / 18-05-2013 / 10:57:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredFields:publicOnly
+ "Returns an java.lang.reflect.Field[] with all constructors
+ declared by this class."
+
+ ^java_lang_reflect_Field javaArrayClass new:0.
+
+ "Modified: / 18-05-2013 / 10:57:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredMethods:publicOnly
+ "Returns an java.lang.reflect.Method[] with all methods
+ declared by this class"
+
+ ^ java_lang_reflect_Method javaArrayClass new:0.
+
+ "Modified: / 18-05-2013 / 10:57:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getInterfaces
+ "Return a list if interfaces"
+
+ ^ Array
+ with: (JavaVM classForName: 'java.lang.Cloneable' definedBy: nil)
+ with: (JavaVM classForName: 'java.io.Serializable' definedBy: nil)
+
+ "Modified: / 18-05-2013 / 10:57:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getModifiers
+ "Return class modifiers (public/abstract/final...)"
+
+ ^ JavaConstants ACC_ABSTRACT | JavaConstants ACC_FINAL | JavaConstants ACC_PUBLIC
+
+ "Modified: / 22-08-2012 / 11:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaArrayMirror class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/JavaClass.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaClass.st Wed Dec 18 12:03:32 2013 +0100
@@ -29,7 +29,7 @@
category:'Languages-Java-Classes'
!
-Array variableSubclass:#Attributes
+Array subclass:#Attributes
instanceVariableNames:''
classVariableNames:'Empty'
poolDictionaries:''
@@ -127,6 +127,10 @@
"Modified: / 06-12-2013 / 22:59:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+
+
+
+
name:aString
self shouldNotImplement
@@ -555,6 +559,23 @@
"Modified: / 12.11.1998 / 15:29:10 / cg"
! !
+!JavaClass methodsFor:'* uncategorized *'!
+
+includesInterface: interface
+ | cls |
+
+ self == interface ifTrue: [ ^ true ].
+
+ cls := self.
+ [ cls isJavaClass ] whileTrue:[
+ cls interfaces do:[:i|(i includesInterface: interface) ifTrue:[ ^ true ]].
+ cls := cls superclass.
+ ].
+ ^ false.
+
+ "Created: / 21-05-2013 / 00:06:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!JavaClass methodsFor:'accessing'!
allFields
@@ -725,6 +746,8 @@
^ fields
!
+
+
javaClass
^ self
@@ -811,6 +834,10 @@
"Created: / 5.11.1998 / 19:16:00 / cg"
!
+
+
+
+
nameWithoutNameSpacePrefix
^ binaryName
@@ -1299,6 +1326,8 @@
"Modified: / 08-10-2013 / 22:36:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+
+
parent
^nil
@@ -2298,6 +2327,8 @@
"Modified: / 02-11-2012 / 21:49:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+
+
setInterfaces: i
super setInterfaces: i.
@@ -2523,6 +2554,12 @@
"Created: / 07-08-2011 / 15:50:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+isBuiltInClass
+ ^JavaVM builtInClassNames includes: name
+
+ "Created: / 22-05-2013 / 20:38:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
isCloneable
"Return true, if the receiver implements java.lang.Cloneable,
i.e., if it can be cloned using Object#clone()"
@@ -2726,6 +2763,8 @@
"Modified: / 10-10-2013 / 01:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+
+
selectMethodsAnnotatedWith:aJavaTypeName
^ self methodDictionary values select:
[:method |
@@ -2914,7 +2953,9 @@
"Created: / 10-11-1998 / 02:07:32 / cg"
"Modified: / 08-01-1999 / 14:11:34 / cg"
"Modified: / 05-07-2012 / 23:24:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
+!
+
+ !
!JavaClass methodsFor:'support - refactorings'!
@@ -3034,7 +3075,6 @@
"Modified: / 13-02-2013 / 09:36:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-
!JavaClass methodsFor:'unwind'!
unwindHandlerInContext: aContext
@@ -3168,11 +3208,11 @@
!JavaClass class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libjava/JavaClass.st,v 1.136 2013-09-06 00:41:18 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaClass.st,v 1.135 2013-04-27 12:31:15 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libjava/JavaClass.st,v 1.136 2013-09-06 00:41:18 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaClass.st,v 1.135 2013-04-27 12:31:15 cg Exp $'
!
version_SVN
@@ -3180,5 +3220,5 @@
! !
+JavaClass::Attributes initialize!
JavaClass initialize!
-JavaClass::Attributes initialize!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaClassMirror.st Wed Dec 18 12:03:32 2013 +0100
@@ -0,0 +1,212 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+ of one of the above copright owners. For exact set of such code,
+ see the differences between this version and version stx:libjava
+ as of 1.9.2010
+"
+"{ Package: 'stx:libjava' }"
+
+JavaMirror subclass:#JavaClassMirror
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:'JavaVMData'
+ category:'Languages-Java-Classes'
+!
+
+!JavaClassMirror class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+ of one of the above copright owners. For exact set of such code,
+ see the differences between this version and version stx:libjava
+ as of 1.9.2010
+
+"
+!
+
+documentation
+"
+ A specialized mirror for all Java classes
+
+ [author:]
+ Jan Vrany <jan.vrany@fit.cvut.cz>
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+
+"
+! !
+
+!JavaClassMirror methodsFor:'accessing'!
+
+getClassLoader
+ "Returns a class loader that loaded this class"
+
+ ^ klass classLoader
+
+ "Modified: / 31-07-2012 / 18:26:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredConstructors:publicOnly
+ "Returns an java.lang.reflect.Constructor[] with all constructors
+ declared by this class"
+
+ | ctors |
+
+ ctors := OrderedCollection new.
+ klass selectorsAndMethodsDo:[:sel :mthd|
+ (mthd isJavaConstructor and:[publicOnly not or:[mthd isPublic]]) ifTrue:[
+ ctors add: (self getDeclaredConstructorFor: mthd).
+ ].
+ ].
+ ^java_lang_reflect_Constructor javaArrayClass withAll: ctors
+
+ "Modified: / 18-05-2013 / 10:56:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredFields:publicOnly
+ "Returns an java.lang.reflect.Field[] with all constructors
+ declared by this class."
+
+ | fields |
+
+ fields := klass fields , klass staticFields.
+ publicOnly ifTrue:[ fields := fields select:[:f | f isPublic ] ].
+ JavaClassReader classLoaderQuerySignal answer: klass classLoader do:[
+ fields := fields collect:[:f | self createFieldFor:f ].
+ ].
+ ^ java_lang_reflect_Field javaArrayClass
+ withAll:fields
+
+ "Modified: / 18-05-2013 / 10:57:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredMethods:publicOnly
+ "Returns an java.lang.reflect.Constructor[] with all constructors
+ declared by this class"
+
+ | methods |
+
+ methods := OrderedCollection new.
+ klass selectorsAndMethodsDo:[:sel :mthd|
+ mthd isJavaMethod and:[
+ (mthd isJavaConstructor not
+ and:[mthd isJavaStaticInitializer not
+ and:[publicOnly not or:[mthd isPublic]]]) ifTrue:[
+ methods add: (self getDeclaredMethodFor: mthd).
+ ]
+ ].
+ ].
+ ^java_lang_reflect_Method javaArrayClass withAll: methods
+
+ "Modified: / 18-05-2013 / 10:57:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getGenericSignature
+ "Returns Java generic signature (if a generic class) or nil"
+
+ ^klass signatureJ
+
+ "Created: / 22-08-2012 / 11:58:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getInterfaces
+ "Return a list if interfaces"
+
+ ^ klass interfaces
+
+ "Modified: / 22-08-2012 / 11:08:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getModifiers
+ "Return class modifiers (public/abstract/final...)"
+
+ | modifiers |
+
+ "According to OpenJDK JVM, strip ACC_SUPER"
+ modifiers := (klass accessFlags & JavaConstants ACC_SUPER bitInvert) & 16r7FFF.
+ "JV@2011-10-30: It seems that private inner classes has no
+ private bit set, sigh"
+ (modifiers & 16r0007) == 0 ifTrue:[
+ modifiers := modifiers | JavaConstants ACC_PRIVATE.
+ ].
+ ^modifiers
+
+ "Modified: / 22-08-2012 / 11:03:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getProtectionDomain
+ ^klass protectionDomain
+
+ "Created: / 22-08-2012 / 12:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaClassMirror methodsFor:'accessing-private'!
+
+getDeclaredConstructorFor: method
+
+ ^self createConstructorFor: method javaClass
+ method: method
+ signature: method signature
+ modifiers: method accessFlags
+ parameterTyoes: (method descriptor parameterClassesUsingClassLoader: method javaClass classLoader)
+ exceptionTypes: method exceptionClasses
+ annotations: method method annotations.
+
+ "Created: / 01-08-2012 / 00:46:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredMethodFor: method
+
+ ^self createMethodFor: method javaClass
+ method: method
+ name: (method selector upTo: $()
+ signature: method signature
+ modifiers: method accessFlags
+ parameterTyoes: (method descriptor parameterClassesUsingClassLoader: method javaClass classLoader)
+ returnType: (method descriptor returnClassUsingClassLoader: method javaClass classLoader)
+ exceptionTypes: method exceptionClasses
+ annotations: method method annotations.
+
+ "Created: / 01-08-2012 / 11:11:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaClassMirror class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/JavaClassReader.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaClassReader.st Wed Dec 18 12:03:32 2013 +0100
@@ -22,11 +22,11 @@
Object subclass:#JavaClassReader
instanceVariableNames:'inStream msb constants majorVsn minorVsn constNeeds2Slots
- constSlot classBeingLoaded classLoader attributes'
+ constSlot classBeingLoaded classLoader attributes'
classVariableNames:'Verbose AnnotationsVerbose Silent AbsolutelySilent
- LazyClassLoading InvalidClassFormatSignal ClassLoaderQuerySignal
- JavaArchiveCache JavaArchiveCacheLock LastJavaArchive
- LastJavaArchiveLock MaxContextSize MaxContextSizeLimit'
+ LazyClassLoading InvalidClassFormatSignal ClassLoaderQuerySignal
+ JavaArchiveCache JavaArchiveCacheLock LastJavaArchive
+ LastJavaArchiveLock MaxContextSize MaxContextSizeLimit'
poolDictionaries:'JavaConstants'
category:'Languages-Java-Support'
!
@@ -478,7 +478,7 @@
read := [
nm := clsName , '.class'.
- (zar isValidPath: nm) ifTrue: [
+ (zar isValidFile: nm) ifTrue: [
(Java isExcludedFromClassPath: nm) ifFalse: [
JavaVM commonOpenStreamUsing:[ zar := zar reopenForReading ].
entry := zar extract: nm.
@@ -511,7 +511,7 @@
^nil
"Created: / 03-12-2012 / 22:47:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 21-11-2013 / 12:11:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+<conflict>
!
readClass: className ignoring: classesBeingLoadedOrNil classPath: classPath
@@ -2580,15 +2580,15 @@
!JavaClassReader class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libjava/JavaClassReader.st,v 1.98 2013-09-06 00:41:21 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaClassReader.st,v 1.97 2013-03-18 16:59:01 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libjava/JavaClassReader.st,v 1.98 2013-09-06 00:41:21 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaClassReader.st,v 1.97 2013-03-18 16:59:01 cg Exp $'
!
version_SVN
- ^ 'Id'
+ ^ '§Id§'
! !
--- a/JavaClassRegistry.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaClassRegistry.st Wed Dec 18 12:03:32 2013 +0100
@@ -320,6 +320,42 @@
!JavaClassRegistry methodsFor:'registering'!
+registerBuiltIn: class
+ | nm |
+
+ nm := class name.
+ nm == #'java/lang/Object' ifTrue:[
+ java_lang_Object := class.
+ ^self.
+ ].
+ nm == #'java/lang/System' ifTrue:[
+ java_lang_System := class.
+ ^self.
+ ].
+ nm == #'java/lang/Class' ifTrue:[
+ java_lang_Class := class.
+ "/ Force load of other reflective classes. This saves us a nil check in
+ "/ JavaMirror>>createMethod...
+ #(#'java/lang/reflect/Constructor' #'java/lang/reflect/Method' #'java/lang/reflect/Field') do:[:e|
+ vm classForName: e definedBy: nil.
+ ].
+ ^self.
+ ].
+ nm == #'java/lang/reflect/Constructor' ifTrue:[
+ java_lang_reflect_Constructor := class.
+ ].
+ nm == #'java/lang/reflect/Method' ifTrue:[
+ java_lang_reflect_Method := class.
+ ].
+ nm == #'java/lang/reflect/Field' ifTrue:[
+ java_lang_reflect_Field := class.
+ ].
+
+
+
+ "Created: / 22-05-2013 / 20:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
registerClass: newClass
| classes oldClass |
@@ -518,10 +554,10 @@
!JavaClassRegistry class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libjava/JavaClassRegistry.st,v 1.5 2013-09-06 00:41:22 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaClassRegistry.st,v 1.4 2013-04-25 13:10:25 stefan Exp $'
!
version_SVN
- ^ 'Id'
+ ^ '§Id§'
! !
--- a/JavaFinalizationRegistry.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaFinalizationRegistry.st Wed Dec 18 12:03:32 2013 +0100
@@ -388,14 +388,14 @@
| finalizedClass |
accessLock critical:[
- finalizedClass := JavaVM classForName:'java.lang.ref.Finalizer'.
+ finalizedClass := JavaVM classForName:'java.lang.ref.Finalizer' definedBy: nil.
finalizedClass classInit.
(finalizedClass methodDictionary at: #'register(Ljava/lang/Object;)V')
valueWithReceiver: finalizedClass arguments: (Array with: object).
].
"Created: / 24-07-2012 / 01:14:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 07-05-2013 / 11:19:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-05-2013 / 10:45:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
registerChange: anObject
--- a/JavaMirror.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaMirror.st Wed Dec 18 12:03:32 2013 +0100
@@ -23,38 +23,10 @@
Object subclass:#JavaMirror
instanceVariableNames:'klass reflection'
classVariableNames:''
- poolDictionaries:''
+ poolDictionaries:'JavaVMData'
category:'Languages-Java-Classes'
!
-JavaMirror subclass:#AlienClassMirror
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:JavaMirror
-!
-
-JavaMirror subclass:#JavaArrayMirror
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:JavaMirror
-!
-
-JavaMirror subclass:#JavaClassMirror
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:JavaMirror
-!
-
-JavaMirror subclass:#JavaPrimitiveMirror
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:JavaMirror
-!
-
!JavaMirror class methodsFor:'documentation'!
copyright
@@ -117,9 +89,10 @@
!JavaMirror class methodsFor:'accessing'!
mirrorClassForAlienClass
- ^ AlienClassMirror
+ ^ JavaAlienMirror
"Created: / 31-07-2012 / 17:36:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 24-05-2013 / 10:54:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
mirrorClassForJavaArray
@@ -273,7 +246,7 @@
"
| ctor |
- ctor := self create: (JavaVM classForName:'java.lang.reflect.Constructor')
+ ctor := self create: java_lang_reflect_Constructor
for: class
method: method
signature: signature
@@ -284,6 +257,7 @@
^ctor
"Created: / 01-08-2012 / 10:20:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-05-2013 / 10:55:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
createFieldFor: javaField
@@ -300,9 +274,15 @@
name := JavaVM reflection javaStringObjectForString: javaField name
interned: true.
slot := javaField index.
- type := JavaVM javaClassObjectForClass: javaField typeClass.
+ "/ Following could be coded like (and actually it was):
+ "/
+ "/type := JavaVM javaClassObjectForClass: javaField typeClass.
+ "/
+ "/ however, for performance reasons its better to avoid ClassLoader query, so:
+ type := JavaVM javaClassObjectForClass:
+ ((JavaDescriptor fromString: javaField descriptor) javaClassUsingClassLoader: javaField javaClass classLoader).
modifiers := javaField accessFlags.
- field := (JavaVM classForName: 'java.lang.reflect.Field') new.
+ field := java_lang_reflect_Field new.
field
instVarNamed: #clazz put: clazz;
instVarNamed: #name put: name;
@@ -318,6 +298,7 @@
^ field.
"Created: / 22-08-2012 / 12:09:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-05-2013 / 11:51:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
createMethodFor: class method: method name: name signature: signature modifiers: modifiers parameterTyoes: parameterClasses returnType: returnClass exceptionTypes: exceptionClasses annotations: annotations
@@ -335,7 +316,7 @@
"
| mthd |
- mthd := self create: (JavaVM classForName:'java.lang.reflect.Method')
+ mthd := self create: java_lang_reflect_Method
for: class
method: method
signature: signature
@@ -352,484 +333,7 @@
^mthd
"Created: / 01-08-2012 / 10:46:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!JavaMirror::AlienClassMirror class methodsFor:'documentation'!
-
-documentation
-"
- Specialized mirror for Smalltalk (and all other
- non-Java classes)
-
- [author:]
- Jan Vrany <jan.vrany@fit.cvut.cz>
-
- [instance variables:]
-
- [class variables:]
-
- [see also:]
-
-"
-! !
-
-!JavaMirror::AlienClassMirror methodsFor:'accessing'!
-
-getClassLoader
- "Returns a class loader that loaded this class"
-
- ^ (JavaVM classForName:'stx.libjava.ClassLoader') instVarNamed: #scl.
-
- "Modified: / 07-05-2013 / 11:19:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredConstructors:publicOnly
- "Returns an java.lang.reflect.Constructor[] with all constructors
- declared by this class"
-
- "Here, return onlu default constructor. Later, all methods annotated
- with <jsignature: #'<init>(...)V'> wil be returned as well"
-
- | ctors |
-
- ctors := OrderedCollection new.
- klass selectorsAndMethodsDo:[:sel :mthd|
- (self isJavaConstructor: mthd selector: sel) ifTrue:[
- ctors add: (self getDeclaredConstructorFor: mthd).
- ].
- ].
-
- ctors isEmpty ifTrue:[
- "/If no constructor is found, fake default one...
- ctors add: (self getDeclaredConstructorFor: (klass lookupMethodFor: #initialize)).
- ].
-
- ^(JavaVM classForName:'java.lang.reflect.Constructor') javaArrayClass withAll: ctors
-
- "Modified: / 22-08-2012 / 11:37:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredFields:publicOnly
- "Returns an java.lang.reflect.Field[] with all constructors
- declared by this class."
-
- | fields |
-
- fields := OrderedCollection new.
-
- klass instVarNames withIndexDo:[:nm :index|
- | field |
-
- field := JavaField new.
- field
- setAccessFlags: JavaConstants ACC_PROTECTED;
- setClass: klass;
- setIndex: klass superclass instSize + index;
- setDescriptor: #'Ljava/lang/Object;';
- setName: nm.
-
- fields add: (self createFieldFor: field)
- ].
-
- ^ (JavaVM classForName:'java.lang.reflect.Field') javaArrayClass
- withAll:fields
-
- "Modified: / 22-08-2012 / 12:19:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredMethods:publicOnly
- "Returns an java.lang.reflect.Method[] with all methods
- declared by this class"
-
- | methods |
-
- methods := OrderedCollection new.
- klass selectorsAndMethodsDo:[:sel :mthd|
- (self isJavaMethod: mthd selector: sel) ifTrue:[
- methods add: (self getDeclaredMethodFor: mthd).
- ].
- ].
- ^(JavaVM classForName:'java.lang.reflect.Method') javaArrayClass withAll: methods
-
- "Modified: / 22-08-2012 / 11:36:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getInterfaces
- "Return a list if interfaces"
-
- ^ Array with: (JavaVM classForName: 'java.lang.Cloneable')
-
- "Modified: / 22-08-2012 / 11:06:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getModifiers
- "Return class modifiers (public/abstract/final...)"
-
- ^ JavaConstants ACC_PUBLIC
-
- "Modified: / 22-08-2012 / 11:01:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getName
- "Returns name of the class"
- ^'SMALLTALK.' , klass name
-
- "Created: / 22-08-2012 / 10:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!JavaMirror::AlienClassMirror methodsFor:'accessing-private'!
-
-getDeclaredConstructorFor: method
- ^ self
- createConstructorFor: klass
- method: method
- signature: (self getSignatureForConstructor: method)
- modifiers: JavaConstants ACC_PUBLIC
- parameterTyoes: #()
- exceptionTypes: #()
- annotations: JavaMethodAnnotationContainer new
-
- "Created: / 22-08-2012 / 11:36:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredMethodFor:method
- | signature name java_lang_Object |
-
- signature := self getSignatureForMethod: method short: false.
- name := signature upTo: $(.
- java_lang_Object := JavaVM classNamed: 'java.lang.Object'.
- ^ self
- createMethodFor: klass
- method: method
- name: name
- signature: signature
- modifiers: JavaConstants ACC_PUBLIC
- parameterTyoes: ((1 to: method selector numArgs) collect:[:i|java_lang_Object])
- returnType: java_lang_Object
- exceptionTypes: #()
- annotations: JavaMethodAnnotationContainer new
-
- "Created: / 22-08-2012 / 11:36:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getSignatureForConstructor: method
- | signature |
-
- signature :=
- (String streamContents:[:s|
- s nextPutAll: '<init>('.
- method selector numArgs timesRepeat:[
- s nextPutAll:'Ljava/lang/Object;'.
- ].
- s nextPutAll: ')V'.
- ]) asSymbol.
- ^signature
-
- "Created: / 22-08-2012 / 11:40:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getSignatureForMethod: method short: short
- | selector signature |
-
- selector := method selector.
- signature :=
- (String streamContents:[:s|
- short ifTrue:[
- s nextPutAll: (selector upTo: $:)
- ] ifFalse:[
- selector numArgs == 1 ifTrue:[
- s nextPutAll: (selector copyTo: selector size - 1)
- ] ifFalse:[
- s nextPutAll: (selector copyReplaceAll: $: with: $_)
- ]
- ].
- s nextPut: $(.
- method selector numArgs timesRepeat:[
- s nextPutAll:'Ljava/lang/Object;'.
- ].
- s nextPutAll: ')'.
- s nextPutAll:'Ljava/lang/Object;'.
- ]) asSymbol.
- ^signature
-
- "Created: / 22-08-2012 / 11:46:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!JavaMirror::AlienClassMirror methodsFor:'testing-private'!
-
-isJavaConstructor: mthd selector: sel
-
- ^sel startsWith: #initialize
-
- "Created: / 22-08-2012 / 11:47:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-isJavaMethod: mthd selector: sel
-
- ^sel isBinarySelector not
- and:[(self isJavaConstructor: mthd selector: sel) not]
-
- "Created: / 22-08-2012 / 11:47:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!JavaMirror::JavaArrayMirror methodsFor:'accessing'!
-
-getClassLoader
- "Returns a class loader that loaded this class"
-
- ^ klass javaComponentClass javaMirror getClassLoader
-
- "Modified: / 31-07-2012 / 18:35:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredConstructors:publicOnly
- "Returns an java.lang.reflect.Constructor[] with all constructors
- declared by this class"
-
- ^ (JavaVM classForName:'java.lang.reflect.Constructor') javaArrayClass new:0.
-
- "Modified: / 31-07-2012 / 18:41:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredFields:publicOnly
- "Returns an java.lang.reflect.Field[] with all constructors
- declared by this class."
-
- ^(JavaVM classForName:'java.lang.reflect.Field') javaArrayClass new:0.
-
- "Modified: / 22-08-2012 / 12:03:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredMethods:publicOnly
- "Returns an java.lang.reflect.Method[] with all methods
- declared by this class"
-
- ^ (JavaVM classForName:'java.lang.reflect.Method') javaArrayClass new:0.
-
- "Modified: / 01-08-2012 / 11:08:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getInterfaces
- "Return a list if interfaces"
-
- ^ Array
- with: (JavaVM classForName: 'java.lang.Cloneable')
- with: (JavaVM classForName: 'java.io.Serializable')
-
- "Modified: / 22-08-2012 / 11:06:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getModifiers
- "Return class modifiers (public/abstract/final...)"
-
- ^ JavaConstants ACC_ABSTRACT | JavaConstants ACC_FINAL | JavaConstants ACC_PUBLIC
-
- "Modified: / 22-08-2012 / 11:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!JavaMirror::JavaClassMirror class methodsFor:'documentation'!
-
-documentation
-"
- A specialized mirror for all Java classes
-
- [author:]
- Jan Vrany <jan.vrany@fit.cvut.cz>
-
- [instance variables:]
-
- [class variables:]
-
- [see also:]
-
-"
-! !
-
-!JavaMirror::JavaClassMirror methodsFor:'accessing'!
-
-getClassLoader
- "Returns a class loader that loaded this class"
-
- ^ klass classLoader
-
- "Modified: / 31-07-2012 / 18:26:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredConstructors:publicOnly
- "Returns an java.lang.reflect.Constructor[] with all constructors
- declared by this class"
-
- | ctors |
-
- ctors := OrderedCollection new.
- klass selectorsAndMethodsDo:[:sel :mthd|
- (mthd isJavaConstructor and:[publicOnly not or:[mthd isPublic]]) ifTrue:[
- ctors add: (self getDeclaredConstructorFor: mthd).
- ].
- ].
- ^(JavaVM classForName:'java.lang.reflect.Constructor') javaArrayClass withAll: ctors
-
- "Modified: / 01-08-2012 / 11:04:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredFields:publicOnly
- "Returns an java.lang.reflect.Field[] with all constructors
- declared by this class."
-
- | fields |
-
- fields := klass fields , klass staticFields.
- publicOnly ifTrue:[ fields := fields select:[:f | f isPublic ] ].
- JavaClassReader classLoaderQuerySignal answer: klass classLoader do:[
- fields := fields collect:[:f | self createFieldFor:f ].
- ].
- ^ (JavaVM classForName:'java.lang.reflect.Field') javaArrayClass
- withAll:fields
-
- "Modified: / 22-08-2012 / 12:10:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredMethods:publicOnly
- "Returns an java.lang.reflect.Constructor[] with all constructors
- declared by this class"
-
- | methods |
-
- methods := OrderedCollection new.
- klass selectorsAndMethodsDo:[:sel :mthd|
- mthd isJavaMethod and:[
- (mthd isJavaConstructor not
- and:[mthd isJavaStaticInitializer not
- and:[publicOnly not or:[mthd isPublic]]]) ifTrue:[
- methods add: (self getDeclaredMethodFor: mthd).
- ]
- ].
- ].
- ^(JavaVM classForName:'java.lang.reflect.Method') javaArrayClass withAll: methods
-
- "Modified: / 19-09-2012 / 16:26:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getGenericSignature
- "Returns Java generic signature (if a generic class) or nil"
-
- ^klass signatureJ
-
- "Created: / 22-08-2012 / 11:58:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getInterfaces
- "Return a list if interfaces"
-
- ^ klass interfaces
-
- "Modified: / 22-08-2012 / 11:08:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getModifiers
- "Return class modifiers (public/abstract/final...)"
-
- | modifiers |
-
- "According to OpenJDK JVM, strip ACC_SUPER"
- modifiers := (klass accessFlags & JavaConstants ACC_SUPER bitInvert) & 16r7FFF.
- "JV@2011-10-30: It seems that private inner classes has no
- private bit set, sigh"
- (modifiers & 16r0007) == 0 ifTrue:[
- modifiers := modifiers | JavaConstants ACC_PRIVATE.
- ].
- ^modifiers
-
- "Modified: / 22-08-2012 / 11:03:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getProtectionDomain
- ^klass protectionDomain
-
- "Created: / 22-08-2012 / 12:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!JavaMirror::JavaClassMirror methodsFor:'accessing-private'!
-
-getDeclaredConstructorFor: method
-
- ^self createConstructorFor: method javaClass
- method: method
- signature: method signature
- modifiers: method accessFlags
- parameterTyoes: (method descriptor parameterClassesUsingClassLoader: method javaClass classLoader)
- exceptionTypes: method exceptionClasses
- annotations: method method annotations.
-
- "Created: / 01-08-2012 / 00:46:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredMethodFor: method
-
- ^self createMethodFor: method javaClass
- method: method
- name: (method selector upTo: $()
- signature: method signature
- modifiers: method accessFlags
- parameterTyoes: (method descriptor parameterClassesUsingClassLoader: method javaClass classLoader)
- returnType: (method descriptor returnClassUsingClassLoader: method javaClass classLoader)
- exceptionTypes: method exceptionClasses
- annotations: method method annotations.
-
- "Created: / 01-08-2012 / 11:11:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!JavaMirror::JavaPrimitiveMirror methodsFor:'accessing'!
-
-getClassLoader
- "Returns a class loader that loaded this class"
-
- ^ nil
-
- "Modified: / 31-07-2012 / 18:35:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredConstructors:publicOnly
- "Returns an java.lang.reflect.Constructor[] with all constructors
- declared by this class"
-
- ^ (JavaVM classForName:'java.lang.reflect.Constructor') javaArrayClass new:0.
-
- "Modified: / 31-07-2012 / 18:41:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredFields:publicOnly
- "Returns an java.lang.reflect.Field[] with all constructors
- declared by this class."
-
- ^(JavaVM classForName:'java.lang.reflect.Field') javaArrayClass new:0.
-
- "Modified: / 22-08-2012 / 12:03:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getDeclaredMethods:publicOnly
- "Returns an java.lang.reflect.Method[] with all methods
- declared by this class"
-
- ^ (JavaVM classForName:'java.lang.reflect.Method') javaArrayClass new:0.
-
- "Modified: / 01-08-2012 / 11:08:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getInterfaces
- "Return a list if interfaces"
-
- ^ #()
-
- "Modified: / 22-08-2012 / 11:07:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getModifiers
- "Return class modifiers (public/abstract/final...)"
-
- ^ JavaConstants ACC_ABSTRACT | JavaConstants ACC_FINAL | JavaConstants ACC_PUBLIC
-
- "Modified: / 22-08-2012 / 11:02:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-05-2013 / 10:55:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaMirror class methodsFor:'documentation'!
--- a/JavaNativeMethodImpl_OpenJDK6.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaNativeMethodImpl_OpenJDK6.st Wed Dec 18 12:03:32 2013 +0100
@@ -8333,12 +8333,12 @@
^ (JavaVM classForName:'java.io.UnixFileSystem' definedBy:nil) new
].
OperatingSystem isMSWINDOWSlike ifTrue: [
- ^ (Java classForName: 'java.io.WinNTFileSystem') new
+ ^ (JavaVM classForName: 'java.io.WinNTFileSystem' definedBy: nil) new
].
self error: 'Unknown/Unsupported platform'
"Created: / 09-12-2010 / 17:58:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 01-04-2011 / 18:09:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-05-2013 / 10:58:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_io_ObjectInputStream_bytesToDoubles: this _: a1 _: a2 _: a3 _: a4
@@ -9736,13 +9736,13 @@
jClass := this.
cls := Reflection classForJavaClassObject:jClass.
interfaces := cls javaMirror getInterfaces.
- jInterfaces := (JavaVM classForName:'java.lang.Class' definedBy:nil) javaArrayClass new:interfaces size.
+ jInterfaces := java_lang_Class javaArrayClass new:interfaces size.
interfaces
withIndexDo:[:iface :idx | jInterfaces at:idx put:(Reflection javaClassObjectForClass:iface) ].
^ jInterfaces
"Modified: / 28-01-2011 / 15:19:11 / Marcel Hlopko <hlopik@gmail.com>"
- "Modified: / 22-08-2012 / 11:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-05-2013 / 16:25:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_Class_getModifiers: this
@@ -10018,10 +10018,10 @@
<javanative: 'java/lang/Class' name: 'registerNatives()V'>
-
"Nothing to do, native method are bound lazily"
"Created: / 20-10-2010 / 11:13:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-05-2013 / 20:44:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_Class_setProtectionDomain0: this _: a1
@@ -10360,12 +10360,10 @@
_java_lang_Object_registerNatives: this
<javanative: 'java/lang/Object' name: 'registerNatives()V'>
-
-
"Nothing to do, native method are bound lazily"
"Created: / 19-10-2010 / 12:42:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 20-10-2010 / 10:57:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-05-2013 / 20:44:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_Object_wait: this _:a1 _: a2
@@ -10589,14 +10587,14 @@
ctx := ctx sender.
].
- jclasses := (JavaVM classForName:'java.lang.Class' definedBy:nil) javaArrayClass new: classes size.
+ jclasses := java_lang_Class javaArrayClass new: classes size.
1 to: classes size do:[:i|
jclasses at: i put: (Reflection javaClassObjectForClass: (classes at: i)).
].
^jclasses
"Created: / 12-11-1998 / 18:56:06 / cg"
- "Modified: / 15-11-2011 / 00:27:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-05-2013 / 16:25:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_Shutdown_halt0: this _:a1
@@ -10626,6 +10624,8 @@
!
+
+
_java_lang_StrictMath_acos: this _: a1 _: a2
<javanative: 'java/lang/StrictMath' name: 'acos(D)D'>
@@ -10637,6 +10637,8 @@
!
+
+
_java_lang_StrictMath_asin: this _: a1 _: a2
<javanative: 'java/lang/StrictMath' name: 'asin(D)D'>
@@ -10648,6 +10650,8 @@
!
+
+
_java_lang_StrictMath_atan2: this _: a1 _: a2 _: a3 _: a4
<javanative: 'java/lang/StrictMath' name: 'atan2(DD)D'>
@@ -10659,6 +10663,8 @@
!
+
+
_java_lang_StrictMath_atan: this _: a1 _: a2
<javanative: 'java/lang/StrictMath' name: 'atan(D)D'>
@@ -10783,6 +10789,8 @@
!
+
+
_java_lang_StrictMath_log: this _: a1 _: a2
<javanative: 'java/lang/StrictMath' name: 'log(D)D'>
@@ -11058,11 +11066,10 @@
_java_lang_System_registerNatives: this
<javanative: 'java/lang/System' name: 'registerNatives()V'>
-
-
"Nothing to do, native method are bound lazily"
"Created: / 20-10-2010 / 10:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-05-2013 / 20:44:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_System_setErr0: this _:a1
@@ -11126,14 +11133,14 @@
| t p nctx |
p := Processor activeProcess.
t := JavaVM javaThreadForSTProcess: p.
- (nctx := self nativeContext) sender receiver class name
- = 'java/util/concurrent/locks/ReentrantLock$NonfairSync'
- ifTrue: [
- | owner |
- owner := (nctx sender receiver
- perform: #'getExclusiveOwnerThread()Ljava/lang/Thread;').
- (owner notNil and: [ owner ~= t ]) ifTrue: [ self breakPoint: #mh. ]
- ].
+"/ (nctx := self nativeContext) sender receiver class name
+"/ = 'java/util/concurrent/locks/ReentrantLock$NonfairSync'
+"/ ifTrue: [
+"/ | owner |
+"/ owner := (nctx sender receiver
+"/ perform: #'getExclusiveOwnerThread()Ljava/lang/Thread;').
+"/ (owner notNil and: [ owner ~= t ]) ifTrue: [ self breakPoint: #mh. ]
+"/ ].
t notNil ifTrue: [ ^ t ].
t := JavaVM newThread: p name.
t instVarNamed: 'tid' put: p id.
@@ -11434,7 +11441,7 @@
"/ cleanup ...
list add: con shallowCopy
].
- con := con sender
+ con := nil"/con sender
].
exceptionObject instVarNamed: 'backtrace' put: (list asArray).
^ nil.
@@ -13346,12 +13353,12 @@
].
con := con sender.
].
- ^(JavaVM classForName:'java.lang.Class' definedBy:nil) javaArrayClass withAll: chain
+ ^java_lang_Class javaArrayClass withAll: chain
"Created: / 05-01-1998 / 02:47:00 / cg"
"Modified: / 24-12-1998 / 00:34:57 / cg"
"Modified: / 28-01-2011 / 15:31:28 / Marcel Hlopko <hlopik@gmail.com>"
- "Modified: / 09-03-2013 / 17:37:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-05-2013 / 16:25:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_util_TimeZone_getSystemGMTOffsetID: this
@@ -14608,6 +14615,10 @@
"Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!JavaNativeMethodImpl_OpenJDK6 class methodsFor:'native - stx.libjava.tools.compiler.ecj'!
+
+ !
+
!JavaNativeMethodImpl_OpenJDK6 class methodsFor:'native - stx.libjava.tools.environment'!
_stx_libjava_tools_environment_Environment_findClassBytesForClass0: this _: jclass
@@ -22010,11 +22021,11 @@
!JavaNativeMethodImpl_OpenJDK6 class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libjava/JavaNativeMethodImpl_OpenJDK6.st,v 1.6 2013-09-06 00:41:24 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaNativeMethodImpl_OpenJDK6.st,v 1.4 2013-04-27 12:29:56 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libjava/JavaNativeMethodImpl_OpenJDK6.st,v 1.6 2013-09-06 00:41:24 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaNativeMethodImpl_OpenJDK6.st,v 1.4 2013-04-27 12:29:56 cg Exp $'
!
version_HG
--- a/JavaObject.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaObject.st Wed Dec 18 12:03:32 2013 +0100
@@ -555,6 +555,39 @@
"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.
+%{
+ void ___checkcast_bind();
+ ___checkcast_bind(__pilc, __Class(self));
+
+%}.
+ ^self
+
+ "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+_INSTANCEOF: cls
+ | r |
+
+ r := JavaVM _INSTANCEOF: self _: cls.
+%{
+ void ___instanceof_bind();
+ ___instanceof_bind(__pilc, __Class(self), r);
+%}.
+ ^r
+
+ "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!JavaObject class methodsFor:'documentation'!
version
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaPrimitiveMirror.st Wed Dec 18 12:03:32 2013 +0100
@@ -0,0 +1,115 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+ of one of the above copright owners. For exact set of such code,
+ see the differences between this version and version stx:libjava
+ as of 1.9.2010
+"
+"{ Package: 'stx:libjava' }"
+
+JavaMirror subclass:#JavaPrimitiveMirror
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:'JavaVMData'
+ category:'Languages-Java-Classes'
+!
+
+!JavaPrimitiveMirror class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+ of one of the above copright owners. For exact set of such code,
+ see the differences between this version and version stx:libjava
+ as of 1.9.2010
+
+"
+! !
+
+!JavaPrimitiveMirror methodsFor:'accessing'!
+
+getClassLoader
+ "Returns a class loader that loaded this class"
+
+ ^ nil
+
+ "Modified: / 31-07-2012 / 18:35:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredConstructors:publicOnly
+ "Returns an java.lang.reflect.Constructor[] with all constructors
+ declared by this class"
+
+ ^ java_lang_reflect_Constructor javaArrayClass new:0.
+
+ "Modified: / 18-05-2013 / 10:57:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredFields:publicOnly
+ "Returns an java.lang.reflect.Field[] with all constructors
+ declared by this class."
+
+ ^java_lang_reflect_Field javaArrayClass new:0.
+
+ "Modified: / 18-05-2013 / 10:58:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getDeclaredMethods:publicOnly
+ "Returns an java.lang.reflect.Method[] with all methods
+ declared by this class"
+
+ ^ java_lang_reflect_Method javaArrayClass new:0.
+
+ "Modified: / 18-05-2013 / 10:58:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getInterfaces
+ "Return a list if interfaces"
+
+ ^ #()
+
+ "Modified: / 22-08-2012 / 11:07:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getModifiers
+ "Return class modifiers (public/abstract/final...)"
+
+ ^ JavaConstants ACC_ABSTRACT | JavaConstants ACC_FINAL | JavaConstants ACC_PUBLIC
+
+ "Modified: / 22-08-2012 / 11:02:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaPrimitiveMirror class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/JavaShort.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaShort.st Wed Dec 18 12:03:32 2013 +0100
@@ -69,9 +69,10 @@
!
javaWrapperClass
- ^(Java classForName: 'java.lang.Short')
+ ^(JavaVM classForName: 'java.lang.Short' definedBy: nil)
"Created: / 24-02-2012 / 19:42:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-05-2013 / 10:58:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaShort class methodsFor:'autoboxing support'!
@@ -79,11 +80,12 @@
javaBox: anObject
| wrapper |
- wrapper := (JavaVM classForName: 'java.lang.Short') new.
+ wrapper := (JavaVM classForName: 'java.lang.Short' definedBy: nil) new.
wrapper perform: #'<init>(S)V' with: anObject.
^ wrapper
"Created: / 16-08-2011 / 09:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-05-2013 / 10:58:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
javaUnbox:anObject
--- a/JavaVM.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaVM.st Wed Dec 18 12:03:32 2013 +0100
@@ -52,7 +52,7 @@
instanceVariableNames:'vm constantPoolMapping javaClasses javaArrayClasses
javaMethodsPerMethod returnNilIfMissing realMethods'
classVariableNames:''
- poolDictionaries:''
+ poolDictionaries:'JavaVMData'
privateIn:JavaVM
!
@@ -1536,8 +1536,10 @@
initializeBaseClasses
"load req'd base classes"
+ java_lang_Object := java_lang_System := java_lang_Class := nil.
+
#( 'java.lang.Object' 'java.lang.Class' 'java.lang.String' 'java.lang.System' ) do: [:cName |
- (self classForName: cName) isNil ifTrue: [
+ (self classForName: cName definedBy: nil) isNil ifTrue: [
AbortSignal raise.
^ self
]
@@ -1547,7 +1549,7 @@
"Created: / 03-01-1998 / 21:13:28 / cg"
"Modified: / 23-12-1999 / 19:27:42 / cg"
- "Modified: / 08-02-2013 / 00:54:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-05-2013 / 16:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
initializeClassReader
@@ -2516,6 +2518,31 @@
"Created: / 23-02-2011 / 12:59:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!JavaVM class methodsFor:'accessing-builtin classes'!
+
+builtInClassNames
+ "Returns an array with (binary) names of classes known by the runtime system.
+ When a builtin class is loaded and registered in class registry,
+ JavaClassRegistry is sent #registerBuiltIn:
+
+ NOTE: If you add class here, you may want to update
+ JavaClassRegistry>>registerBuiltIn:.
+ "
+ ^#(
+ #'java/lang/Object'
+ #'java/lang/String'
+ #'java/lang/System'
+ #'java/lang/Class'
+
+ #'java/lang/reflect/Constructor'
+ #'java/lang/reflect/Method'
+ #'java/lang/reflect/Field'
+
+ )
+
+ "Created: / 22-05-2013 / 20:38:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!JavaVM class methodsFor:'cache management'!
flushCachesFor: aClass
@@ -2576,6 +2603,11 @@
"load class from registry - load using given classLoader if not nil"
| result binaryName |
+
+"/ classLoader isNil ifTrue:[
+"/ Logger log: 'JavaVM>>classForName: ''', className , ''' definedBy: nil' severity: #trace.
+"/ ].
+
binaryName := className asSlashedJavaClassName.
result := self
classForName: binaryName
@@ -2714,6 +2746,14 @@
"Modified (comment): / 19-10-2013 / 17:32:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!JavaVM class methodsFor:'class loading'!
+
+
+
+
+
+ !
+
!JavaVM class methodsFor:'class loading/unloading'!
loadClassNamed: className usingClassLoader: classLoader
@@ -2816,6 +2856,11 @@
"Modified (comment): / 15-11-2013 / 22:52:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+exceptionTrace:aBoolean
+ ExceptionTrace := aBoolean
+
+!
+
monitorTrace
^ MonitorTrace
@@ -3159,7 +3204,7 @@
"
- If T is a class type, then T must be Object.
"
- t isJavaClassType ifTrue: [ ^ t == (self classForName: 'java.lang.Object') ].
+ t isJavaClassType ifTrue: [ ^ t == (self classForName: 'java.lang.Object' definedBy: nil) ].
"
- If T is an array type TC[], that is, an array of components of type TC ,
then one of the following must be true:
@@ -3177,14 +3222,14 @@
- If T is an interface type, T must be one of the interfaces implemented
by arrays (JLS3 4.10.3).
"
- ((t binaryName == #'java/lang/Cloneable')
- or: [ t binaryName == #'java/lang/Serializable' ]) ifTrue: [ ^ true ].
+ ((t name == #'java/lang/Cloneable')
+ or: [ t name == #'java/lang/Serializable' ]) ifTrue: [ ^ true ].
^ false
"Modified: / 09-01-1999 / 00:45:21 / cg"
"Created: / 11-02-2011 / 08:21:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 21-10-2011 / 13:50:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 08-10-2013 / 22:48:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-05-2013 / 12:57:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
javaStringObjectForString:string
@@ -3438,7 +3483,7 @@
Logger
log: 'JAVA: exception: ' , aJavaException class binaryName , ' ('
, tmpMessage , ')'
- severity: #debug
+ severity: #trace
facility: 'JVM'
].
ExceptionDebug ifTrue: [
@@ -4972,42 +5017,31 @@
"Modified: / 16-10-2013 / 12:53:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-_CHECKCAST: object _: class
- "Called from the JIT-compiled code for unhandled cases.
- Unlike in _CHECKCAST2:_: the second parameter is a class,,
- not a class class reference!!
-
- This method *MUST* return the object for this may lead
- into GC. See ___checkcast() VM function
- "
-
- object isNil ifTrue: [ ^ object ].
- (self canCast: object class to: class) ifFalse: [
+_CHECKCAST: obj _: cls
+ "A principal implementation of CHECKCAST instruction. Called by the bytecode
+ interpreter for unhandled cases."
+
+ obj isNil ifTrue:[ ^ obj ].
+ (self canCast: obj class to: cls) ifFalse: [
self throwClassCastException.
- ^ nil "Not reached"
- ].
- ^ object
-
- "Created: / 08-01-1999 / 14:53:51 / cg"
- "Modified: / 09-01-1999 / 00:45:21 / cg"
- "Modified: / 09-10-2012 / 11:53:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ ^ nil
+ ].
+ ^ obj
+
!
_CHECKCAST_R: object _: classRef
- "Called by the VM (java bytecode interpreter) 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 ].
class := classRef resolve.
- (self canCast: object class to: class) ifFalse: [
+ (self canCast: object class to: class) ifFalse:[
self throwClassCastException.
- ^ nil
- ].
-
- ^ object.
+ ^nil.
+ ].
+ ^object.
"Created: / 19-05-2011 / 10:12:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified (comment): / 09-10-2012 / 11:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -5132,15 +5166,16 @@
"Created: / 8.1.1999 / 15:08:17 / cg"
!
-_INSTANCEOF:object _:class
- "Called from the jitted code for unhandled cases.
- Unlike in _INSTANCEOF_R:_: the second parameter is a class,,
- not a class class reference!!"
-
- object isNil ifTrue:[^0].
- ^(self canCast: object class to: class)
- ifTrue:[1]
- ifFalse:[0]
+_INSTANCEOF:obj _:cls
+ "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
+ ].
+ ^ 1
+
"Created: / 08-01-1999 / 14:52:54 / cg"
"Modified: / 27-01-1999 / 20:56:25 / cg"
@@ -5149,15 +5184,16 @@
!
_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 |
object isNil ifTrue: [ ^ 0 ].
class := classRef resolve.
- ^ (self canCast: object class to: class) ifTrue: [ 1 ] ifFalse: [ 0 ].
+ ^(self canCast: object class to: class)
+ ifTrue: [ 1 ]
+ ifFalse: [ 0 ].
"Created: / 15-10-2012 / 21:51:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
@@ -6489,7 +6525,7 @@
| array |
- array := (vm classForName: 'java.lang.Class') javaArrayClass
+ array := java_lang_Class javaArrayClass
new: classes size.
classes isNilOrEmptyCollection ifTrue: [ ^ array ].
classes
@@ -6498,7 +6534,7 @@
"Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
"Created: / 04-02-2011 / 22:08:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 11-02-2011 / 10:21:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-05-2013 / 16:29:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
javaClassObjectForClass:aClass
@@ -6531,12 +6567,13 @@
aClass == Object ifTrue:[ self halt. ].
aClass lookupObject: JavaLookup instance.
].
- javaClassObj := (vm classForName: 'java.lang.Class') new.
+ javaClassObj := java_lang_Class new.
self rememberJavaClassObject: javaClassObj for: aClass.
^ javaClassObj
"Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
"Created: / 12-08-2011 / 19:07:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-05-2013 / 16:28:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
javaClassObjectForClassNamed: className
@@ -6750,11 +6787,11 @@
!JavaVM class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libjava/JavaVM.st,v 1.192 2013-09-06 00:41:27 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaVM.st,v 1.189 2013-02-25 11:15:31 vrany Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libjava/JavaVM.st,v 1.192 2013-09-06 00:41:27 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaVM.st,v 1.189 2013-02-25 11:15:31 vrany Exp $'
!
version_SVN
--- a/JavaVMData.st Wed Dec 18 00:02:10 2013 +0100
+++ b/JavaVMData.st Wed Dec 18 12:03:32 2013 +0100
@@ -23,29 +23,30 @@
SharedPool subclass:#JavaVMData
instanceVariableNames:''
classVariableNames:'FileIOTrace JavaWindowGroup ThreadTrace JavaMethods
- SystemClassLoader DrawOPTrace JavaEventThread AssertionsEnabled
- SocketConnectConfirmation NoAudio SimulatedLibs OpenFileTable
- ZipCache ZipCacheLastAccessed EventTrace FileOpenConfirmation
- ZipEntryCache ZipEntryCacheLock ZipEntryCacheFirstFree LibPath
- WindowOPTrace FileAccessTrace ClassRegistry WindowCreationTrace
- SimulatedNativeMemory KnownWindows PermittedHostConnects
- FullExceptionTrace SimulatedNativeLibs StartupTime FileOpenTrace
- ImageStretchCache LoadedNativeLibs JavaConsoleStream
- JavaEventQueueThread PermittedDirectories
- StdinReplacementFileQuerySignal JavaScreenUpdaterThread
- ZipInflaters LoadedLibs EnteredMonitorsPerProcess
- _java_net_DatagramPacket_CLASS _java_net_DatagramPacket_buf_ID
- _java_net_DatagramPacket_offset_ID
- _java_net_DatagramPacket_length_ID
- _java_net_DatagramPacket_bufLength_ID
- _java_net_DatagramPacket_address_ID
- _java_net_DatagramPacket_port_ID _java_net_InetAddress_CLASS
- _java_net_InetAddress_holder_ID
- _java_net_InetAddress_canonicalHostName_ID
- _java_net_InetAddress_family_ID _java_net_InetAddress_address_ID
- _java_net_InetAddress_hostName_ID _java_net_Inet4Address_CLASS
- _java_net_PlainDatagramSocketImpl_CLASS
- _java_net_PlainDatagramSocketImpl_timeout_ID'
+ SystemClassLoader DrawOPTrace JavaEventThread AssertionsEnabled
+ SocketConnectConfirmation NoAudio SimulatedLibs OpenFileTable
+ ZipCache ZipCacheLastAccessed EventTrace FileOpenConfirmation
+ ZipEntryCache ZipEntryCacheLock ZipEntryCacheFirstFree LibPath
+ WindowOPTrace FileAccessTrace ClassRegistry WindowCreationTrace
+ SimulatedNativeMemory KnownWindows PermittedHostConnects
+ FullExceptionTrace SimulatedNativeLibs StartupTime FileOpenTrace
+ ImageStretchCache LoadedNativeLibs JavaConsoleStream
+ JavaEventQueueThread PermittedDirectories
+ StdinReplacementFileQuerySignal JavaScreenUpdaterThread
+ ZipInflaters LoadedLibs EnteredMonitorsPerProcess
+ _java_net_DatagramPacket_CLASS _java_net_DatagramPacket_buf_ID
+ java_lang_Object java_lang_System java_lang_Class java_lang_reflect_Constructor java_lang_reflect_Method java_lang_reflect_Field
+ _java_net_DatagramPacket_offset_ID
+ _java_net_DatagramPacket_length_ID
+ _java_net_DatagramPacket_bufLength_ID
+ _java_net_DatagramPacket_address_ID
+ _java_net_DatagramPacket_port_ID _java_net_InetAddress_CLASS
+ _java_net_InetAddress_holder_ID
+ _java_net_InetAddress_canonicalHostName_ID
+ _java_net_InetAddress_family_ID _java_net_InetAddress_address_ID
+ _java_net_InetAddress_hostName_ID _java_net_Inet4Address_CLASS
+ _java_net_PlainDatagramSocketImpl_CLASS
+ _java_net_PlainDatagramSocketImpl_timeout_ID'
poolDictionaries:''
category:'Languages-Java-Support'
!
@@ -122,7 +123,7 @@
!JavaVMData class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libjava/JavaVMData.st,v 1.3 2013-09-06 00:41:28 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/JavaVMData.st,v 1.2 2013-02-25 11:15:31 vrany Exp $'
!
version_HG
--- a/Make.proto Wed Dec 18 00:02:10 2013 +0100
+++ b/Make.proto Wed Dec 18 12:03:32 2013 +0100
@@ -144,8 +144,6 @@
cd ../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
- cd ../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
- cd ../goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
@@ -199,7 +197,6 @@
$(OUTDIR)JavaLocalVariableTableEntry.$(O) JavaLocalVariableTableEntry.$(H): JavaLocalVariableTableEntry.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaLookup.$(O) JavaLookup.$(H): JavaLookup.st $(INCLUDE_TOP)/stx/libbasic/Lookup.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaMetaclass.$(O) JavaMetaclass.$(H): JavaMetaclass.st $(INCLUDE_TOP)/stx/libbasic/Metaclass.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)JavaMirror.$(O) JavaMirror.$(H): JavaMirror.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaMonitor.$(O) JavaMonitor.$(H): JavaMonitor.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaNameAndType2.$(O) JavaNameAndType2.$(H): JavaNameAndType2.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMemory.$(O) JavaNativeMemory.$(H): JavaNativeMemory.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Link.$(H) $(STCHDR)
@@ -256,6 +253,7 @@
$(OUTDIR)JavaMethod.$(O) JavaMethod.$(H): JavaMethod.st $(INCLUDE_TOP)/stx/libjava/JavaConstants.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaMethodAnnotationContainer.$(O) JavaMethodAnnotationContainer.$(H): JavaMethodAnnotationContainer.st $(INCLUDE_TOP)/stx/libjava/JavaAnnotationContainer.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaMethodDescriptor.$(O) JavaMethodDescriptor.$(H): JavaMethodDescriptor.st $(INCLUDE_TOP)/stx/libjava/JavaDescriptor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)JavaMirror.$(O) JavaMirror.$(H): JavaMirror.st $(INCLUDE_TOP)/stx/libjava/JavaVMData.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMethodImpl_OpenJDK6.$(O) JavaNativeMethodImpl_OpenJDK6.$(H): JavaNativeMethodImpl_OpenJDK6.st $(INCLUDE_TOP)/stx/libjava/JavaVMData.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaRelease.$(O) JavaRelease.$(H): JavaRelease.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaStringRef2.$(O) JavaStringRef2.$(H): JavaStringRef2.st $(INCLUDE_TOP)/stx/libjava/JavaRef2.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -267,8 +265,11 @@
$(OUTDIR)ProxyMethodGuardNode.$(O) ProxyMethodGuardNode.$(H): ProxyMethodGuardNode.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodInvocationNode.$(O) ProxyMethodInvocationNode.$(H): ProxyMethodInvocationNode.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodJavaFieldAccessor.$(O) ProxyMethodJavaFieldAccessor.$(H): ProxyMethodJavaFieldAccessor.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)JavaAlienMirror.$(O) JavaAlienMirror.$(H): JavaAlienMirror.st $(INCLUDE_TOP)/stx/libjava/JavaVMData.$(H) $(INCLUDE_TOP)/stx/libjava/JavaMirror.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)JavaArrayMirror.$(O) JavaArrayMirror.$(H): JavaArrayMirror.st $(INCLUDE_TOP)/stx/libjava/JavaVMData.$(H) $(INCLUDE_TOP)/stx/libjava/JavaMirror.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaByteCodePreresolver.$(O) JavaByteCodePreresolver.$(H): JavaByteCodePreresolver.st $(INCLUDE_TOP)/stx/libjava/JavaByteCodeProcessorAdapter.$(H) $(INCLUDE_TOP)/stx/libjava/JavaByteCodeProcessor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaClass.$(O) JavaClass.$(H): JavaClass.st $(INCLUDE_TOP)/stx/libjava/JavaConstants.$(H) $(INCLUDE_TOP)/stx/libjava/JavaBehavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Class.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Array.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(STCHDR)
+$(OUTDIR)JavaClassMirror.$(O) JavaClassMirror.$(H): JavaClassMirror.st $(INCLUDE_TOP)/stx/libjava/JavaVMData.$(H) $(INCLUDE_TOP)/stx/libjava/JavaMirror.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaClassPathBundle.$(O) JavaClassPathBundle.$(H): JavaClassPathBundle.st $(INCLUDE_TOP)/stx/libjava/JavaCodeBundle.$(H) $(INCLUDE_TOP)/stx/libjava/JavaCodeLibraryOrBundle.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaFieldRef2.$(O) JavaFieldRef2.$(H): JavaFieldRef2.st $(INCLUDE_TOP)/stx/libjava/JavaClassContentRef2.$(H) $(INCLUDE_TOP)/stx/libjava/JavaRef2.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaMethodAnalyzer.$(O) JavaMethodAnalyzer.$(H): JavaMethodAnalyzer.st $(INCLUDE_TOP)/stx/libjava/JavaByteCodeProcessorAdapter.$(H) $(INCLUDE_TOP)/stx/libjava/JavaByteCodeProcessor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -276,6 +277,7 @@
$(OUTDIR)JavaMethodWithException.$(O) JavaMethodWithException.$(H): JavaMethodWithException.st $(INCLUDE_TOP)/stx/libjava/JavaMethod.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMethodImpl_OpenJDK7.$(O) JavaNativeMethodImpl_OpenJDK7.$(H): JavaNativeMethodImpl_OpenJDK7.st $(INCLUDE_TOP)/stx/libjava/JavaVMData.$(H) $(INCLUDE_TOP)/stx/libjava/JavaNativeMethodImpl_OpenJDK6.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMethodImpl_SunJDK6.$(O) JavaNativeMethodImpl_SunJDK6.$(H): JavaNativeMethodImpl_SunJDK6.st $(INCLUDE_TOP)/stx/libjava/JavaNativeMethodImpl_OpenJDK6.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)JavaPrimitiveMirror.$(O) JavaPrimitiveMirror.$(H): JavaPrimitiveMirror.st $(INCLUDE_TOP)/stx/libjava/JavaVMData.$(H) $(INCLUDE_TOP)/stx/libjava/JavaMirror.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodAndNode.$(O) ProxyMethodAndNode.$(H): ProxyMethodAndNode.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodConditionNode.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodBlockInvocationNode.$(O) ProxyMethodBlockInvocationNode.$(H): ProxyMethodBlockInvocationNode.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodInvocationNode.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodJavaFieldGetter.$(O) ProxyMethodJavaFieldGetter.$(H): ProxyMethodJavaFieldGetter.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodJavaFieldAccessor.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec Wed Dec 18 00:02:10 2013 +0100
+++ b/Make.spec Wed Dec 18 12:03:32 2013 +0100
@@ -84,7 +84,6 @@
JavaLocalVariableTableEntry \
JavaLookup \
JavaMetaclass \
- JavaMirror \
JavaMonitor \
JavaNameAndType2 \
JavaNativeMemory \
@@ -141,6 +140,7 @@
JavaMethod \
JavaMethodAnnotationContainer \
JavaMethodDescriptor \
+ JavaMirror \
JavaNativeMethodImpl_OpenJDK6 \
JavaRelease \
JavaStringRef2 \
@@ -152,8 +152,11 @@
ProxyMethodGuardNode \
ProxyMethodInvocationNode \
ProxyMethodJavaFieldAccessor \
+ JavaAlienMirror \
+ JavaArrayMirror \
JavaByteCodePreresolver \
JavaClass \
+ JavaClassMirror \
JavaClassPathBundle \
JavaFieldRef2 \
JavaMethodAnalyzer \
@@ -161,6 +164,7 @@
JavaMethodWithException \
JavaNativeMethodImpl_OpenJDK7 \
JavaNativeMethodImpl_SunJDK6 \
+ JavaPrimitiveMirror \
ProxyMethodAndNode \
ProxyMethodBlockInvocationNode \
ProxyMethodJavaFieldGetter \
@@ -213,7 +217,6 @@
$(OUTDIR_SLASH)JavaLocalVariableTableEntry.$(O) \
$(OUTDIR_SLASH)JavaLookup.$(O) \
$(OUTDIR_SLASH)JavaMetaclass.$(O) \
- $(OUTDIR_SLASH)JavaMirror.$(O) \
$(OUTDIR_SLASH)JavaMonitor.$(O) \
$(OUTDIR_SLASH)JavaNameAndType2.$(O) \
$(OUTDIR_SLASH)JavaNativeMemory.$(O) \
@@ -270,6 +273,7 @@
$(OUTDIR_SLASH)JavaMethod.$(O) \
$(OUTDIR_SLASH)JavaMethodAnnotationContainer.$(O) \
$(OUTDIR_SLASH)JavaMethodDescriptor.$(O) \
+ $(OUTDIR_SLASH)JavaMirror.$(O) \
$(OUTDIR_SLASH)JavaNativeMethodImpl_OpenJDK6.$(O) \
$(OUTDIR_SLASH)JavaRelease.$(O) \
$(OUTDIR_SLASH)JavaStringRef2.$(O) \
@@ -281,8 +285,11 @@
$(OUTDIR_SLASH)ProxyMethodGuardNode.$(O) \
$(OUTDIR_SLASH)ProxyMethodInvocationNode.$(O) \
$(OUTDIR_SLASH)ProxyMethodJavaFieldAccessor.$(O) \
+ $(OUTDIR_SLASH)JavaAlienMirror.$(O) \
+ $(OUTDIR_SLASH)JavaArrayMirror.$(O) \
$(OUTDIR_SLASH)JavaByteCodePreresolver.$(O) \
$(OUTDIR_SLASH)JavaClass.$(O) \
+ $(OUTDIR_SLASH)JavaClassMirror.$(O) \
$(OUTDIR_SLASH)JavaClassPathBundle.$(O) \
$(OUTDIR_SLASH)JavaFieldRef2.$(O) \
$(OUTDIR_SLASH)JavaMethodAnalyzer.$(O) \
@@ -290,6 +297,7 @@
$(OUTDIR_SLASH)JavaMethodWithException.$(O) \
$(OUTDIR_SLASH)JavaNativeMethodImpl_OpenJDK7.$(O) \
$(OUTDIR_SLASH)JavaNativeMethodImpl_SunJDK6.$(O) \
+ $(OUTDIR_SLASH)JavaPrimitiveMirror.$(O) \
$(OUTDIR_SLASH)ProxyMethodAndNode.$(O) \
$(OUTDIR_SLASH)ProxyMethodBlockInvocationNode.$(O) \
$(OUTDIR_SLASH)ProxyMethodJavaFieldGetter.$(O) \
--- a/abbrev.stc Wed Dec 18 00:02:10 2013 +0100
+++ b/abbrev.stc Wed Dec 18 12:03:32 2013 +0100
@@ -1,154 +1,3 @@
-# automagically generated by the project definition
-# this file is needed for stc to be able to compile modules independently.
-# it provides information about a classes filename, category and especially namespace.
-GroovyCompiler GroovyCompiler stx:libjava 'Languages-Groovy-Compiler' 0
-GroovyEvaluator GroovyEvaluator stx:libjava 'Languages-Groovy-Compiler' 0
-GroovyLanguage GroovyLanguage stx:libjava 'Languages-Groovy-Support' 1
-GroovySourceFileWriter GroovySourceFileWriter stx:libjava 'Languages-Groovy-Support' 0
-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
-JavaAnnotationDictionary JavaAnnotationDictionary stx:libjava 'Languages-Java-Annotations' 1
-JavaAnnotationValue JavaAnnotationValue stx:libjava 'Languages-Java-Reader-Support' 0
-JavaAntProjectResource JavaAntProjectResource stx:libjava 'Languages-Java-Tests' 2
-JavaArray JavaArray stx:libjava 'Languages-Java-Classes' 1
-JavaByte JavaByte stx:libjava 'Languages-Java-Support' 0
-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
-JavaClassReloader JavaClassReloader stx:libjava 'Languages-Java-Support' 0
-JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
JavaCompilerForSmalltalkExtensionsOnly JavaCompilerForSmalltalkExtensionsOnly stx:libjava 'Languages-Java-Support-Compiling' 0
-JavaCompiler_Eclipse JavaCompiler_Eclipse stx:libjava 'Languages-Java-Tools-Eclipse' 0
-JavaConstantPool JavaConstantPool stx:libjava 'Languages-Java-Reader-Support' 0
-JavaConstants JavaConstants stx:libjava 'Languages-Java-Support' 0
-JavaContext JavaContext stx:libjava 'Languages-Java-Support' 0
-JavaDecompiler JavaDecompiler stx:libjava 'Languages-Java-Support-Decompiling' 0
-JavaDescriptor JavaDescriptor stx:libjava 'Languages-Java-Support' 0
-JavaError JavaError stx:libjava 'Languages-Java-Support' 1
-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
-JavaFinalizationRegistry JavaFinalizationRegistry stx:libjava 'Languages-Java-Support' 0
-JavaFreshlyInitializedResource JavaFreshlyInitializedResource stx:libjava 'Languages-Java-Tests' 1
JavaInnerClasses JavaInnerClasses stx:libjava 'Languages-Java-Support' 0
-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
-JavaLibrariesResource JavaLibrariesResource stx:libjava 'Languages-Java-Tests' 1
-JavaLocalVariableTable JavaLocalVariableTable stx:libjava 'Languages-Java-Support' 0
-JavaLocalVariableTableEntry JavaLocalVariableTableEntry stx:libjava 'Languages-Java-Support' 0
-JavaLookup JavaLookup stx:libjava 'Languages-Java-Interop' 0
-JavaLookupResolutionAlgorithmTests JavaLookupResolutionAlgorithmTests stx:libjava 'Languages-Java-Tests-Interop' 1
-JavaLookupTests JavaLookupTests stx:libjava 'Languages-Java-Tests-Interop' 1
-JavaLookupTestsResource JavaLookupTestsResource stx:libjava 'Languages-Java-Tests-Interop' 3
-JavaMetaclass JavaMetaclass stx:libjava 'Languages-Java-Classes' 0
-JavaMirror JavaMirror stx:libjava 'Languages-Java-Classes' 0
-JavaMonitor JavaMonitor stx:libjava 'Languages-Java-Support' 0
-JavaMonitorsTests JavaMonitorsTests stx:libjava 'Languages-Java-Tests' 1
-JavaNameAndType2 JavaNameAndType2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaNativeMemory JavaNativeMemory stx:libjava 'Languages-Java-Support' 0
-JavaNativeMemoryTests JavaNativeMemoryTests stx:libjava 'Languages-Java-Tests' 1
-JavaNioSupport JavaNioSupport stx:libjava 'Languages-Java-Support-Native' 0
-JavaObject JavaObject stx:libjava 'Languages-Java-Classes' 0
-JavaObjectDictionary JavaObjectDictionary stx:libjava 'Languages-Java-Support' 0
-JavaPackage JavaPackage stx:libjava 'Languages-Java-Support' 0
-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
-JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
-JavaResolver JavaResolver stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaShort JavaShort stx:libjava 'Languages-Java-Support' 0
-JavaSlotIndexCache JavaSlotIndexCache stx:libjava 'Languages-Java-Support' 0
-JavaSocket JavaSocket stx:libjava 'Languages-Java-Support' 0
-JavaSourceCodeCache JavaSourceCodeCache stx:libjava 'Languages-Java-Support' 1
-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
-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
-JavaUnresolvedConstant JavaUnresolvedConstant stx:libjava 'Languages-Java-Reader-Support' 0
-JavaUtilities JavaUtilities stx:libjava 'Languages-Java-Utilities' 0
-JavaVMData JavaVMData stx:libjava 'Languages-Java-Support' 0
-JavaView JavaView stx:libjava 'Languages-Java-Views-Support' 2
-JavaZipSupport JavaZipSupport stx:libjava 'Languages-Java-Support-Native' 0
-ProxyMethod ProxyMethod stx:libjava 'System-Compiler-Interop' 0
-ProxyMethodCompiler ProxyMethodCompiler stx:libjava 'System-Compiler-Interop' 0
-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
-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
-JavaAnnotationEnumValue JavaAnnotationEnumValue stx:libjava 'Languages-Java-Reader-Support' 0
-JavaAnnotationNestedAnnotationValue JavaAnnotationNestedAnnotationValue stx:libjava 'Languages-Java-Reader-Support' 0
-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
-JavaEmbeddedFrameView JavaEmbeddedFrameView stx:libjava 'Languages-Java-Views-Support' 2
-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
-JavaVM JavaVM stx:libjava 'Languages-Java-Support' 0
-ProxyMethodConditionNode ProxyMethodConditionNode stx:libjava 'System-Compiler-Interop' 0
-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
-JavaFieldRef2 JavaFieldRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaMethodAnalyzer JavaMethodAnalyzer stx:libjava 'Languages-Java-Support-Decompiling' 0
-JavaMethodRef2 JavaMethodRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaMethodWithException JavaMethodWithException stx:libjava 'Languages-Java-Classes' 0
-JavaNativeMethodImpl_OpenJDK7 JavaNativeMethodImpl_OpenJDK7 stx:libjava 'Languages-Java-Support-OpenJDK7' 0
-JavaNativeMethodImpl_SunJDK6 JavaNativeMethodImpl_SunJDK6 stx:libjava 'Languages-Java-Support-OpenJDK6' 0
-ProxyMethodAndNode ProxyMethodAndNode stx:libjava 'System-Compiler-Interop' 0
-ProxyMethodBlockInvocationNode ProxyMethodBlockInvocationNode stx:libjava 'System-Compiler-Interop' 0
-ProxyMethodJavaFieldGetter ProxyMethodJavaFieldGetter stx:libjava 'Languages-Java-Interop' 0
-ProxyMethodJavaFieldSetter ProxyMethodJavaFieldSetter stx:libjava 'Languages-Java-Interop' 0
-ProxyMethodMethodInvocationNode ProxyMethodMethodInvocationNode stx:libjava 'System-Compiler-Interop' 0
-ProxyMethodTypeCheckNode ProxyMethodTypeCheckNode stx:libjava 'System-Compiler-Interop' 0
-GroovyClass GroovyClass stx:libjava 'Languages-Groovy-Classes' 0
-JavaInterfaceMethodRef2 JavaInterfaceMethodRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaMethodWithHandler JavaMethodWithHandler stx:libjava 'Languages-Java-Classes' 0
-JavaNativeMethodImpl_SunJDK7 JavaNativeMethodImpl_SunJDK7 stx:libjava 'Languages-Java-Support-OpenJDK7' 0
-ProxyMethodJavaMethodInvocationNode ProxyMethodJavaMethodInvocationNode stx:libjava 'Languages-Java-Interop' 0
-ProxyMethodJavaTypeCheckNode ProxyMethodJavaTypeCheckNode stx:libjava 'Languages-Java-Interop' 0
-JavaNativeMethod JavaNativeMethod stx:libjava 'Languages-Java-Classes' 0
--- a/bc.mak Wed Dec 18 00:02:10 2013 +0100
+++ b/bc.mak Wed Dec 18 12:03:32 2013 +0100
@@ -54,8 +54,6 @@
pushd ..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
- pushd ..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
- pushd ..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
@@ -132,7 +130,6 @@
$(OUTDIR)JavaLocalVariableTableEntry.$(O) JavaLocalVariableTableEntry.$(H): JavaLocalVariableTableEntry.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaLookup.$(O) JavaLookup.$(H): JavaLookup.st $(INCLUDE_TOP)\stx\libbasic\Lookup.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaMetaclass.$(O) JavaMetaclass.$(H): JavaMetaclass.st $(INCLUDE_TOP)\stx\libbasic\Metaclass.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)JavaMirror.$(O) JavaMirror.$(H): JavaMirror.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaMonitor.$(O) JavaMonitor.$(H): JavaMonitor.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaNameAndType2.$(O) JavaNameAndType2.$(H): JavaNameAndType2.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMemory.$(O) JavaNativeMemory.$(H): JavaNativeMemory.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Link.$(H) $(STCHDR)
@@ -189,6 +186,7 @@
$(OUTDIR)JavaMethod.$(O) JavaMethod.$(H): JavaMethod.st $(INCLUDE_TOP)\stx\libjava\JavaConstants.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaMethodAnnotationContainer.$(O) JavaMethodAnnotationContainer.$(H): JavaMethodAnnotationContainer.st $(INCLUDE_TOP)\stx\libjava\JavaAnnotationContainer.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaMethodDescriptor.$(O) JavaMethodDescriptor.$(H): JavaMethodDescriptor.st $(INCLUDE_TOP)\stx\libjava\JavaDescriptor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)JavaMirror.$(O) JavaMirror.$(H): JavaMirror.st $(INCLUDE_TOP)\stx\libjava\JavaVMData.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMethodImpl_OpenJDK6.$(O) JavaNativeMethodImpl_OpenJDK6.$(H): JavaNativeMethodImpl_OpenJDK6.st $(INCLUDE_TOP)\stx\libjava\JavaVMData.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaRelease.$(O) JavaRelease.$(H): JavaRelease.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaStringRef2.$(O) JavaStringRef2.$(H): JavaStringRef2.st $(INCLUDE_TOP)\stx\libjava\JavaRef2.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -200,8 +198,11 @@
$(OUTDIR)ProxyMethodGuardNode.$(O) ProxyMethodGuardNode.$(H): ProxyMethodGuardNode.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodInvocationNode.$(O) ProxyMethodInvocationNode.$(H): ProxyMethodInvocationNode.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodJavaFieldAccessor.$(O) ProxyMethodJavaFieldAccessor.$(H): ProxyMethodJavaFieldAccessor.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)JavaAlienMirror.$(O) JavaAlienMirror.$(H): JavaAlienMirror.st $(INCLUDE_TOP)\stx\libjava\JavaVMData.$(H) $(INCLUDE_TOP)\stx\libjava\JavaMirror.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)JavaArrayMirror.$(O) JavaArrayMirror.$(H): JavaArrayMirror.st $(INCLUDE_TOP)\stx\libjava\JavaVMData.$(H) $(INCLUDE_TOP)\stx\libjava\JavaMirror.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaByteCodePreresolver.$(O) JavaByteCodePreresolver.$(H): JavaByteCodePreresolver.st $(INCLUDE_TOP)\stx\libjava\JavaByteCodeProcessorAdapter.$(H) $(INCLUDE_TOP)\stx\libjava\JavaByteCodeProcessor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaClass.$(O) JavaClass.$(H): JavaClass.st $(INCLUDE_TOP)\stx\libjava\JavaConstants.$(H) $(INCLUDE_TOP)\stx\libjava\JavaBehavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Class.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Array.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(STCHDR)
+$(OUTDIR)JavaClassMirror.$(O) JavaClassMirror.$(H): JavaClassMirror.st $(INCLUDE_TOP)\stx\libjava\JavaVMData.$(H) $(INCLUDE_TOP)\stx\libjava\JavaMirror.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaClassPathBundle.$(O) JavaClassPathBundle.$(H): JavaClassPathBundle.st $(INCLUDE_TOP)\stx\libjava\JavaCodeBundle.$(H) $(INCLUDE_TOP)\stx\libjava\JavaCodeLibraryOrBundle.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaFieldRef2.$(O) JavaFieldRef2.$(H): JavaFieldRef2.st $(INCLUDE_TOP)\stx\libjava\JavaClassContentRef2.$(H) $(INCLUDE_TOP)\stx\libjava\JavaRef2.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaMethodAnalyzer.$(O) JavaMethodAnalyzer.$(H): JavaMethodAnalyzer.st $(INCLUDE_TOP)\stx\libjava\JavaByteCodeProcessorAdapter.$(H) $(INCLUDE_TOP)\stx\libjava\JavaByteCodeProcessor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -209,6 +210,7 @@
$(OUTDIR)JavaMethodWithException.$(O) JavaMethodWithException.$(H): JavaMethodWithException.st $(INCLUDE_TOP)\stx\libjava\JavaMethod.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMethodImpl_OpenJDK7.$(O) JavaNativeMethodImpl_OpenJDK7.$(H): JavaNativeMethodImpl_OpenJDK7.st $(INCLUDE_TOP)\stx\libjava\JavaVMData.$(H) $(INCLUDE_TOP)\stx\libjava\JavaNativeMethodImpl_OpenJDK6.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMethodImpl_SunJDK6.$(O) JavaNativeMethodImpl_SunJDK6.$(H): JavaNativeMethodImpl_SunJDK6.st $(INCLUDE_TOP)\stx\libjava\JavaNativeMethodImpl_OpenJDK6.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)JavaPrimitiveMirror.$(O) JavaPrimitiveMirror.$(H): JavaPrimitiveMirror.st $(INCLUDE_TOP)\stx\libjava\JavaVMData.$(H) $(INCLUDE_TOP)\stx\libjava\JavaMirror.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodAndNode.$(O) ProxyMethodAndNode.$(H): ProxyMethodAndNode.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodConditionNode.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodBlockInvocationNode.$(O) ProxyMethodBlockInvocationNode.$(H): ProxyMethodBlockInvocationNode.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodInvocationNode.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodJavaFieldGetter.$(O) ProxyMethodJavaFieldGetter.$(H): ProxyMethodJavaFieldGetter.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodJavaFieldAccessor.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/benchmarks/Rakefile Wed Dec 18 00:02:10 2013 +0100
+++ b/benchmarks/Rakefile Wed Dec 18 12:03:32 2013 +0100
@@ -1,3 +1,5 @@
+#require 'pry'
+
require 'yaml'
@@ -111,6 +113,7 @@
task spec[0] do
results = Hash.new
benchmark(spec[0], spec[1], results, BENCHMARK_RUNS)
+ puts results.to_yaml
write_results_txt(STDOUT, results)
end
end
@@ -163,6 +166,7 @@
command = "#{JAVA} stx.libjava.benchmarks.#{test} #{passes}"
elsif (platform == :'jvmint')
command = "#{JAVA} -Xint stx.libjava.benchmarks.#{test} #{passes}"
+ command = 'echo "EXECUTION TIME: N/A"'
elsif (platform == :'stx')
command = "./benchmark-runner.sh --smalltalk -b #{test} -n #{passes} 2>&1"
elsif (platform == :'libjava')
@@ -172,6 +176,7 @@
command = 'echo "EXECUTION TIME: N/A"'
else
command = "./benchmark-runner.sh --nojit --java -b #{test} -n #{passes} 2>&1"
+ command = 'echo "EXECUTION TIME: N/A"'
end
elsif (platform == :'stx2libjava')
command = "./benchmark-runner.sh --smalltalk2java -b #{test} -n #{passes} 2>&1"
@@ -216,7 +221,7 @@
if (pair.size == 2)
key = pair[0]
if (results.has_key? key)
- values << [ key, results[key][:jvm], results[key][:jvmint], results[key][:stx], results[key][:libjava], results[key][:libjavaint], results[key][:stx2libjava], results[:key][:ruby] ]
+ values << [ key, results[key][:jvm], results[key][:jvmint], results[key][:stx], results[key][:libjava], results[key][:libjavaint], results[key][:stx2libjava], results[key][:ruby] ]
end
end
end
--- a/benchmarks/benchmark-runner.sh Wed Dec 18 00:02:10 2013 +0100
+++ b/benchmarks/benchmark-runner.sh Wed Dec 18 12:03:32 2013 +0100
@@ -21,7 +21,7 @@
shift
#PROFILER="/usr/local/bin/valgrind -v -v -d --tool=callgrind --instr-atstart=no"
PROFILER="/usr/local/bin/valgrind -v --smc-check=all-non-file --tool=callgrind --instr-atstart=no"
- PROFILER="valgrind -v --smc-check=all-non-file --tool=callgrind --instr-atstart=no"
+ PROFILER="valgrind -v --smc-check=all-non-file --tool=callgrind --instr-atstart=no --branch-sim=yes --cache-sim=yes --collect-jumps=yes"
#PROFILER_OPTS=--callgrind
fi
--- a/benchmarks/result.txt Wed Dec 18 00:02:10 2013 +0100
+++ b/benchmarks/result.txt Wed Dec 18 12:03:32 2013 +0100
@@ -1,17 +1,17 @@
-2013-05-01 18:16:24 +0100
- Test JVM JVM (int) STX-S STX-J STX-J (int) STX-J2S
- Ackerman 5 62 50 38 N/A N/A
- Ary 49 1290 1438 2320 21114 N/A
- Hash 6 32 3 548 225 N/A
- Strcat 171 895 964 4601 15631 N/A
- Native1 2 25 N/A 25 196 N/A
- Groovy 55 60 N/A 666 873 N/A
- Saxon 112 125 N/A 929 1359 N/A
- MethodInvocation 0 12021 2075 1520 65543 4071
-PrimitiveArguments 0 2233 528 336 16533 882
- ObjectArguments 0 2394 490 304 16009 883
- WrappedArguments 308 12089 526 4239 97960 5583
-OverloadedMethods2 31 29994 2340 5655 150319 52764
- OverloadedMethods 0 9400 1132 758 39878 3128
+2013-05-23 11:54:47 +0100
+ Test JVM JVM (int) STX-S STX-J STX-J (int) STX-J2S Ruby
+ Ackerman 5 N/A 264 38 N/A N/A 1757
+ Ary 69 N/A 7549 2097 N/A N/A 13404
+ Hash 8 N/A 4 471 N/A N/A 8
+ Strcat 180 N/A 559 552 N/A N/A 500
+ Native1 2 N/A N/A 23 N/A N/A N/A
+ Groovy 56 N/A N/A 201 N/A N/A N/A
+ Saxon 109 N/A N/A 224 N/A N/A N/A
+ MethodInvocation 0 N/A 10472 1862 N/A 12333 36849
+PrimitiveArguments 0 N/A 2157 410 N/A 2453 N/A
+ ObjectArguments 0 N/A 2161 407 N/A 2484 N/A
+ WrappedArguments 295 N/A 2164 4226 N/A 7141 N/A
+OverloadedMethods2 30 N/A 13965 5450 N/A 39552 N/A
+ OverloadedMethods 0 N/A 5599 824 N/A 7750 N/A
--
--- a/benchmarks/results-log.txt Wed Dec 18 00:02:10 2013 +0100
+++ b/benchmarks/results-log.txt Wed Dec 18 12:03:32 2013 +0100
@@ -188,3 +188,24 @@
OverloadedMethods2 31 29994 2340 5655 150319 52764
OverloadedMethods 0 9400 1132 758 39878 3128
--
+
+2013-05-23 10:41:30 +0100
+Test JVM JVM (int) STX-S STX-J STX-J (int) STX-J2S Ruby
+--
+
+2013-05-23 11:54:47 +0100
+ Test JVM JVM (int) STX-S STX-J STX-J (int) STX-J2S Ruby
+ Ackerman 5 N/A 264 38 N/A N/A 1757
+ Ary 69 N/A 7549 2097 N/A N/A 13404
+ Hash 8 N/A 4 471 N/A N/A 8
+ Strcat 180 N/A 559 552 N/A N/A 500
+ Native1 2 N/A N/A 23 N/A N/A N/A
+ Groovy 56 N/A N/A 201 N/A N/A N/A
+ Saxon 109 N/A N/A 224 N/A N/A N/A
+ MethodInvocation 0 N/A 10472 1862 N/A 12333 36849
+PrimitiveArguments 0 N/A 2157 410 N/A 2453 N/A
+ ObjectArguments 0 N/A 2161 407 N/A 2484 N/A
+ WrappedArguments 295 N/A 2164 4226 N/A 7141 N/A
+OverloadedMethods2 30 N/A 13965 5450 N/A 39552 N/A
+ OverloadedMethods 0 N/A 5599 824 N/A 7750 N/A
+--
--- a/extensions.st Wed Dec 18 00:02:10 2013 +0100
+++ b/extensions.st Wed Dec 18 12:03:32 2013 +0100
@@ -115,6 +115,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
@@ -176,6 +200,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
@@ -295,6 +343,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
@@ -664,6 +743,32 @@
"Modified: / 25-07-2013 / 11:34:54 / cg"
! !
+!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
@@ -798,6 +903,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
@@ -1027,6 +1158,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
@@ -1524,6 +1679,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
@@ -1568,6 +1749,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
@@ -1622,6 +1829,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
@@ -1729,6 +1962,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
@@ -1893,6 +2152,17 @@
"Created: / 04-12-2011 / 11:24:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!ZipArchive methodsFor:'queries - java support'!
+
+isValidFile: path
+ "Return true, if the recevier contains given file. false otherwise.
+ "
+ ^zipMembersByName includesKey: path
+
+ "Created: / 20-05-2013 / 23:37:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+
+! !
+
!ZipArchive methodsFor:'reading - java support'!
nextBytes: bytesToRead of: zmember startingAt: pos into: b startingAt: off
--- a/libInit.cc Wed Dec 18 00:02:10 2013 +0100
+++ b/libInit.cc Wed Dec 18 12:03:32 2013 +0100
@@ -61,7 +61,6 @@
_JavaLocalVariableTableEntry_Init(pass,__pRT__,snd);
_JavaLookup_Init(pass,__pRT__,snd);
_JavaMetaclass_Init(pass,__pRT__,snd);
-_JavaMirror_Init(pass,__pRT__,snd);
_JavaMonitor_Init(pass,__pRT__,snd);
_JavaNameAndType2_Init(pass,__pRT__,snd);
_JavaNativeMemory_Init(pass,__pRT__,snd);
@@ -118,6 +117,7 @@
_JavaMethod_Init(pass,__pRT__,snd);
_JavaMethodAnnotationContainer_Init(pass,__pRT__,snd);
_JavaMethodDescriptor_Init(pass,__pRT__,snd);
+_JavaMirror_Init(pass,__pRT__,snd);
_JavaNativeMethodImpl_137OpenJDK6_Init(pass,__pRT__,snd);
_JavaRelease_Init(pass,__pRT__,snd);
_JavaStringRef2_Init(pass,__pRT__,snd);
@@ -129,8 +129,11 @@
_ProxyMethodGuardNode_Init(pass,__pRT__,snd);
_ProxyMethodInvocationNode_Init(pass,__pRT__,snd);
_ProxyMethodJavaFieldAccessor_Init(pass,__pRT__,snd);
+_JavaAlienMirror_Init(pass,__pRT__,snd);
+_JavaArrayMirror_Init(pass,__pRT__,snd);
_JavaByteCodePreresolver_Init(pass,__pRT__,snd);
_JavaClass_Init(pass,__pRT__,snd);
+_JavaClassMirror_Init(pass,__pRT__,snd);
_JavaClassPathBundle_Init(pass,__pRT__,snd);
_JavaFieldRef2_Init(pass,__pRT__,snd);
_JavaMethodAnalyzer_Init(pass,__pRT__,snd);
@@ -138,6 +141,7 @@
_JavaMethodWithException_Init(pass,__pRT__,snd);
_JavaNativeMethodImpl_137OpenJDK7_Init(pass,__pRT__,snd);
_JavaNativeMethodImpl_137SunJDK6_Init(pass,__pRT__,snd);
+_JavaPrimitiveMirror_Init(pass,__pRT__,snd);
_ProxyMethodAndNode_Init(pass,__pRT__,snd);
_ProxyMethodBlockInvocationNode_Init(pass,__pRT__,snd);
_ProxyMethodJavaFieldGetter_Init(pass,__pRT__,snd);
--- a/libs/java/pom.xml Wed Dec 18 00:02:10 2013 +0100
+++ b/libs/java/pom.xml Wed Dec 18 12:03:32 2013 +0100
@@ -32,6 +32,7 @@
</dependency>
-->
<!--
+ <!--
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
--- a/stx_libjava.st Wed Dec 18 00:02:10 2013 +0100
+++ b/stx_libjava.st Wed Dec 18 12:03:32 2013 +0100
@@ -160,7 +160,6 @@
(the browser has a menu function for that)"
^ #(
- #'stx:goodies/sunit' "TestAsserter - superclass of JUnitTestCaseProxy "
#'stx:libbasic' "AbstractNumberVector - extended "
#'stx:libbasic2' "BitArray - extended "
#'stx:libbasic3' "WrappedMethod - extended "
@@ -177,6 +176,7 @@
exclude individual packages in the #excludedFromPreRequisites method."
^ #(
+ #'stx:goodies/sunit' "TestSuite - referenced by JavaTestsLoader class>>buildSuiteFrom: "
#'stx:libcomp' "BlockNode - referenced by JavaNativeMethod>>numberOfArgs: "
#'stx:libhtml' "URL - referenced by JavaEmbeddedFrameView>>setupAppletFrameIn:initializeJava: "
#'stx:libtool' "DebugView - referenced by Java class>>flushClasses "
@@ -745,14 +745,14 @@
!stx_libjava class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libjava/stx_libjava.st,v 1.19 2013-09-09 10:59:06 mb Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/stx_libjava.st,v 1.12 2013-02-25 13:43:08 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libjava/stx_libjava.st,v 1.19 2013-09-09 10:59:06 mb Exp $'
+ ^ '$Header: /cvs/stx/stx/libjava/stx_libjava.st,v 1.12 2013-02-25 13:43:08 cg Exp $'
!
version_SVN
- ^ '$Id: stx_libjava.st,v 1.19 2013-09-09 10:59:06 mb Exp $'
+ ^ 'Id'
! !