# HG changeset patch # User Jan Vrany # Date 1359639917 0 # Node ID e1291a81f215488761ee5c1794bba68c977828b0 # Parent 9bc559a01353ec6e76e0661935bd4de124c39dba 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. diff -r 9bc559a01353 -r e1291a81f215 JavaClassReader.st --- 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 " + "Modified: / 31-01-2013 / 13:27:24 / Jan Vrany " ! readMethodsFor:aJavaClass @@ -2426,4 +2426,5 @@ ^ '§Id§' ! ! + JavaClassReader initialize! diff -r 9bc559a01353 -r e1291a81f215 JavaNativeMethod.st --- 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 " - "Modified: / 31-01-2013 / 13:06:39 / Jan Vrany " + "Modified: / 31-01-2013 / 13:41:42 / Jan Vrany " +! ! + +!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 " ! ! !JavaNativeMethod class methodsFor:'cleanup'! @@ -244,6 +258,29 @@ "Modified: / 20-01-2013 / 20:56:44 / Jan Vrany " ! +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 " +! + 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 " ! ! @@ -377,97 +411,97 @@ !JavaNativeMethod methodsFor:'private-trampolines'! trampolineUncached - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:55:02 / Jan Vrany " ! trampolineUncached: a1 - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:55:20 / Jan Vrany " ! trampolineUncached: a1 _: a2 - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:55:26 / Jan Vrany " ! trampolineUncached: a1 _: a2 _: a3 - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:55:34 / Jan Vrany " ! trampolineUncached: a1 _: a2 _: a3 _: a4 - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:55:47 / Jan Vrany " ! trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:55:50 / Jan Vrany " ! trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:55:53 / Jan Vrany " ! trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:55:55 / Jan Vrany " ! trampolineUncached: a1 _: a2 _: a3 _: a4 _: a5 _: a6 _: a7 _: a8 - ^self nativeMethodInvokation: thisContext. + ^#__placeholder__ nativeMethodInvokation: thisContext. "Created: / 31-01-2013 / 12:56:00 / Jan Vrany " ! 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 " ! 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 " ! 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 " ! 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 " ! 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 " ! 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 " ! 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 " ! ! diff -r 9bc559a01353 -r e1291a81f215 Make.proto --- 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 diff -r 9bc559a01353 -r e1291a81f215 bc.mak --- 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 diff -r 9bc559a01353 -r e1291a81f215 extensions.st --- 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 " ! ! +!Context methodsFor:'accessing'! + +arg1Index + ^1 + + "Created: / 31-01-2013 / 13:29:06 / Jan Vrany " +! ! + !Delay methodsFor:'delaying'! waitWithState:state diff -r 9bc559a01353 -r e1291a81f215 libjava.rc --- 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 diff -r 9bc559a01353 -r e1291a81f215 stx_libjava.st --- 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 " ! 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 " ! ! !stx_libjava class methodsFor:'description - java'!