Marcel Taeumel uploaded a new version of FFI-PoolsTests to project FFI:
http://source.squeak.org/FFI/FFI-PoolsTests-mt.9.mcz ==================== Summary ==================== Name: FFI-PoolsTests-mt.9 Author: mt Time: 2 June 2020, 8:12:50.968821 pm UUID: e395981b-0a1c-3f44-b5ee-fe733d5e47cd Ancestors: FFI-PoolsTests-mt.8 Complements FFI-Pools-mt.18 =============== Diff against FFI-PoolsTests-mt.8 =============== Item was added: + ExternalPool subclass: #FFIExampleExternalPool + instanceVariableNames: '' + classVariableNames: 'EAGAIN EIO EWOULDBLOCK INT_MAX M_E M_PI ULONG_MAX' + poolDictionaries: '' + category: 'FFI-PoolsTests'! + + !FFIExampleExternalPool commentStamp: 'monty 4/17/2018 13:15' prior: 0! + A buildable example FFIExternalSharedPool that uses standard POSIX headers and symbols. + + self generateProgram. + self initializeFromGeneratedProgramOutput.! Item was added: + ----- Method: FFIExampleExternalPool class>>errors (in category 'definitions') ----- + errors + " + self errors writePoolData. + self errors readPoolData. + " + <ffiExternalPool> + <ffiPoolDataStorage: #methodSource> + + <ffiCHeaders: #('<errno.h>')> + + <ffiVariable: #EAGAIN type: 'long' convertTo: #Integer> + <ffiVariable: #EWOULDBLOCK type: 'long' convertTo: #Integer> + <ffiVariable: #EIO type: nil> + <ffiVariable: #M_PI type: nil> + <ffiVariable: #M_E type: nil> + <ffiVariable: #ULONG_MAX type: nil> + <ffiVariable: #INT_MAX type: nil> + + ^ self poolDefinition! Item was added: + ----- Method: FFIExampleExternalPool class>>errorsData (in category 'definitions - data') ----- + errorsData + "Automatically generated." + <ffiPoolReadWriter: #ExternalPoolST1ReadWriter> + <ffiPoolDataStorage: #methodSource> + " + FFIExampleExternalPool errors readPoolDataFrom: #methodSource. + FFIExampleExternalPool errors writePoolDataTo: #methodSource. + " + ^ { + (FFIPlatformDescription name: 'Win32' osVersion: '10.0' subtype: 'IX86' wordSize: 4). + Dictionary new + at: #EWOULDBLOCK put: 16r0000000B; + at: #EAGAIN put: 16r0000000B; + yourself. + } + ! Item was added: + ----- Method: FFIExampleExternalPool class>>limits (in category 'definitions') ----- + limits + " + self limits writePoolData. + self limits readPoolData. + " + <ffiExternalPool> + <ffiPoolDataStorage: #methodSource> + + <ffiInheritsFrom: #math> + + <ffiCHeaders: #('<math.h>' '<errno.h>' '<limits.h>')> + <ffiVariable: #ULONG_MAX type: 'ulong' convertTo: #LargePositiveInteger> + <ffiVariable: #INT_MAX type: 'long' convertTo: #Integer> + + ^ self poolDefinition! Item was added: + ----- Method: FFIExampleExternalPool class>>limitsData (in category 'definitions - data') ----- + limitsData + "Automatically generated." + <ffiPoolReadWriter: #ExternalPoolST1ReadWriter> + <ffiPoolDataStorage: #methodSource> + " + FFIExampleExternalPool limits readPoolDataFrom: #methodSource. + FFIExampleExternalPool limits writePoolDataTo: #methodSource. + " + ^ { + (FFIPlatformDescription name: 'Win32' osVersion: '10.0' subtype: 'IX86' wordSize: 4). + Dictionary new + at: #M_E put: (ExternalPoolST1ReadWriter readFloatFrom: '2.718281745910644531250e+00'); + at: #M_PI put: (ExternalPoolST1ReadWriter readFloatFrom: '3.141592741012573242188e+00'); + at: #EWOULDBLOCK put: 16r0000000B; + at: #EAGAIN put: 16r0000000B; + at: #INT_MAX put: 16r7FFFFFFF; + at: #ULONG_MAX put: 4294967295; + yourself. + } + ! Item was added: + ----- Method: FFIExampleExternalPool class>>math (in category 'definitions') ----- + math + " + self math writePoolData. + self math readPoolData. + " + <ffiExternalPool> + <ffiPoolDataStorage: #methodSource> + + <ffiInheritsFrom: #errors> + + <ffiCHeaders: #('<errno.h>' '<math.h>')> + <ffiVariable: #M_PI type: 'float' convertTo: #Float> + <ffiVariable: #M_E type: 'float' convertTo: #Float> + + ^ self poolDefinition! Item was added: + ----- Method: FFIExampleExternalPool class>>mathData (in category 'definitions - data') ----- + mathData + "Automatically generated." + <ffiPoolReadWriter: #ExternalPoolST1ReadWriter> + <ffiPoolDataStorage: #methodSource> + " + FFIExampleExternalPool math readPoolDataFrom: #methodSource. + FFIExampleExternalPool math writePoolDataTo: #methodSource. + " + ^ { + (FFIPlatformDescription name: 'Win32' osVersion: '10.0' subtype: 'IX86' wordSize: 4). + Dictionary new + at: #M_PI put: (ExternalPoolST1ReadWriter readFloatFrom: '3.141592741012573242188e+00'); + at: #EWOULDBLOCK put: 16r0000000B; + at: #EAGAIN put: 16r0000000B; + at: #M_E put: (ExternalPoolST1ReadWriter readFloatFrom: '2.718281745910644531250e+00'); + yourself. + } + ! Item was removed: - FFIExternalSharedPool subclass: #FFIExampleStandardExternalSharedPool - instanceVariableNames: '' - classVariableNames: 'EAGAIN EIO EWOULDBLOCK INT_MAX M_E M_PI ULONG_MAX' - poolDictionaries: '' - category: 'FFI-PoolsTests'! - - !FFIExampleStandardExternalSharedPool commentStamp: 'monty 4/17/2018 13:15' prior: 0! - A buildable example FFIExternalSharedPool that uses standard POSIX headers and symbols. - - self generateProgram. - self initializeFromGeneratedProgramOutput.! Item was removed: - ----- Method: FFIExampleStandardExternalSharedPool class>>errors (in category 'definitions') ----- - errors - <ffiExternalSharedPool> - <ffiCHeaders: #('<errno.h>')> - <ffiVariable: #EAGAIN type: #Integer> - <ffiVariable: #EWOULDBLOCK type: #Integer> - <ffiVariable: #EIO type: nil> - <ffiVariable: #M_PI type: nil> - <ffiVariable: #M_E type: nil> - <ffiVariable: #ULONG_MAX type: nil> - <ffiVariable: #INT_MAX type: nil>! Item was removed: - ----- Method: FFIExampleStandardExternalSharedPool class>>limits (in category 'definitions') ----- - limits - <ffiExternalSharedPool> - <ffiInheritsFrom: #math> - <ffiPlatformName: 'unix' wordSize: 4> - <ffiCFlags: '-Wall -o'> - <ffiCHeaders: #('<math.h>' '<errno.h>' '<limits.h>')> - <ffiVariable: #ULONG_MAX type: #LargePositiveInteger> - <ffiVariable: #INT_MAX type: #Integer>! Item was removed: - ----- Method: FFIExampleStandardExternalSharedPool class>>math (in category 'definitions') ----- - math - <ffiExternalSharedPool> - <ffiInheritsFrom: #errors> - <ffiPlatformName: 'unix'> - <ffiCHeaders: #('<errno.h>' '<math.h>')> - <ffiVariable: #M_PI type: #Float> - <ffiVariable: #M_E type: #Float>! Item was changed: ----- Method: FFIExternalSharedPoolProgramGeneratorTest>>newProgramGenerator (in category 'instance creation') ----- newProgramGenerator + ^ self programGeneratorClass on: String new writeStream + lineEnding: String lf + cHeaders: #()! - definition: FFITestExternalSharedPool defaultDefinition! Item was changed: ----- Method: FFIExternalSharedPoolProgramGeneratorTest>>programGeneratorClass (in category 'accessing') ----- programGeneratorClass + ^ ExternalPoolProgramGenerator! - ^ FFIExternalSharedPoolProgramGenerator! Item was changed: ----- Method: FFIExternalSharedPoolProgramGeneratorTest>>testEmitAllFormat (in category 'tests') ----- testEmitAllFormat | programGenerator | programGenerator := self newProgramGenerator. self assert: (programGenerator emitAll: '${1}two${2}$two$${1}' format: {'one'. 'three'}) == programGenerator. + self assert: programGenerator stream contents = 'onetwothree$two$one'. - self assert: programGenerator contents = 'onetwothree$two$one'. programGenerator := self newProgramGenerator. self assert: (programGenerator emitAll: '${one}two${three}$two$${one}' format: (Dictionary withAll: {'one' -> 1. 'three' -> 3})) == programGenerator. + self assert: programGenerator stream contents = '1two3$two$1'. - self assert: programGenerator contents = '1two3$two$1'. self should: [self newProgramGenerator emitAll: '${1}${2}' format: {1}] raise: Error. self should: [self newProgramGenerator emitAll: '${one}${two}' format: {'one' -> 1} asDictionary] raise: Error.! Item was changed: ----- Method: FFIExternalSharedPoolProgramGeneratorTest>>testLineEnding (in category 'tests') ----- testLineEnding {Character cr. Character lf. String crlf. 'NL'. $N} do: [:each | | programGenerator leString | programGenerator := self newProgramGenerator. + self assert: (programGenerator setLineEnding: each) == programGenerator. - self assert: (programGenerator lineEnding: each) == programGenerator. leString := each asString. self assert: programGenerator lineEnding equals: leString. programGenerator emitAll: 'one'; emitLineEnding; emitAll: 'two', String lf, 'three'; + emit: Character cr; "Rely on automatic conversion here." - emit: Character cr; emitAll: 'four'. self + assert: programGenerator stream contents - assert: programGenerator contents equals: 'one', leString, 'two', leString, 'three', leString, 'four']! Item was changed: ----- Method: FFIExternalSharedPoolTest>>assertIsDefaultDefinition:for: (in category 'asserting') ----- assertIsDefaultDefinition: aDefinition for: aSharedPool | classPool | self assert: aDefinition isDefault; assert: aDefinition name isNil; assert: aDefinition inheritsFrom isNil; assert: aDefinition cCompiler equals: self definitionClass defaultCCompiler; assert: aDefinition cFlags equals: self definitionClass defaultCFlags; assert: aDefinition cHeaders equals: self definitionClass defaultCHeaders; assert: aDefinition platform equals: self platformClass empty. self + assert: aDefinition poolReadWriterClass + equals: self definitionClass defaultPoolReadWriterClass. - assert: aDefinition programGeneratorClass - equals: self definitionClass defaultProgramGeneratorClass. classPool := aSharedPool classPool. classPool keysDo: [:each | self + assert: (aDefinition variablesAndTypesAt: each) value - assert: (aDefinition variablesAndTypesAt: each) equals: Integer]. self assert: classPool size equals: aDefinition variablesAndTypes size.! Item was added: + ----- Method: FFIExternalSharedPoolTest>>resolvedDefinitionsFor: (in category 'support') ----- + resolvedDefinitionsFor: sharedPool + + ^(sharedPool definitionResolverClass + on: sharedPool) resolvedDefinitions! Item was added: + ----- Method: FFIExternalSharedPoolTest>>resolvedToplevelDefinitionsFor: (in category 'support') ----- + resolvedToplevelDefinitionsFor: sharedPool + + ^ (sharedPool definitionResolverClass + class: sharedPool + definitions: (sharedPool definitions collect: [:each | each inheritsFrom: nil])) + resolvedDefinitions! Item was changed: ----- Method: FFIExternalSharedPoolTest>>testDefaultDefinition (in category 'tests') ----- testDefaultDefinition | sharedPool | sharedPool := FFITestDefaultDefinitionSharedPool. + self assert: (self resolvedDefinitionsFor: sharedPool) size equals: 1. - self assert: (sharedPool resolvedDefinitions) size equals: 1. self assertIsDefaultDefinition: (sharedPool preferredResolvedDefinitionForPlatform: self newTestPlatform) for: sharedPool.! Item was changed: ----- Method: FFIExternalSharedPoolTest>>testDefinitionLoops (in category 'tests') ----- testDefinitionLoops {FFITestLoopOneExternalSharedPool. FFITestLoopTwoExternalSharedPool. FFITestLoopThreeExternalSharedPool} do: [:sharedPool | self shouldnt: [sharedPool definitions] + raise: ExternalPoolError. - raise: FFIExternalSharedPoolException. self + should: [self resolvedDefinitionsFor: sharedPool] + raise: ExternalPoolError. - should: [sharedPool resolvedDefinitions] - raise: FFIExternalSharedPoolException. self + shouldnt: [self resolvedToplevelDefinitionsFor: sharedPool] + raise: ExternalPoolError].! - shouldnt: [ - sharedPool resolvedDefinitions: - (sharedPool definitions collect: [:each | - each inheritsFrom: nil])] - raise: FFIExternalSharedPoolException].! Item was changed: ----- Method: FFIExternalSharedPoolTest>>testDefinitionUnkownReferences (in category 'tests') ----- testDefinitionUnkownReferences | sharedPool | sharedPool := FFITestUnknownReferenceExternalSharedPool. self shouldnt: [sharedPool definitions] + raise: ExternalPoolError. - raise: FFIExternalSharedPoolException. self + should: [self resolvedDefinitionsFor: sharedPool] + raise: ExternalPoolError. - should: [sharedPool resolvedDefinitions] - raise: FFIExternalSharedPoolException. self + shouldnt: [self resolvedToplevelDefinitionsFor: sharedPool] + raise: ExternalPoolError.! - shouldnt: [ - sharedPool resolvedDefinitions: - (sharedPool definitions collect: [:each | - each inheritsFrom: nil])] - raise: FFIExternalSharedPoolException.! Item was changed: ----- Method: FFIExternalSharedPoolTest>>testInheritance (in category 'tests') ----- testInheritance | sharedPool definitions defaultDefinition emptyDefinition overrideDefinition | sharedPool := FFITestInheritanceExternalSharedPool. + definitions := self resolvedDefinitionsFor: sharedPool. - definitions := sharedPool resolvedDefinitions. self assert: definitions size equals: 3. defaultDefinition := definitions detect: [:each | each isDefault]. emptyDefinition := definitions detect: [:each | each name = #empty]. overrideDefinition := definitions detect: [:each | each name = #override]. self assertIsDefaultDefinition: defaultDefinition for: sharedPool. self deny: emptyDefinition isDefault; assert: emptyDefinition inheritsFrom isNil; assert: emptyDefinition cCompiler equals: defaultDefinition cCompiler; assert: emptyDefinition cFlags equals: defaultDefinition cFlags; assert: emptyDefinition cHeaders equals: defaultDefinition cHeaders; assert: emptyDefinition platform equals: defaultDefinition platform; + assert: emptyDefinition poolReadWriterClass equals: defaultDefinition poolReadWriterClass; - assert: emptyDefinition programGeneratorClass equals: defaultDefinition programGeneratorClass; assert: emptyDefinition variablesAndTypes equals: defaultDefinition variablesAndTypes. self deny: overrideDefinition isDefault; assert: overrideDefinition inheritsFrom equals: #empty; assert: overrideDefinition cCompiler equals: 'testCompiler'; assert: overrideDefinition cFlags equals: 'testFlags'; assert: overrideDefinition cHeaders equals: #('<testHeader.h>' '"testLocalHeader.h"' '<testImplicitGlobalHeader.h>'); assert: overrideDefinition platform equals: self newTestPlatform; - assert: overrideDefinition programGeneratorClass - equals: FFITestExternalSharedPoolProgramGenerator; assert: overrideDefinition variablesAndTypes + equals: (Dictionary withAll: {#One -> ((ExternalType atomicTypeNamed: 'float') -> Float). #Two -> ((ExternalType atomicTypeNamed: 'long') -> Integer)}).! - equals: (Dictionary withAll: {#One -> Float. #Two -> Integer}).! Item was changed: ----- Method: FFIExternalSharedPoolTest>>testPlatformAliasing (in category 'tests') ----- testPlatformAliasing | sharedPool definition | sharedPool := FFITestPlatformAliasingExternalSharedPool. self should: [ sharedPool preferredResolvedDefinitionForPlatform: self platformClass empty] + raise: ExternalPoolError. - raise: FFIExternalSharedPoolException. self should: [ sharedPool preferredResolvedDefinitionForPlatform: self newTestPlatform] + raise: ExternalPoolError. - raise: FFIExternalSharedPoolException. self shouldnt: [ definition := sharedPool preferredResolvedDefinitionForPlatform: (self newTestPlatform wordSize: 32)] + raise: ExternalPoolError. - raise: FFIExternalSharedPoolException. self assert: definition name equals: #five.! Item was added: + ----- Method: FFIExternalSharedPoolTest>>testPoolDefinition (in category 'tests') ----- + testPoolDefinition + + | sharedPool definition | + sharedPool := FFITestPoolDefinitionExternalSharedPool. + + definition := sharedPool base. + self assert: 'base' equals: definition platform name. + + definition := sharedPool override. + self + assert: #base equals: definition inheritsFrom; + assert: 'base' equals: definition platform name. "already resolved"! Item was changed: ----- Method: FFIExternalSharedPoolTest>>testVariableTypes (in category 'tests') ----- testVariableTypes | sharedPool resolvedDefinitions variables| sharedPool := FFITestTypesExternalSharedPool. + resolvedDefinitions := self resolvedDefinitionsFor: sharedPool. - resolvedDefinitions := sharedPool resolvedDefinitions. self assert: resolvedDefinitions size equals: 2. variables := #(Zero One Two Three Four Five Six). resolvedDefinitions do: [:definition | definition isDefault ifTrue: [ variables do: [:each | self + assert: (definition variablesAndTypesAt: each) value - assert: (definition variablesAndTypesAt: each) equals: Integer]] ifFalse: [ variables with: {Integer. Integer. Float. String. Character. Boolean. LargePositiveInteger} do: [:variable :type | self + assert: (definition variablesAndTypesAt: variable) value - assert: (definition variablesAndTypesAt: variable) equals: type]]].! Item was changed: + ExternalPool subclass: #FFITestExternalSharedPool - FFIExternalSharedPool subclass: #FFITestExternalSharedPool instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'FFI-PoolsTests'! !FFITestExternalSharedPool commentStamp: 'monty 4/1/2018 10:30' prior: 0! These classes are used during testing and are not buildable.! Item was removed: - FFIExternalSharedPoolProgramGenerator subclass: #FFITestExternalSharedPoolProgramGenerator - instanceVariableNames: '' - classVariableNames: '' - poolDictionaries: '' - category: 'FFI-PoolsTests'! - - !FFITestExternalSharedPoolProgramGenerator commentStamp: 'monty 4/1/2018 07:47' prior: 0! - A stub used during testing.! Item was changed: ----- Method: FFITestInheritanceExternalSharedPool class>>empty (in category 'definitions') ----- empty + <ffiExternalPool>! - <ffiExternalSharedPool>! Item was changed: ----- Method: FFITestInheritanceExternalSharedPool class>>override (in category 'definitions') ----- override + <ffiExternalPool> - <ffiExternalSharedPool> <ffiInheritsFrom: #empty> <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 16> <ffiCCompiler: 'testCompiler'> <ffiCFlags: 'testFlags'> <ffiCHeaders: #('<testHeader.h>' '"testLocalHeader.h"' 'testImplicitGlobalHeader.h')> + <ffiVariable: #One type: 'float' convertTo: #Float>! - <ffiProgramGenerator: #FFITestExternalSharedPoolProgramGenerator> - <ffiVariable: #One type: #Float>! Item was changed: ----- Method: FFITestLoopOneExternalSharedPool class>>one (in category 'definitions') ----- one + <ffiExternalPool> - <ffiExternalSharedPool> <ffiInheritsFrom: #one>! Item was changed: ----- Method: FFITestLoopThreeExternalSharedPool class>>one (in category 'definitions') ----- one + <ffiExternalPool> - <ffiExternalSharedPool> <ffiInheritsFrom: #three>! Item was changed: ----- Method: FFITestLoopThreeExternalSharedPool class>>three (in category 'definitions') ----- three + <ffiExternalPool> - <ffiExternalSharedPool> <ffiInheritsFrom: #two>! Item was changed: ----- Method: FFITestLoopThreeExternalSharedPool class>>two (in category 'definitions') ----- two + <ffiExternalPool> - <ffiExternalSharedPool> <ffiInheritsFrom: #one>! Item was changed: ----- Method: FFITestLoopTwoExternalSharedPool class>>one (in category 'definitions') ----- one + <ffiExternalPool> - <ffiExternalSharedPool> <ffiInheritsFrom: #two>! Item was changed: ----- Method: FFITestLoopTwoExternalSharedPool class>>two (in category 'definitions') ----- two + <ffiExternalPool> - <ffiExternalSharedPool> <ffiInheritsFrom: #one>! Item was changed: ----- Method: FFITestPlatformAliasingExternalSharedPool class>>five (in category 'definitions') ----- five + <ffiExternalPool> - <ffiExternalSharedPool> <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 32>! Item was changed: ----- Method: FFITestPlatformAliasingExternalSharedPool class>>four (in category 'definitions') ----- four + <ffiExternalPool> - <ffiExternalSharedPool> <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 16>! Item was changed: ----- Method: FFITestPlatformAliasingExternalSharedPool class>>one (in category 'definitions') ----- one + <ffiExternalPool>! - <ffiExternalSharedPool>! Item was changed: ----- Method: FFITestPlatformAliasingExternalSharedPool class>>three (in category 'definitions') ----- three + <ffiExternalPool> - <ffiExternalSharedPool> <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 16>! Item was changed: ----- Method: FFITestPlatformAliasingExternalSharedPool class>>two (in category 'definitions') ----- two + <ffiExternalPool>! - <ffiExternalSharedPool>! Item was changed: ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithName (in category 'definitions') ----- definitionWithName + <ffiExternalPool> - <ffiExternalSharedPool> <ffiPlatformName: 'testName'>! Item was changed: ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithNameOSVersion (in category 'definitions') ----- definitionWithNameOSVersion + <ffiExternalPool> - <ffiExternalSharedPool> <ffiPlatformName: 'testName' osVersion: 'testOSVersion'>! Item was changed: ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithNameOSVersionSubtype (in category 'definitions') ----- definitionWithNameOSVersionSubtype + <ffiExternalPool> - <ffiExternalSharedPool> <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype'>! Item was changed: ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithNameOSVersionSubtypeWordSize (in category 'definitions') ----- definitionWithNameOSVersionSubtypeWordSize + <ffiExternalPool> - <ffiExternalSharedPool> <ffiPlatformName: 'testName' osVersion: 'testOSVersion' subtype: 'testSubtype' wordSize: 16>! Item was changed: ----- Method: FFITestPlatformExternalSharedPool class>>definitionWithNameWordSize (in category 'definitions') ----- definitionWithNameWordSize + <ffiExternalPool> - <ffiExternalSharedPool> <ffiPlatformName: 'testName' wordSize: 16>! Item was added: + FFITestExternalSharedPool subclass: #FFITestPoolDefinitionExternalSharedPool + instanceVariableNames: '' + classVariableNames: 'One Two' + poolDictionaries: '' + category: 'FFI-PoolsTests'! Item was added: + ----- Method: FFITestPoolDefinitionExternalSharedPool class>>base (in category 'as yet unclassified') ----- + base + <ffiExternalPool> + <ffiPlatformName: 'base'> + + ^ self poolDefinition! Item was added: + ----- Method: FFITestPoolDefinitionExternalSharedPool class>>override (in category 'as yet unclassified') ----- + override + <ffiExternalPool> + <ffiInheritsFrom: #base> + + ^ self poolDefinition! Item was changed: ----- Method: FFITestTypesExternalSharedPool class>>types (in category 'definitions') ----- types + <ffiExternalPool> + <ffiVariable: #One type: 'long' convertTo: #Integer> + <ffiVariable: #Two type: 'float' convertTo: #Float> + <ffiVariable: #Three type: 'char*' convertTo: #String> + <ffiVariable: #Four type: 'char' convertTo: #Character> + <ffiVariable: #Five type: 'long' convertTo: #Boolean> + <ffiVariable: #Six type: 'longlong' convertTo: #LargePositiveInteger>! - <ffiExternalSharedPool> - <ffiVariable: #One type: #Integer> - <ffiVariable: #Two type: #Float> - <ffiVariable: #Three type: #String> - <ffiVariable: #Four type: #Character> - <ffiVariable: #Five type: #Boolean> - <ffiVariable: #Six type: #LargePositiveInteger>! Item was changed: ----- Method: FFITestUnknownReferenceExternalSharedPool class>>one (in category 'definitions') ----- one + <ffiExternalPool> - <ffiExternalSharedPool> <ffiInheritsFrom: #unknown>! |
Free forum by Nabble | Edit this page |