Hi Eliot, all,
testArrayResultWithString currently fails on Linux because FFITestLibrary class>>#ffiTestArrayResultWithString: returns garbage. I tried to reproduce this in the simulator but stumbled upon further issues there:
-
When simulating the StackVM:
| cos |
cos := StackInterpreterSimulator newWithOptions:
#(ObjectMemory Spur64BitMemoryManager
MULTIPLEBYTECODESETS true).
"cos initializeThreadSupport."
cos desiredNumStackPages: 8.
cos openOn: 'FreshTrunk-tests.image'.
cos openAsMorph.
[cos run] forkAt: 20
and evaluating (FFITestLibrary ffiTestArrayResultWithString: 'hi') fromCString in the nested image, the simulated VM fails with
Error
Error: Subscript is out of bounds: 5
Array(Object)>>error:
Receiver: {a CArrayAccessor on: #[104 105 0] . nil . nil . nil}
Arguments and temporary variables:
aString: 'Subscript is out of bounds: 5'
Receiver's instance variables:
{a CArrayAccessor on: #[104 105 0] . nil . nil . nil}
Array(Object)>>errorSubscriptBounds:
Receiver: {a CArrayAccessor on: #[104 105 0] . nil . nil . nil}
Arguments and temporary variables:
index: 5
Receiver's instance variables:
{a CArrayAccessor on: #[104 105 0] . nil . nil . nil}
Array(Object)>>at:
Receiver: {a CArrayAccessor on: #[104 105 0] . nil . nil . nil}
Arguments and temporary variables:
index: 5
Receiver's instance variables:
{a CArrayAccessor on: #[104 105 0] . nil . nil . nil}
CArrayAccessor>>at:
Receiver: a CArrayAccessor on: {a CArrayAccessor on: #[104 105 0] . nil . nil . nil}
Arguments and temporary variables:
index: 4
Receiver's instance variables:
object: {a CArrayAccessor on: #[104 105 0] . nil . nil . nil}
offset: 0
ThreadedX64SysVFFIPlugin>>ffiCalloutTo:SpecOnStack:in:
Receiver: a ThreadedX64SysVFFIPlugin
Arguments and temporary variables:
procAddr: 136377460022320
isSpecOnStack: false
calloutState: a ThreadedFFICalloutStateForX64SysV
vmHandle: a SignedCArray
atomicType: 0
floatRet: nil
intRet: nil
sddRet: nil
sdiRet: nil
sidRet: nil
siiRet: nil
returnStructByValue: false
registerType: nil
sRetPtr: nil
Receiver's instance variables:
interpreterProxy: a Spur64BitMMLESimulatorFor64Bits
moduleName: nil
translatedMethodCache: nil
nilObj: 7555328
ffiLogEnabled: false
externalFunctionInstSize: 3
ffiLastError: 0
allocationMap: nil
ThreadedX64SysVFFIPlugin(ThreadedFFIPlugin)>>ffiCall:ArgsOnStack:ArgArray:NumArgs:
Receiver: a ThreadedX64SysVFFIPlugin
Arguments and temporary variables:
externalFunction: 42942544
argsAreOnStack: true
argArrayOrNil: nil
nArgs: 1
flags: 0
argTypeArray: 42964864
address: 136377460022320
argType: 43113464
oop: 2823432
argSpec: 73893416
argClass: 7555328
err: 0
theCalloutState: nil
requiredStackSize: -1
stackSize: 16384
allocation: a CArrayAccessor on: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
result: nil
primNumArgs: 1
nTypes: 2
variadicArgsIndex: 2
i: 2
calloutState: a ThreadedFFICalloutStateForX64SysV
Receiver's instance variables:
interpreterProxy: a Spur64BitMMLESimulatorFor64Bits
moduleName: nil
translatedMethodCache: nil
nilObj: 7555328
ffiLogEnabled: false
externalFunctionInstSize: 3
ffiLastError: 0
allocationMap: nil
ThreadedX64SysVFFIPlugin(ThreadedFFIPlugin)>>primitiveCallout
Receiver: a ThreadedX64SysVFFIPlugin
Arguments and temporary variables:
meth: 42919808
Receiver's instance variables:
interpreterProxy: a Spur64BitMMLESimulatorFor64Bits
moduleName: nil
translatedMethodCache: nil
nilObj: 7555328
ffiLogEnabled: false
externalFunctionInstSize: 3
ffiLastError: 0
allocationMap: nil
StackInterpreterSimulatorLSB(StackInterpreterSimulator)>>callExternalPrimitive:
Receiver: a StackInterpreterSimulatorLSB
Arguments and temporary variables:
mapIndex: 168
entry: {a ThreadedX64SysVFFIPlugin . #primitiveCallout . [closure] in [] in StackInterpreterSimulatorLSB...etc...
Receiver's instance variables:
objectMemory: a Spur64BitMMLESimulatorFor64Bits
argumentCount: 1
primFailCode: 0
secondaryErrorCode: 0
exceptionPC: 0
ffiCalloutVMHandle: nil
profileMethod: nil
profileProcess: nil
profileSemaphore: nil
nextProfileTick: 0
deferProfileCheckForVNCS: true
sHEAFn: 63
ffiExceptionResponse: 0
eventTraceMask: 0
multipleBytecodeSetsActive: true
currentBytecode: 401
bytecodeSetSelector: 256
localFP: -33248
localIP: 3420642
localSP: -33296
stackLimit: -34816
stackPage: a CogStackPage@-32768 -32792<->-33320 trace 0
stackPages: an InterpreterStackPagesLSB
messageSelector: 42704496
newMethod: 42919808
method: 3420576
instructionPointer: 3420642
stackPointer: -33296
framePointer: -33248
localReturnValue: 3420576
localAbsentReceiver: nil
localAbsentReceiverOrZero: nil
extA: 0
extB: 0
numExtB: 0
primitiveFunctionPointer: #primitiveCallout
primitiveCalloutPointer: 168
methodCache: #(12853504 1088 21934032 275 9876776 3400 22096216 0 9488272 4582 ...etc...
nsMethodCache: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
atCache: #(16015424 288 10 0 0 0 0 0 2843496 62 26 0 0 0 0 0 2864432 3 21 0 0 0...etc...
lkupClassTag: 5288
lkupClass: 42715768
methodDictLinearSearchLimit: 8
highestRunnableProcessPriority: 40
classLinkedListClassTag: 1030
pcPreviousToFunction: #pcPreviousTo:inSqueakV3PlusClosuresOrSistaV1Method:
reenterInterpreter: ReenterInterpreter:
nextWakeupUsecs: 3954696082972671
nextPollUsecs: 3954696082547293
inIOProcessEvents: 0
interruptKeycode: 2094
interruptPending: false
savedWindowSize: 111674340
imageHeaderFlags: 1206
deferDisplayUpdates: false
cannotDeferDisplayUpdates: false
pendingFinalizationSignals: 0
extraVMMemory: 0
interpreterProxy: a StackInterpreterSimulatorLSB
showSurfaceFn: nil
primitiveTable: #(0 #primitiveAdd #primitiveSubtract #primitiveLessThan #primitiveGreaterThan...etc...
primitiveAccessorDepthTable: #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0...etc...
externalPrimitiveTable: a CArrayAccessor on: #(85 100 94 88 82 86 81 128 82 80 ...etc...
externalPrimitiveTableFirstFreeIndex: 37
overflowedPage: a CogStackPage@-32768 -32792<->-33320 trace 0
extraFramesToMoveOnOverflow: 7
globalSessionID: 985948923
numStackPages: 8
desiredNumStackPages: 0
desiredEdenBytes: 0
classNameIndex: 6
thisClassIndex: 5
metaclassNumSlots: 6
interruptCheckChain: nil
suppressHeartbeatFlag: false
breakSelector: nil
breakSelectorLength: -1152921504606846976
breakLookupClassTag: -1
longRunningPrimitiveCheckMethod: nil
longRunningPrimitiveCheckSemaphore: nil
longRunningPrimitiveStartUsecs: 0
longRunningPrimitiveStopUsecs: 0
longRunningPrimitiveGCUsecs: nil
longRunningPrimitiveCheckSequenceNumber: nil
longRunningPrimitiveSignalUndelivered: nil
tempOop: 0
tempOop2: 0
performWithArgumentsRecursionGuard: nil
metaAccessorDepth: -2
theUnknownShort: 0
the2ndUnknownShort: 0
maxExtSemTabSizeSet: false
lastMethodCacheProbeWrite: 820
gcSemaphoreIndex: 0
classByteArrayCompactIndex: 50
checkedPluginName: nil
primTraceLog: a CArrayAccessor on: #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
primTraceLogIndex: 0
traceLog: a CArrayAccessor on: #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
traceLogIndex: 0
traceSources: a CArrayAccessor on: #('?' 'm' 'i' 'enterCritical' 'exitCritical'...etc...
nativeSP: nil
nativeStackPointer: nil
lowcodeCalloutState: nil
shadowCallStackPointer: nil
displayBits: 147604344
displayWidth: 1136
displayHeight: 664
displayDepth: 32
oldImageBaseAddress: 103235740801248
statForceInterruptCheck: 15588
statStackOverflow: 5459
statStackPageDivorce: 21
statCheckForEvents: 15670
statProcessSwitch: 1840
statIOProcessEvents: 350
statPendingFinalizationSignals: 0
statIdleUsecs: 0
debugCallbackPath: 0
debugCallbackReturns: 0
debugCallbackInvokes: 0
printSends: false
transcript: a VMDeferredFlushTranscriptStream
parent: nil
bootstrapping: false
byteCount: 353206241
breakCount: nil
sendCount: 1128559
lookupCount: 67703
printReturns: false
printFrameRange: (0 to: 0)
printfConversions: an IdentityDictionary()
myBitBlt: true
displayForm: Form(1136x664x32)
fakeForm: Form(203x16x32)
filesOpen: nil
imageName: '/home/christoph/squeak/FreshTrunk-tests.image'
pluginList: {''->a StackInterpreterSimulatorLSB . 'SecurityPlugin'->a SecurityPlugin...etc...
mappedPluginEntries: an OrderedCollection({a StackInterpreterSimulatorLSB . #primitiveSubtractLargeIntegers...etc...
quitBlock: [closure] in StackInterpreterSimulatorLSB(StackInterpreterSimulator)...etc...
displayView: a SimulatorImageMorph(561236)
eventTransformer: a SimulatorEventTransformer
printFrameAtEachStep: false
printBytecodeAtEachStep: false
systemAttributes: a Dictionary(1->'/home/christoph/squeak/FreshTrunk-tests.imag...etc...
startMicroseconds: 3954696075464193
lastYieldMicroseconds: 3954696082528293
externalSemaphoreSignalRequests: #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 0 0...etc...
externalSemaphoreSignalResponses: #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53 0 ...etc...
extSemTabSize: 256
atEachStepBlock: nil
disableBooleanCheat: false
performFilters: nil
eventQueue: SharedQueue2 with 15 items
assertVEPAES: false
breakBlock: nil
inputSemaphoreIndex: 20
perMethodProfile: nil
previousMNUSelector: 12937224
...
-
When simulating in a CogVM instead:
| cos |
cos := CogVMSimulator newWithOptions: #(Cogit StackToRegisterMappingCogit"SimpleStackBasedCogit"
ObjectMemory Spur64BitCoMemoryManager
MULTIPLEBYTECODESETS true),
{#ISA. Cogit choose64BitISA}.
"cos initializeThreadSupport."
cos desiredNumStackPages: 8.
cos openOn: '/home/christoph/squeak/FreshTrunk-tests.image'.
cos openAsMorph.
[cos run] forkAt: 20
I get an imbalanced stack from during startup of the VM within ExternalObjectTable>externalObjectsArray:
Error
AssertionFailure: Expected 1 but was 2.
CogVMSimulatorLSB(Object)>>assert:description:
Receiver: a CogVMSimulatorLSB
Arguments and temporary variables:
aBlock: false
aStringOrBlock: [closure] in CogVMSimulatorLSB(Object)>>assert:equals:description:...etc...
Receiver's instance variables:
objectMemory: a Spur64BitMMLECoSimulatorFor64Bits
argumentCount: 0
primFailCode: 0
secondaryErrorCode: 0
exceptionPC: 0
ffiCalloutVMHandle: nil
profileMethod: nil
profileProcess: nil
profileSemaphore: nil
nextProfileTick: 0
deferProfileCheckForVNCS: true
sHEAFn: 80
ffiExceptionResponse: 0
eventTraceMask: 0
multipleBytecodeSetsActive: true
currentBytecode: 384
bytecodeSetSelector: 256
localFP: nil
localIP: 23464979
localSP: 1442088
stackLimit: 18446744073709551615
stackPage: a CogStackPageSurrogate64 160400@ 1467480/166458
stackPages: a CoInterpreterStackPagesLSB
messageSelector: 11043680
newMethod: 27349816
method: 23464904
instructionPointer: 5848
stackPointer: 1442024
framePointer: 1442072
localReturnValue: 30168424
localAbsentReceiver: nil
localAbsentReceiverOrZero: nil
extA: 0
extB: 0
numExtB: 0
primitiveFunctionPointer: 0
primitiveCalloutPointer: -1
methodCache: a CMethodCacheAccessor on: a DoubleWordArray(14757395258967641292 ...etc...
nsMethodCache: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
atCache: nil
lkupClassTag: 1033
lkupClass: 14019224
methodDictLinearSearchLimit: 8
highestRunnableProcessPriority: 0
classLinkedListClassTag: 1030
pcPreviousToFunction: #pcPreviousTo:inSqueakV3PlusClosuresOrSistaV1Method:
reenterInterpreter: ReenterInterpreter:
nextWakeupUsecs: 0
nextPollUsecs: 3954696302899454
inIOProcessEvents: 0
interruptKeycode: 2094
interruptPending: false
savedWindowSize: 111674340
imageHeaderFlags: 1206
deferDisplayUpdates: false
cannotDeferDisplayUpdates: false
pendingFinalizationSignals: 0
extraVMMemory: 0
interpreterProxy: a CogVMSimulatorLSB
showSurfaceFn: nil
primitiveTable: #(0 #primitiveAdd #primitiveSubtract #primitiveLessThan #primitiveGreaterThan...etc...
primitiveAccessorDepthTable: nil
externalPrimitiveTable: a CArrayAccessor on: #(102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
externalPrimitiveTableFirstFreeIndex: 1
overflowedPage: nil
extraFramesToMoveOnOverflow: 0
globalSessionID: 1371705228
numStackPages: 8
desiredNumStackPages: 0
desiredEdenBytes: 0
classNameIndex: 6
thisClassIndex: 5
metaclassNumSlots: 6
interruptCheckChain: nil
suppressHeartbeatFlag: false
breakSelector: nil
breakSelectorLength: -1152921504606846976
breakLookupClassTag: -1
longRunningPrimitiveCheckMethod: nil
longRunningPrimitiveCheckSemaphore: nil
longRunningPrimitiveStartUsecs: 0
longRunningPrimitiveStopUsecs: 0
longRunningPrimitiveGCUsecs: nil
longRunningPrimitiveCheckSequenceNumber: nil
longRunningPrimitiveSignalUndelivered: nil
tempOop: 0
tempOop2: 0
performWithArgumentsRecursionGuard: nil
metaAccessorDepth: -2
theUnknownShort: 0
the2ndUnknownShort: 0
maxExtSemTabSizeSet: false
lastMethodCacheProbeWrite: 3708
gcSemaphoreIndex: 0
classByteArrayCompactIndex: 50
checkedPluginName: nil
primTraceLog: a CArrayOfLongsAccessor on: a DoubleWordArray(1475739525896764129...etc...
primTraceLogIndex: 23
traceLog: a CArrayAccessor on: #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
traceLogIndex: 0
traceSources: a CArrayAccessor on: #('?' 'm' 'i' 'enterCritical' 'exitCritical'...etc...
nativeSP: nil
nativeStackPointer: nil
lowcodeCalloutState: nil
shadowCallStackPointer: nil
displayBits: 0
displayWidth: 0
displayHeight: 0
displayDepth: 0
oldImageBaseAddress: 103235740801248
statForceInterruptCheck: 41
statStackOverflow: 0
statStackPageDivorce: 0
statCheckForEvents: 0
statProcessSwitch: 0
statIOProcessEvents: 0
statPendingFinalizationSignals: 0
statIdleUsecs: 0
debugCallbackPath: 0
debugCallbackReturns: 0
debugCallbackInvokes: 0
printSends: false
transcript: a VMDeferredFlushTranscriptStream
cogit: a StackToRegisterMappingCogit
cogMethodZone: a CogMethodZone
gcMode: nil
cogCodeSize: 1433600
desiredCogCodeSize: 0
heapBase: 1506952
primitiveMetadataTable: #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -256 1 1 1 1 1 1 ...etc...
lastCoggableInterpretedBlockMethod: 34641784
deferSmash: false
deferredSmash: false
cogCompiledCodeCompactionCalledFor: false
statCodeCompactionCount: 0
statCodeCompactionUsecs: 0
lastUncoggableInterpretedBlockMethod: nil
maxLiteralCountForCompile: 60
minBackwardJumpCountForCompile: 40
CFramePointer: 1506928
CStackPointer: 1506912
CReturnAddress: #enterSmalltalkExecutiveImplementation
primTracePluginName: nil
primCalloutIsExternal: nil
cogThreadManager: nil
checkThreadActivation: false
maxWaitingPriority: Atomic: nil
foreignCallbackPriority: 0
deferThreadSwitch: false
disowningVMThread: nil
disownCount: 0
activeProcessAffined: nil
relinquishing: false
parent: nil
enableCog: true
byteCount: 400
lastPollCount: 0
lastExtPC: 37899840
sendCount: 79
lookupCount: 72
printFrameRange: (1442024 to: 1442088)
printfConversions: an IdentityDictionary(' method: %WP\t'->' method: ...etc...
myBitBlt: true
displayForm: Form(203x16x32)
fakeForm: Form(203x16x32)
imageName: '/home/christoph/squeak/FreshTrunk-tests.image'
pluginList: {''->a CogVMSimulatorLSB . 'SecurityPlugin'->a SecurityPlugin . 'Mi...etc...
mappedPluginEntries: an OrderedCollection({a CogVMSimulatorLSB . #primitiveGetOwnerLog...etc...
quitBlock: [closure] in CogVMSimulatorLSB(CogVMSimulator)>>run
displayView: a SimulatorImageMorph(3541498)
eventTransformer: a SimulatorEventTransformer
printFrameAtEachStep: false
printBytecodeAtEachStep: false
systemAttributes: a Dictionary(1->'/home/christoph/squeak/FreshTrunk-tests.imag...etc...
uniqueIndices: a Dictionary(#primitiveNewWithArg->65538 #primitiveSpecialObjectsOop...etc...
uniqueIndex: 65539
breakCount: nil
atEachStepBlock: nil
startMicroseconds: 3954696302899450
lastYieldMicroseconds: 3954696302899450
externalSemaphoreSignalRequests: #()
externalSemaphoreSignalResponses: #()
extSemTabSize: 256
debugStackDepthDictionary: a Dictionary(27349816->a CArrayAccessor on: #(nil ni...etc...
performFilters: nil
eventQueue: SharedQueue2 with 41 items
effectiveCogCodeSize: 1433600
expectedSends: nil
expecting: nil
inputSemaphoreIndex: nil
zeroNextProfileTickCount: 0
perMethodProfile: nil
--- The full stack ---
CogVMSimulatorLSB(Object)>>assert:description:
CogVMSimulatorLSB(Object)>>assert:equals:description:
CogVMSimulatorLSB(Object)>>assert:equals:
CogVMSimulatorLSB(CogVMSimulator)>>maybeCheckStackDepth:sp:pc:
CogVMSimulatorLSB(CogVMSimulator)>>ceSend:super:to:numArgs:
MessageSend>>valueWithArguments:
[] in StackToRegisterMappingCogit(Cogit)>>handleCallOrJumpSimulationTrap:
...etc...
Stack
16r160118 M OrderedCollection>reset 16r3700D8: a(n) OrderedCollection
16r160170 I ExternalObjectTable>externalObjectsArray: 16r1CC5568: a(n) ExternalObjectTable
16r1601C0 I ExternalObjectTable>synchronizeExternalObjectsArrayAndForceUpdate: 16r1CC5568: a(n) ExternalObjectTable
16r160208 I [] in ExternalObjectTable>clearExternalObjects 16r1CC5568: a(n) ExternalObjectTable
16r160258 I FullBlockClosure(BlockClosure)>ensure: 16r36FFC0: a(n) FullBlockClosure
16r1602A0 I Semaphore>critical: 16r1E55520: a(n) Semaphore
16r1602E8 I ExternalObjectTable>clearExternalObjects 16r1CC5568: a(n) ExternalObjectTable
16r160328 I SmalltalkImage>clearExternalObjects 16rC43FA8: a(n) SmalltalkImage
16r160368 I SmalltalkImage>startUpPostSnapshot: 16rC43FA8: a(n) SmalltalkImage
16r1603C0 I SmalltalkImage>snapshot:andQuit:withExitCode:embedded: 16rC43FA8: a(n) SmalltalkImage
16r8DFE4D8 s SmalltalkImage>snapshot:andQuit:embedded: 16rC43FA8: a(n) SmalltalkImage
16r8DFEF78 s SmalltalkImage>snapshot:andQuit: 16rC43FA8: a(n) SmalltalkImage
16r8DFFB28 s SmalltalkImage>saveSession 16rC43FA8: a(n) SmalltalkImage
16r8E00AF8 s TheWorldMainDockingBar>saveImage 16rBD1350: a(n) TheWorldMainDockingBar
16r8E01F70 s [] in MenuItemMorph>invokeWithEvent: 16r78541A0: a(n) MenuItemMorph
16r8E04840 s FullBlockClosure(BlockClosure)>ensure: 16r8E048F8: a(n) FullBlockClosure
16r8E05930 s CursorWithMask(Cursor)>showWhile: 16rF70AF8: a(n) CursorWithMask
16r8E05A18 s MenuItemMorph>invokeWithEvent: 16r78541A0: a(n) MenuItemMorph
16r8E06868 s DockingBarMenuMorph>handleCRStroke: 16r784B840: a(n) DockingBarMenuMorph
16r8E069A8 s [] in DockingBarMenuMorph(MenuMorph)>keyStroke: 16r784B840: a(n) DockingBarMenuMorph
16r8E06A80 s [] in Array(Collection)>detect:ifFound:ifNone: 16r135DBE8: a(n) Array
16r8E06BC0 s Array(SequenceableCollection)>do: 16r135DBE8: a(n) Array
16r8E06DA0 s Array(Collection)>detect:ifFound:ifNone: 16r135DBE8: a(n) Array
16r8E06E58 s Array(Collection)>detect:ifNone: 16r135DBE8: a(n) Array
16r8E06CD8 s DockingBarMenuMorph(MenuMorph)>keyStroke: 16r784B840: a(n) DockingBarMenuMorph
16r8E06F10 s DockingBarMenuMorph(Morph)>handleKeystroke: 16r784B840: a(n) DockingBarMenuMorph
16r8E06FF8 s KeyboardEvent>sentTo: 16r8E04928: a(n) KeyboardEvent
16r8E070B0 s DockingBarMenuMorph(Morph)>handleEvent: 16r784B840: a(n) DockingBarMenuMorph
16r8E07168 s DockingBarMenuMorph(Morph)>handleFocusEvent: 16r784B840: a(n) DockingBarMenuMorph
16r8E07220 s MorphicEventDispatcher>doHandlingForFocusEvent:with: 16r8E07390: a(n) MorphicEventDispatcher
16r8E072D8 s MorphicEventDispatcher>dispatchFocusEventFully:with: 16r8E07390: a(n) MorphicEventDispatcher
16r8E073A8 s DockingBarMenuMorph(MenuMorph)>processFocusEvent:using: 16r784B840: a(n) DockingBarMenuMorph
16r8E07460 s DockingBarMenuMorph(Morph)>processFocusEvent: 16r784B840: a(n) DockingBarMenuMorph
16r8E07518 s [] in HandMorph>sendFocusEvent:to:clear: 16r10FFB90: a(n) HandMorph
16r8E075D0 s [] in ActiveEventVariable class(DynamicVariable class)>value:during: 16r10CB228: a(n) ActiveEventVariable
16r8E076D8 s FullBlockClosure(BlockClosure)>ensure: 16r8E07790: a(n) FullBlockClosure
16r8E07888 s ActiveEventVariable class(DynamicVariable class)>value:during: 16r10CB228: a(n) ActiveEventVariable
16r8E07A78 s [] in ActiveEventVariable class>value:during: 16r10CB228: a(n) ActiveEventVariable
16r8E07CF0 s FullBlockClosure(BlockClosure)>ensure: 16r8E07DA8: a(n) FullBlockClosure
16r8E07FD0 s ActiveEventVariable class>value:during: 16r10CB228: a(n) ActiveEventVariable
16r8E08338 s KeyboardEvent(MorphicEvent)>becomeActiveDuring: 16r8E319C0: a(n) KeyboardEvent
16r8E077D0 s [] in HandMorph>sendFocusEvent:to:clear: 16r10FFB90: a(n) HandMorph
16r8E07980 s [] in ActiveHandVariable class(DynamicVariable class)>value:during: 16r10CB2C8: a(n) ActiveHandVariable
16r8E07B40 s FullBlockClosure(BlockClosure)>ensure: 16r8E07BF8: a(n) FullBlockClosure
16r8E07DE0 s ActiveHandVariable class(DynamicVariable class)>value:during: 16r10CB2C8: a(n) ActiveHandVariable
16r8E080C0 s [] in ActiveHandVariable class>value:during: 16r10CB2C8: a(n) ActiveHandVariable
16r8E083F0 s FullBlockClosure(BlockClosure)>ensure: 16r8E084A8: a(n) FullBlockClosure
16r8E086B8 s ActiveHandVariable class>value:during: 16r10CB2C8: a(n) ActiveHandVariable
16r8E08938 s HandMorph>becomeActiveDuring: 16r10FFB90: a(n) HandMorph
16r8E07C38 s [] in HandMorph>sendFocusEvent:to:clear: 16r10FFB90: a(n) HandMorph
16r8E07ED8 s [] in ActiveWorldVariable class(DynamicVariable class)>value:during: 16r10CB368: a(n) ActiveWorldVariable
16r8E08188 s FullBlockClosure(BlockClosure)>ensure: 16r8E08240: a(n) FullBlockClosure
16r8E084E0 s ActiveWorldVariable class(DynamicVariable class)>value:during: 16r10CB368: a(n) ActiveWorldVariable
16r8E087A8 s [] in ActiveWorldVariable class>value:during: 16r10CB368: a(n) ActiveWorldVariable
16r8E089F0 s FullBlockClosure(BlockClosure)>ensure: 16r8E08AA8: a(n) FullBlockClosure
16r8E08B98 s ActiveWorldVariable class>value:during: 16r10CB368: a(n) ActiveWorldVariable
16r8E08D40 s PasteUpMorph>becomeActiveDuring: 16r10D6E08: a(n) PasteUpMorph
16r8E08280 s HandMorph>sendFocusEvent:to:clear: 16r10FFB90: a(n) HandMorph
16r8E085D8 s HandMorph>sendEvent:focus:clear: 16r10FFB90: a(n) HandMorph
16r8E08870 s HandMorph>sendKeyboardEvent: 16r10FFB90: a(n) HandMorph
16r8E08AE0 s HandMorph>handleEvent: 16r10FFB90: a(n) HandMorph
16r8E08C88 s HandMorph>processEvents 16r10FFB90: a(n) HandMorph
16r8E08DF8 s [] in WorldState>doOneCycleNowFor: 16r10CF1C0: a(n) WorldState
16r8E08EF8 s [] in ActiveHandVariable class(DynamicVariable class)>value:during: 16r10CB2C8: a(n) ActiveHandVariable
16r8E08FF8 s FullBlockClosure(BlockClosure)>ensure: 16r8E090B0: a(n) FullBlockClosure
16r8E091A8 s ActiveHandVariable class(DynamicVariable class)>value:during: 16r10CB2C8: a(n) ActiveHandVariable
16r8E09388 s [] in ActiveHandVariable class>value:during: 16r10CB2C8: a(n) ActiveHandVariable
16r8E095C0 s FullBlockClosure(BlockClosure)>ensure: 16r8E09678: a(n) FullBlockClosure
16r8E09768 s ActiveHandVariable class>value:during: 16r10CB2C8: a(n) ActiveHandVariable
16r8E09910 s HandMorph>becomeActiveDuring: 16r10FFB90: a(n) HandMorph
16r8E090F0 s [] in WorldState>doOneCycleNowFor: 16r10CF1C0: a(n) WorldState
16r8E092A0 s Array(SequenceableCollection)>do: 16r8D3180: a(n) Array
16r8E09450 s WorldState>handsDo: 16r10CF1C0: a(n) WorldState
16r8E09508 s WorldState>doOneCycleNowFor: 16r10CF1C0: a(n) WorldState
16r8E096B0 s WorldState>doOneCycleFor: 16r10CF1C0: a(n) WorldState
16r8E09858 s PasteUpMorph>doOneCycle 16r10D6E08: a(n) PasteUpMorph
16r8C176E8 s [] in MorphicProject>spawnNewProcess 16r1F3EEF0: a(n) MorphicProject
16r8C177C8 s [] in FullBlockClosure(BlockClosure)>newProcess 16r8C177A0: a(n) FullBlockClosure
16r160118 M OrderedCollection>reset 16r3700D8: a(n) OrderedCollection
16r160128: rcvr/clsr: 16r3700D8 =a(n) OrderedCollection
16r160120: caller ip: 16r16D8=5848 (ceReturnToInterpreterTrampoline)ceReturnToInterpreter
FP: 16r160118: saved fp: 16r160170=1442160
16r160110: method: 16r1FD0 16r1A15338: a(n) CompiledMethod
16r160110: mcfrm flags: 0x0 numArgs: 0 noContext notBlock
16r160108: context: 16r8AEE08 =nil
16r160100: receiver: 16r3700D8 =a(n) OrderedCollection
16r1600F8: stck: 16r3700D8 =a(n) OrderedCollection
16r1600F0: stck: 16r9 =1(16r1)
SP: 16r1600E8: frame ip: 16r2057=8279 (OrderedCollection>>reset@87) 135
If you have any ideas how to further investigate or fix these issues, please let me know.
Hi Eliot, all,
testArrayResultWithStringcurrently fails on Linux becauseFFITestLibrary class>>#ffiTestArrayResultWithString:returns garbage. I tried to reproduce this in the simulator but stumbled upon further issues there:When simulating the StackVM:
and evaluating
(FFITestLibrary ffiTestArrayResultWithString: 'hi') fromCStringin the nested image, the simulated VM fails withError
When simulating in a CogVM instead:
I get an imbalanced stack from during startup of the VM within
ExternalObjectTable>externalObjectsArray:Error
Stack
If you have any ideas how to further investigate or fix these issues, please let me know.