Finished uncached trampoline.
Now JavaNativeMethod is not a Java method but Smalltalk methods. When
created, a trampoline code is installed so when invoked, it dispatches
back to JavaMethod>>nativeMethodInvokation: like before. The next step
is to install optimized trampoline after first invocation.
--- a/JavaClassReader.st Thu Jan 31 13:10:37 2013 +0000
+++ b/JavaClassReader.st Thu Jan 31 13:45:17 2013 +0000
@@ -2255,7 +2255,7 @@
"Created: / 15-04-1996 / 16:48:49 / cg"
"Modified: / 25-09-1999 / 23:16:25 / cg"
"Modified: / 28-10-2011 / 16:56:48 / m"
- "Modified: / 02-11-2012 / 22:06:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 31-01-2013 / 13:27:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
readMethodsFor:aJavaClass
@@ -2426,4 +2426,5 @@
^ '§Id§'
! !
+
JavaClassReader initialize!
--- a/JavaNativeMethod.st Thu Jan 31 13:10:37 2013 +0000
+++ b/JavaNativeMethod.st Thu Jan 31 13:45:17 2013 +0000
@@ -78,9 +78,12 @@
!
initialize
- self flags: ((self flags bitClear: Behavior flagMethod) bitOr: Behavior flagJavaMethod).
+ "/self flags: ((self flags bitClear: Behavior flagMethod) bitOr: Behavior flagJavaMethod).
+ self flags: ((self flags bitClear: Behavior flagJavaMethod) bitOr: Behavior flagMethod).
"
- self flags: ((self flags bitClear: Behavior flagJavaMethod) bitOr: Behavior flagMethod).
+ self flags bitAnd: Behavior flagJavaMethod
+ self flags bitAnd: Behavior flagMethod
+
"
"By default, do not cache native impls while developing"
CacheNativeImplementation := Smalltalk isStandAloneApp.
@@ -90,7 +93,18 @@
"
"Modified (comment): / 03-11-2011 / 10:48:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 31-01-2013 / 13:06:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 31-01-2013 / 13:41:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaNativeMethod class methodsFor:'instance creation'!
+
+new
+ "Redefined again, since since trampoline methods need
+ literals"
+
+ ^ self basicNew:1.
+
+ "Created: / 31-01-2013 / 13:26:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaNativeMethod class methodsFor:'cleanup'!
@@ -244,6 +258,29 @@
"Modified: / 20-01-2013 / 20:56:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+installTrampoline: trampoline
+ | l m |
+
+ m := trampoline asByteCodeMethod.
+ m ~~ trampoline ifTrue:[
+ "Cache it"
+ self class methodDictionary at: trampoline selector put: m.
+ ].
+ l := m literals.
+ 1 to: l size do:[:i|
+ (l at: i) == #__placeholder__ ifTrue:[
+ l at: i put: self.
+ ].
+ ].
+ m isNil ifTrue:[
+ self error: 'Cannot find trampoline method'.
+ ].
+ self byteCode: m byteCode.
+ self literals: l.
+
+ "Created: / 31-01-2013 / 13:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
nativeMethodTemplate
^'%1 %2
@@ -366,10 +403,7 @@
) at: aNumber + 1.
m := self class compiledMethodAt: sel.
- m isNil ifTrue:[
- self error: 'Cannot find trampoline method'.
- ].
- self byteCode: m byteCode.
+ self installTrampoline: m.
"Created: / 31-01-2013 / 12:44:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
@@ -377,97 +411,97 @@
!JavaNativeMethod methodsFor:'private-trampolines'!
trampolineUncached
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:55:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:55:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:55:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:55:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:55:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:55:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:55:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:55:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:56:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8 _: a9
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:56:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8 _: a9 _: a10
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:56:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8 _: a9 _: a10 _: a11
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:56:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8 _: a9 _: a10 _: a11 _: a12
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8 _: a9 _: a10 _: a11 _: a12 _: a13
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:56:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8 _: a9 _: a10 _: a11 _: a12 _: a13 _: a14
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8 _: a9 _: a10 _: a11 _: a12 _: a13 _: a14 _: a15
- ^self nativeMethodInvokation: thisContext.
+ ^#__placeholder__ nativeMethodInvokation: thisContext.
"Created: / 31-01-2013 / 12:56:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/Make.proto Thu Jan 31 13:10:37 2013 +0000
+++ b/Make.proto Thu Jan 31 13:45:17 2013 +0000
@@ -284,7 +284,7 @@
$(OUTDIR)ProxyMethodJavaMethodInvocationNode.$(O) ProxyMethodJavaMethodInvocationNode.$(H): ProxyMethodJavaMethodInvocationNode.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodMethodInvocationNode.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodInvocationNode.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodJavaTypeCheckNode.$(O) ProxyMethodJavaTypeCheckNode.$(H): ProxyMethodJavaTypeCheckNode.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodTypeCheckNode.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodConditionNode.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMethod.$(O) JavaNativeMethod.$(H): JavaNativeMethod.st $(INCLUDE_TOP)/stx/libjava/JavaMethodWithHandler.$(H) $(INCLUDE_TOP)/stx/libjava/JavaMethodWithException.$(H) $(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)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic2/BooleanArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/BitArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/Delay.$(H) $(INCLUDE_TOP)/stx/libbasic/Process.$(H) $(INCLUDE_TOP)/stx/libbasic/Link.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/SmallInteger.$(H) $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/String.$(H) $(INCLUDE_TOP)/stx/libbasic3/WrappedMethod.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic2/ZipArchive.$(H) $(INCLUDE_TOP)/stx/libbasic/Boolean.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/Character.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/libbasic/DoubleArray.$(H) $(INCLUDE_TOP)/stx/libbasic/AbstractNumberVector.$(H) $(INCLUDE_TOP)/stx/libbasic/Float.$(H) $(INCLUDE_TOP)/stx/libbasic/LimitedPrecisionReal.$(H) $(INCLUDE_TOP)/stx/libbasic/FloatArray.$(H) $(INCLUDE_TOP)/stx/libbasic/LargeInteger.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/ShortFloat.$(H) $(INCLUDE_TOP)/stx/libbasic2/SignedIntegerArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/UnboxedIntegerArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/SignedLongIntegerArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/SignedWordArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UndefinedObject.$(H) $(INCLUDE_TOP)/stx/libbasic2/WordArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ProgrammingLanguage.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Class.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Semaphore.$(H) $(INCLUDE_TOP)/stx/libbasic2/Socket.$(H) $(INCLUDE_TOP)/stx/libbasic/NonPositionableExternalStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ReadWriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/WriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(INCLUDE_TOP)/stx/libbasic/Unicode16String.$(H) $(INCLUDE_TOP)/stx/libbasic/TwoByteString.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic2/BooleanArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/BitArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/Delay.$(H) $(INCLUDE_TOP)/stx/libbasic/Process.$(H) $(INCLUDE_TOP)/stx/libbasic/Link.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/SmallInteger.$(H) $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/String.$(H) $(INCLUDE_TOP)/stx/libbasic3/WrappedMethod.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic2/ZipArchive.$(H) $(INCLUDE_TOP)/stx/libbasic/Boolean.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/Character.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/libbasic/DoubleArray.$(H) $(INCLUDE_TOP)/stx/libbasic/AbstractNumberVector.$(H) $(INCLUDE_TOP)/stx/libbasic/Float.$(H) $(INCLUDE_TOP)/stx/libbasic/LimitedPrecisionReal.$(H) $(INCLUDE_TOP)/stx/libbasic/FloatArray.$(H) $(INCLUDE_TOP)/stx/libbasic/LargeInteger.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/ShortFloat.$(H) $(INCLUDE_TOP)/stx/libbasic2/SignedIntegerArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/UnboxedIntegerArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/SignedLongIntegerArray.$(H) $(INCLUDE_TOP)/stx/libbasic2/SignedWordArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UndefinedObject.$(H) $(INCLUDE_TOP)/stx/libbasic2/WordArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ProgrammingLanguage.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Class.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Semaphore.$(H) $(INCLUDE_TOP)/stx/libbasic2/Socket.$(H) $(INCLUDE_TOP)/stx/libbasic/NonPositionableExternalStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ReadWriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/WriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(INCLUDE_TOP)/stx/libbasic/Unicode16String.$(H) $(INCLUDE_TOP)/stx/libbasic/TwoByteString.$(H) $(INCLUDE_TOP)/stx/libbasic/Context.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/bc.mak Thu Jan 31 13:10:37 2013 +0000
+++ b/bc.mak Thu Jan 31 13:45:17 2013 +0000
@@ -218,7 +218,7 @@
$(OUTDIR)ProxyMethodJavaMethodInvocationNode.$(O) ProxyMethodJavaMethodInvocationNode.$(H): ProxyMethodJavaMethodInvocationNode.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodMethodInvocationNode.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodInvocationNode.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)ProxyMethodJavaTypeCheckNode.$(O) ProxyMethodJavaTypeCheckNode.$(H): ProxyMethodJavaTypeCheckNode.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodTypeCheckNode.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodConditionNode.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)JavaNativeMethod.$(O) JavaNativeMethod.$(H): JavaNativeMethod.st $(INCLUDE_TOP)\stx\libjava\JavaMethodWithHandler.$(H) $(INCLUDE_TOP)\stx\libjava\JavaMethodWithException.$(H) $(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)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic2\BooleanArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\BitArray.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\Delay.$(H) $(INCLUDE_TOP)\stx\libbasic\Process.$(H) $(INCLUDE_TOP)\stx\libbasic\Link.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\SmallInteger.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(INCLUDE_TOP)\stx\libbasic3\WrappedMethod.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic2\ZipArchive.$(H) $(INCLUDE_TOP)\stx\libbasic\Boolean.$(H) $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\Character.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\DoubleArray.$(H) $(INCLUDE_TOP)\stx\libbasic\AbstractNumberVector.$(H) $(INCLUDE_TOP)\stx\libbasic\Float.$(H) $(INCLUDE_TOP)\stx\libbasic\LimitedPrecisionReal.$(H) $(INCLUDE_TOP)\stx\libbasic\FloatArray.$(H) $(INCLUDE_TOP)\stx\libbasic\LargeInteger.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ShortFloat.$(H) $(INCLUDE_TOP)\stx\libbasic2\SignedIntegerArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\UnboxedIntegerArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\SignedLongIntegerArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\SignedWordArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UndefinedObject.$(H) $(INCLUDE_TOP)\stx\libbasic2\WordArray.$(H) $(INCLUDE_TOP)\stx\libbasic\ProgrammingLanguage.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Class.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Semaphore.$(H) $(INCLUDE_TOP)\stx\libbasic2\Socket.$(H) $(INCLUDE_TOP)\stx\libbasic\NonPositionableExternalStream.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalStream.$(H) $(INCLUDE_TOP)\stx\libbasic\ReadWriteStream.$(H) $(INCLUDE_TOP)\stx\libbasic\WriteStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PositionableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PeekableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(INCLUDE_TOP)\stx\libbasic\Unicode16String.$(H) $(INCLUDE_TOP)\stx\libbasic\TwoByteString.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic2\BooleanArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\BitArray.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\Delay.$(H) $(INCLUDE_TOP)\stx\libbasic\Process.$(H) $(INCLUDE_TOP)\stx\libbasic\Link.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\SmallInteger.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(INCLUDE_TOP)\stx\libbasic3\WrappedMethod.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic2\ZipArchive.$(H) $(INCLUDE_TOP)\stx\libbasic\Boolean.$(H) $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\Character.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\DoubleArray.$(H) $(INCLUDE_TOP)\stx\libbasic\AbstractNumberVector.$(H) $(INCLUDE_TOP)\stx\libbasic\Float.$(H) $(INCLUDE_TOP)\stx\libbasic\LimitedPrecisionReal.$(H) $(INCLUDE_TOP)\stx\libbasic\FloatArray.$(H) $(INCLUDE_TOP)\stx\libbasic\LargeInteger.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ShortFloat.$(H) $(INCLUDE_TOP)\stx\libbasic2\SignedIntegerArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\UnboxedIntegerArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\SignedLongIntegerArray.$(H) $(INCLUDE_TOP)\stx\libbasic2\SignedWordArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UndefinedObject.$(H) $(INCLUDE_TOP)\stx\libbasic2\WordArray.$(H) $(INCLUDE_TOP)\stx\libbasic\ProgrammingLanguage.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Class.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Semaphore.$(H) $(INCLUDE_TOP)\stx\libbasic2\Socket.$(H) $(INCLUDE_TOP)\stx\libbasic\NonPositionableExternalStream.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalStream.$(H) $(INCLUDE_TOP)\stx\libbasic\ReadWriteStream.$(H) $(INCLUDE_TOP)\stx\libbasic\WriteStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PositionableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PeekableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(INCLUDE_TOP)\stx\libbasic\Unicode16String.$(H) $(INCLUDE_TOP)\stx\libbasic\TwoByteString.$(H) $(INCLUDE_TOP)\stx\libbasic\Context.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/extensions.st Thu Jan 31 13:10:37 2013 +0000
+++ b/extensions.st Thu Jan 31 13:45:17 2013 +0000
@@ -636,6 +636,14 @@
"Created: / 18-02-2012 / 16:42:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!Context methodsFor:'accessing'!
+
+arg1Index
+ ^1
+
+ "Created: / 31-01-2013 / 13:29:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!Delay methodsFor:'delaying'!
waitWithState:state
--- a/libjava.rc Thu Jan 31 13:10:37 2013 +0000
+++ b/libjava.rc Thu Jan 31 13:45:17 2013 +0000
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\n SWING Research Group, Czech Technical University In Prague\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.3.0\0"
- VALUE "ProductDate", "Thu, 31 Jan 2013 13:07:28 GMT\0"
+ VALUE "ProductDate", "Thu, 31 Jan 2013 13:42:32 GMT\0"
END
END
--- a/stx_libjava.st Thu Jan 31 13:10:37 2013 +0000
+++ b/stx_libjava.st Thu Jan 31 13:45:17 2013 +0000
@@ -160,16 +160,16 @@
^ #(
#'stx:goodies/sunit' "TestSuite - referenced by stx_libjava class>>testSuite "
- #'stx:libbasic' "Lookup - superclass of JavaLookup::Smalltalk2Java "
- #'stx:libbasic2' "UnboxedIntegerArray - superclass of extended SignedIntegerArray "
+ #'stx:libbasic' "Exception - superclass of JavaError "
+ #'stx:libbasic2' "UnboxedIntegerArray - superclass of extended WordArray "
#'stx:libbasic3' "MessageTracer - referenced by JavaMethod>>setBreakPoint "
- #'stx:libcomp' "SelfNode - referenced by ProxyMethodMethodInvocationNode>>generate: "
+ #'stx:libcomp' "ConstantNode - referenced by ProxyMethodJavaMethodInvocationNode>>wrappedArgs: "
#'stx:libhtml' "URL - referenced by JavaEmbeddedFrameView>>setupAppletFrameIn:initializeJava: "
#'stx:libtool' "DebugView - referenced by Java class>>flushClasses "
- #'stx:libview' "DeviceGraphicsContext - superclass of JavaTopView "
+ #'stx:libview' "TopView - superclass of JavaPopUpView "
#'stx:libview2' "GIFReader - referenced by JavaNativeMethodImpl_OpenJDK6 class>>_GifImageDecoder_parseImage: "
- #'stx:libwidg' "SelectionInListView - referenced by JavaNativeMethodImpl_OpenJDK6 class>>_WListPeer_create: "
- #'stx:libwidg2' "ComboListView - referenced by JavaNativeMethodImpl_OpenJDK6 class>>_WChoicePeer_create: "
+ #'stx:libwidg' "ScrollableView - referenced by JavaNativeMethodImpl_OpenJDK6 class>>_MComponentPeer_pSetForeground: "
+ #'stx:libwidg2' "ComboBoxView - referenced by JavaVM class>>processEvent: "
)
! !
@@ -418,8 +418,6 @@
JavaCodeLibrary
#'JavaNativeMethodImpl_OpenJDK6'
)
-
- "Modified: / 23-01-2013 / 16:15:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
extensionMethodNames
@@ -585,9 +583,8 @@
'ProjectDefinition class' javaBundle
'String class' javaName
'Unicode16String class' javaName
+ Context arg1Index
)
-
- "Modified: / 23-01-2013 / 00:12:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!stx_libjava class methodsFor:'description - java'!