hpi-swa / trufflesqueak

A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
MIT License
286 stars 14 forks source link

Crash when triggering polyglot delay (scheduler could not find a runnable process) #166

Open LinqLover opened 2 years ago

LinqLover commented 2 years ago

The following expression crashes the GraalVM for me:

(Polyglot eval: #python string: 'lambda x: x.wait()') value: 1 second
Stack trace
(I cut away the remaining trace)
== Truffle stack trace ===========================================================
MorphicProject>>recursiveError: #(a MorphicProject @4619cb14, 'PolyglotError: de.hpi.swa.truf...' (string length: 128)) [marker: FrameMarker@27107a97, context: CTX MorphicProject>>recursiveError: @eb1e868, sender: FrameMarker@71a7cf7c]
StandardToolSet class>>handleRecursiveError: #(PolyglotToolSet, 'PolyglotError: de.hpi.swa.truf...' (string length: 128)) [marker: FrameMarker@71a7cf7c, context: null, sender: FrameMarker@7f49df25]
ToolSet class>>handleRecursiveError: #(ToolSet, 'PolyglotError: de.hpi.swa.truf...' (string length: 128)) [marker: FrameMarker@7f49df25, context: null, sender: FrameMarker@5b29d699]
Debugger class>>openOn:context:label:contents:fullView: #(Debugger, a Process @3d42b756, CTX Polyglot class>>primitiveEval:string:names:arguments: @5a5a973c, 'PolyglotError: de.hpi.swa.truf...' (string length: 128), nil, false) [marker: FrameMarker@5b29d699, context: null, sender: CTX StandardToolSet class>>debugProcess:context:label:contents:fullView: @15c96f24]
StandardToolSet class>>debugProcess:context:label:contents:fullView: #(PolyglotToolSet, a Process @3d42b756, CTX Polyglot class>>primitiveEval:string:names:arguments: @5a5a973c, 'PolyglotError: de.hpi.swa.truf...' (string length: 128), nil, false) [marker: FrameMarker@24482a4f, context: CTX StandardToolSet class>>debugProcess:context:label:contents:fullView: @15c96f24, sender: CTX ToolSet class>>debugProcess:context:label:contents:fullView: @3140ad41]
ToolSet class>>debugProcess:context:label:contents:fullView: #(ToolSet, a Process @3d42b756, CTX Polyglot class>>primitiveEval:string:names:arguments: @5a5a973c, 'PolyglotError: de.hpi.swa.truf...' (string length: 128), nil, false) [marker: FrameMarker@3f2d2f22, context: CTX ToolSet class>>debugProcess:context:label:contents:fullView: @3140ad41, sender: CTX Process>>debug:title:full:contents: @61c3d7ac]
Process>>debug:title:full:contents: #(a Process @3d42b756, CTX Polyglot class>>primitiveEval:string:names:arguments: @5a5a973c, 'PolyglotError: de.hpi.swa.truf...' (string length: 128), false, nil) [marker: FrameMarker@4bc9389, context: CTX Process>>debug:title:full:contents: @61c3d7ac, sender: CTX Process>>debug:title:full: @30221cfa]
Process>>debug:title:full: #(a Process @3d42b756, CTX Polyglot class>>primitiveEval:string:names:arguments: @5a5a973c, 'PolyglotError: de.hpi.swa.truf...' (string length: 128), false) [marker: null, context: CTX Process>>debug:title:full: @30221cfa, sender: CTX Process>>debug:title: @662061e3]
Process>>debug:title: #(a Process @3d42b756, CTX Polyglot class>>primitiveEval:string:names:arguments: @5a5a973c, 'PolyglotError: de.hpi.swa.truf...' (string length: 128)) [marker: null, context: CTX Process>>debug:title: @662061e3, sender: CTX StandardToolSet class>>handleError: @1921b43c]
StandardToolSet class>>handleError: #(PolyglotToolSet, a PolyglotError @79e15c4a) [marker: FrameMarker@59845a40, context: CTX StandardToolSet class>>handleError: @1921b43c, sender: CTX ToolSet class>>handleError: @3c4e17ea]
ToolSet class>>handleError: #(ToolSet, a PolyglotError @79e15c4a) [marker: FrameMarker@285ac40b, context: CTX ToolSet class>>handleError: @3c4e17ea, sender: CTX UnhandledError>>defaultAction @5b2ade46]
UnhandledError>>defaultAction #(a UnhandledError @2087c939) [marker: FrameMarker@6c3a7b84, context: CTX UnhandledError>>defaultAction @5b2ade46, sender: CTX UndefinedObject>>handleSignal: @123e9094]
UndefinedObject>>handleSignal: #(nil, a UnhandledError @2087c939) [marker: null, context: CTX UndefinedObject>>handleSignal: @123e9094, sender: CTX Exception>>signal @1f6ba47b]
Exception>>signal #(a UnhandledError @2087c939) [marker: null, context: CTX Exception>>signal @1f6ba47b, sender: CTX UnhandledError class>>signalForException: @1bb78ae]
UnhandledError class>>signalForException: #(UnhandledError, a PolyglotError @79e15c4a) [marker: FrameMarker@3ee2d546, context: CTX UnhandledError class>>signalForException: @1bb78ae, sender: CTX Error>>defaultAction @58be583e]
Error>>defaultAction #(a PolyglotError @79e15c4a) [marker: null, context: CTX Error>>defaultAction @58be583e, sender: CTX PolyglotError>>defaultAction @1a34772e]
PolyglotError>>defaultAction #(a PolyglotError @79e15c4a) [marker: FrameMarker@401002ce, context: CTX PolyglotError>>defaultAction @1a34772e, sender: CTX UndefinedObject>>handleSignal: @6870a76f]
UndefinedObject>>handleSignal: #(nil, a PolyglotError @79e15c4a) [marker: null, context: CTX UndefinedObject>>handleSignal: @6870a76f, sender: CTX Exception>>signal @42257df7]
Exception>>signal #(a PolyglotError @79e15c4a) [marker: null, context: CTX Exception>>signal @42257df7, sender: CTX PolyglotError>>signal: @7b11ff9a]
PolyglotError>>signal: #(a PolyglotError @79e15c4a, de.hpi.swa.trufflesqueak.exceptions.SqueakExceptions$SqueakException: scheduler could not find a runnable process) [marker: FrameMarker@3bd79444, context: CTX PolyglotError>>signal: @7b11ff9a, sender: CTX PolyglotError class>>signal @5671078e]
PolyglotError class>>signal #(PolyglotError) [marker: FrameMarker@3fd21272, context: CTX PolyglotError class>>signal @5671078e, sender: CTX Polyglot class>>primitiveEval:string:names:arguments: @5a5a973c]
Polyglot class>>primitiveEval:string:names:arguments: #(Polyglot, 'smalltalk', '(Polyglot eval: #python string...' (string length: 69), a Array @c4455b4, a Array @747f0f34) [marker: null, context: CTX Polyglot class>>primitiveEval:string:names:arguments: @5a5a973c, sender: FrameMarker@556ae220]
Polyglot class>>eval:string:names:arguments: #(Polyglot, 'smalltalk', '(Polyglot eval: #python string...' (string length: 69), a Array @c4455b4, a Array @747f0f34) [marker: FrameMarker@556ae220, context: null, sender: FrameMarker@2689b752]
Polyglot class>>evalWithBindings:string: #(Polyglot, 'smalltalk', '(Polyglot eval: #python string...' (string length: 69)) [marker: FrameMarker@2689b752, context: null, sender: FrameMarker@84eafc2]
PolyglotWorkspace>>evaluateExpression: #(a PolyglotWorkspace @4440750, a Text @63d9e1a) [marker: FrameMarker@84eafc2, context: null, sender: CTX TextEditor>>evaluateSelectionAndDo: @6d658aa8]
TextEditor>>evaluateSelectionAndDo: #(a SmalltalkEditor @10280879, a FullBlockClosure @3472f3ab (with 1 args and 0 copied values in CTX TextEditor>>evaluateSelection @5e557671)) [marker: null, context: CTX TextEditor>>evaluateSelectionAndDo: @6d658aa8, sender: CTX TextEditor>>evaluateSelection @5e557671]
TextEditor>>evaluateSelection #(a SmalltalkEditor @10280879) [marker: null, context: CTX TextEditor>>evaluateSelection @5e557671, sender: FrameMarker@1f2497d9]
TextEditor>>doIt #(a SmalltalkEditor @10280879) [marker: FrameMarker@1f2497d9, context: null, sender: FrameMarker@4f1f2f84]
TextEditor>>doIt: #(a SmalltalkEditor @10280879, a KeyboardEvent @6c537267) [marker: FrameMarker@4f1f2f84, context: null, sender: FrameMarker@19c06762]
TextEditor>>dispatchOnKeyboardEvent: #(a SmalltalkEditor @10280879, a KeyboardEvent @6c537267) [marker: FrameMarker@19c06762, context: null, sender: FrameMarker@22e1a1dc]
TextEditor>>keyStroke: #(a SmalltalkEditor @10280879, a KeyboardEvent @6c537267) [marker: FrameMarker@22e1a1dc, context: null, sender: FrameMarker@14b4d90b]
[] in [] in [] in TextMorph>>keyStroke: #(a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@14b4d90b, context: null, sender: FrameMarker@638341b0]
TextMorph>>handleInteraction:fromEvent: #(a TextMorphForEditView @6482eef, a FullBlockClosure @7962c1d5 (with 0 args and 1 copied values in CTX [] in [] in TextMorph>>keyStroke: @56226064), a KeyboardEvent @6c537267) [marker: FrameMarker@638341b0, context: null, sender: FrameMarker@646c872a]
TextMorphForEditView>>handleInteraction:fromEvent: #(a TextMorphForEditView @6482eef, a FullBlockClosure @7962c1d5 (with 0 args and 1 copied values in CTX [] in [] in TextMorph>>keyStroke: @56226064), a KeyboardEvent @6c537267) [marker: FrameMarker@646c872a, context: null, sender: CTX [] in [] in TextMorph>>keyStroke: @56226064]
[] in [] in TextMorph>>keyStroke: #(a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: null, context: CTX [] in [] in TextMorph>>keyStroke: @56226064, sender: FrameMarker@1d9bd4d6]
StandardToolSet class>>codeCompletionAround:textMorph:keyStroke: #(PolyglotToolSet, a FullBlockClosure @7298c2d9 (with 0 args and 1 copied values in CTX TextMorph>>keyStroke: @377cbdae), a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@1d9bd4d6, context: null, sender: FrameMarker@37a939bc]
ToolSet class>>codeCompletionAround:textMorph:keyStroke: #(ToolSet, a FullBlockClosure @7298c2d9 (with 0 args and 1 copied values in CTX TextMorph>>keyStroke: @377cbdae), a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@37a939bc, context: null, sender: CTX TextMorph>>keyStroke: @377cbdae]
TextMorph>>keyStroke: #(a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@74d776fb, context: CTX TextMorph>>keyStroke: @377cbdae, sender: FrameMarker@406decb2]
TextMorphForEditView>>keyStroke: #(a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@406decb2, context: null, sender: FrameMarker@122ea8dc]
Morph>>handleKeystroke: #(a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@122ea8dc, context: null, sender: FrameMarker@6cb417fc]
TextMorph>>handleKeystroke: #(a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@6cb417fc, context: null, sender: FrameMarker@239bc43f]
KeyboardEvent>>sentTo: #(a KeyboardEvent @6c537267, a TextMorphForEditView @6482eef) [marker: FrameMarker@239bc43f, context: null, sender: FrameMarker@c3ca482]
Morph>>handleEvent: #(a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@c3ca482, context: null, sender: FrameMarker@6b338591]
Morph>>handleFocusEvent: #(a TextMorphForEditView @6482eef, a KeyboardEvent @6c537267) [marker: FrameMarker@6b338591, context: null, sender: FrameMarker@277474fc]
MorphicEventDispatcher>>doHandlingForFocusEvent:with: #(a MorphicEventDispatcher @5ab3f611, a KeyboardEvent @33425171, a TextMorphForEditView @6482eef) [marker: FrameMarker@277474fc, context: null, sender: FrameMarker@44aa5585]
MorphicEventDispatcher>>dispatchFocusEvent:with: #(a MorphicEventDispatcher @5ab3f611, a KeyboardEvent @33425171, a TextMorphForEditView @6482eef) [marker: FrameMarker@44aa5585, context: null, sender: FrameMarker@40fd1a78]
Morph>>processFocusEvent:using: #(a TextMorphForEditView @6482eef, a KeyboardEvent @33425171, a MorphicEventDispatcher @5ab3f611) [marker: FrameMarker@40fd1a78, context: null, sender: FrameMarker@53b7f08]
Morph>>processFocusEvent: #(a TextMorphForEditView @6482eef, a KeyboardEvent @33425171) [marker: FrameMarker@53b7f08, context: null, sender: FrameMarker@24536f07]
[] in [] in [] in [] in HandMorph>>sendFocusEvent:to:clear: #(a HandMorph @3892b429, a KeyboardEvent @33425171, a TextMorphForEditView @6482eef, a Array @32430075) [marker: FrameMarker@24536f07, context: null, sender: FrameMarker@1a45e29f]
[] in [] in DynamicVariable class>>value:during: #(ActiveEventVariable, a KeyboardEvent @33425171, a FullBlockClosure @44580de0 (with 0 args and 3 copied values in CTX [] in [] in [] in HandMorph>>sendFocusEvent:to:clear: @7b4c793b), a Process @51a69e8f) [marker: FrameMarker@1a45e29f, context: null, sender: FrameMarker@6442cf3e]
BlockClosure>>ensure: #(a FullBlockClosure @60f1f95b (with 0 args and 3 copied values in CTX DynamicVariable class>>value:during: @786cc1df), a FullBlockClosure @1ddb6abb (with 0 args and 3 copied values in CTX DynamicVariable class>>value:during: @786cc1df)) [marker: FrameMarker@6442cf3e, context: null, sender: CTX DynamicVariable class>>value:during: @786cc1df]
DynamicVariable class>>value:during: #(ActiveEventVariable, a KeyboardEvent @33425171, a FullBlockClosure @44580de0 (with 0 args and 3 copied values in CTX [] in [] in [] in HandMorph>>sendFocusEvent:to:clear: @7b4c793b)) [marker: FrameMarker@6f926d01, context: CTX DynamicVariable class>>value:during: @786cc1df, sender: FrameMarker@c67a89]
[] in [] in ActiveEventVariable class>>value:during: #(ActiveEventVariable, a KeyboardEvent @33425171, a FullBlockClosure @44580de0 (with 0 args and 3 copied values in CTX [] in [] in [] in HandMorph>>sendFocusEvent:to:clear: @7b4c793b)) [marker: FrameMarker@c67a89, context: null, sender: FrameMarker@1e3a2177]
BlockClosure>>ensure: #(a FullBlockClosure @58720eb9 (with 0 args and 2 copied values in CTX ActiveEventVariable class>>value:during: @24749ad3), a FullBlockClosure @1755aee6 (with 0 args and 2 copied values in CTX ActiveEventVariable class>>value:during: @24749ad3)) [marker: FrameMarker@1e3a2177, context: null, sender: CTX ActiveEventVariable class>>value:during: @24749ad3]
ActiveEventVariable class>>value:during: #(ActiveEventVariable, a KeyboardEvent @33425171, a FullBlockClosure @44580de0 (with 0 args and 3 copied values in CTX [] in [] in [] in HandMorph>>sendFocusEvent:to:clear: @7b4c793b)) [marker: FrameMarker@582b14e2, context: CTX ActiveEventVariable class>>value:during: @24749ad3, sender: FrameMarker@10e4ce98]
MorphicEvent>>becomeActiveDuring: #(a KeyboardEvent @33425171, a FullBlockClosure @44580de0 (with 0 args and 3 copied values in CTX [] in [] in [] in HandMorph>>sendFocusEvent:to:clear: @7b4c793b)) [marker: FrameMarker@10e4ce98, context: null, sender: CTX [] in [] in [] in HandMorph>>sendFocusEvent:to:clear: @7b4c793b]
[] in [] in [] in HandMorph>>sendFocusEvent:to:clear: #(a HandMorph @3892b429, a KeyboardEvent @33425171, a TextMorphForEditView @6482eef, a Array @32430075) [marker: null, context: CTX [] in [] in [] in HandMorph>>sendFocusEvent:to:clear: @7b4c793b, sender: FrameMarker@10466c55]
[] in [] in DynamicVariable class>>value:during: #(ActiveHandVariable, a HandMorph @3892b429, a FullBlockClosure @2a5ed225 (with 0 args and 3 copied values in CTX [] in [] in HandMorph>>sendFocusEvent:to:clear: @2a525f88), a Process @51a69e8f) [marker: FrameMarker@10466c55, context: null, sender: FrameMarker@1cf4d454]
BlockClosure>>ensure: #(a FullBlockClosure @3ff3275b (with 0 args and 3 copied values in CTX DynamicVariable class>>value:during: @63e0057a), a FullBlockClosure @5b76b891 (with 0 args and 3 copied values in CTX DynamicVariable class>>value:during: @63e0057a)) [marker: FrameMarker@1cf4d454, context: null, sender: CTX DynamicVariable class>>value:during: @63e0057a]
DynamicVariable class>>value:during: #(ActiveHandVariable, a HandMorph @3892b429, a FullBlockClosure @2a5ed225 (with 0 args and 3 copied values in CTX [] in [] in HandMorph>>sendFocusEvent:to:clear: @2a525f88)) [marker: FrameMarker@611a91df, context: CTX DynamicVariable class>>value:during: @63e0057a, sender: FrameMarker@47f5ab58]
[] in [] in ActiveHandVariable class>>value:during: #(ActiveHandVariable, a HandMorph @3892b429, a FullBlockClosure @2a5ed225 (with 0 args and 3 copied values in CTX [] in [] in HandMorph>>sendFocusEvent:to:clear: @2a525f88)) [marker: FrameMarker@47f5ab58, context: null, sender: FrameMarker@245dbd09]
BlockClosure>>ensure: #(a FullBlockClosure @4a013b23 (with 0 args and 2 copied values in CTX ActiveHandVariable class>>value:during: @7f20dfd5), a FullBlockClosure @15651402 (with 0 args and 2 copied values in CTX ActiveHandVariable class>>value:during: @7f20dfd5)) [marker: FrameMarker@245dbd09, context: null, sender: CTX ActiveHandVariable class>>value:during: @7f20dfd5]
ActiveHandVariable class>>value:during: #(ActiveHandVariable, a HandMorph @3892b429, a FullBlockClosure @2a5ed225 (with 0 args and 3 copied values in CTX [] in [] in HandMorph>>sendFocusEvent:to:clear: @2a525f88)) [marker: FrameMarker@5c194652, context: CTX ActiveHandVariable class>>value:during: @7f20dfd5, sender: FrameMarker@1f02b6d1]
HandMorph>>becomeActiveDuring: #(a HandMorph @3892b429, a FullBlockClosure @2a5ed225 (with 0 args and 3 copied values in CTX [] in [] in HandMorph>>sendFocusEvent:to:clear: @2a525f88)) [marker: FrameMarker@1f02b6d1, context: null, sender: CTX [] in [] in HandMorph>>sendFocusEvent:to:clear: @2a525f88]
[] in [] in HandMorph>>sendFocusEvent:to:clear: #(a HandMorph @3892b429, a KeyboardEvent @33425171, a TextMorphForEditView @6482eef, a Array @32430075) [marker: null, context: CTX [] in [] in HandMorph>>sendFocusEvent:to:clear: @2a525f88, sender: FrameMarker@66a50c93]
[] in [] in DynamicVariable class>>value:during: #(ActiveWorldVariable, a PasteUpMorph @3d923879, a FullBlockClosure @5bddd141 (with 0 args and 3 copied values in CTX HandMorph>>sendFocusEvent:to:clear: @4d6027be), a Process @51a69e8f) [marker: FrameMarker@66a50c93, context: null, sender: FrameMarker@475eb4fd]
BlockClosure>>ensure: #(a FullBlockClosure @951e911 (with 0 args and 3 copied values in CTX DynamicVariable class>>value:during: @3cb376a3), a FullBlockClosure @7022fb5c (with 0 args and 3 copied values in CTX DynamicVariable class>>value:during: @3cb376a3)) [marker: FrameMarker@475eb4fd, context: null, sender: CTX DynamicVariable class>>value:during: @3cb376a3]
DynamicVariable class>>value:during: #(ActiveWorldVariable, a PasteUpMorph @3d923879, a FullBlockClosure @5bddd141 (with 0 args and 3 copied values in CTX HandMorph>>sendFocusEvent:to:clear: @4d6027be)) [marker: FrameMarker@426940f9, context: CTX DynamicVariable class>>value:during: @3cb376a3, sender: FrameMarker@447630c4]
[] in [] in ActiveWorldVariable class>>value:during: #(ActiveWorldVariable, a PasteUpMorph @3d923879, a FullBlockClosure @5bddd141 (with 0 args and 3 copied values in CTX HandMorph>>sendFocusEvent:to:clear: @4d6027be)) [marker: FrameMarker@447630c4, context: null, sender: FrameMarker@63d75087]
BlockClosure>>ensure: #(a FullBlockClosure @4c8afba (with 0 args and 2 copied values in CTX ActiveWorldVariable class>>value:during: @cae4952), a FullBlockClosure @79aba813 (with 0 args and 2 copied values in CTX ActiveWorldVariable class>>value:during: @cae4952)) [marker: FrameMarker@63d75087, context: null, sender: CTX ActiveWorldVariable class>>value:during: @cae4952]
ActiveWorldVariable class>>value:during: #(ActiveWorldVariable, a PasteUpMorph @3d923879, a FullBlockClosure @5bddd141 (with 0 args and 3 copied values in CTX HandMorph>>sendFocusEvent:to:clear: @4d6027be)) [marker: FrameMarker@20a18cc9, context: CTX ActiveWorldVariable class>>value:during: @cae4952, sender: FrameMarker@61555218]
PasteUpMorph>>becomeActiveDuring: #(a PasteUpMorph @3d923879, a FullBlockClosure @5bddd141 (with 0 args and 3 copied values in CTX HandMorph>>sendFocusEvent:to:clear: @4d6027be)) [marker: FrameMarker@61555218, context: null, sender: CTX HandMorph>>sendFocusEvent:to:clear: @4d6027be]
HandMorph>>sendFocusEvent:to:clear: #(a HandMorph @3892b429, a KeyboardEvent @33425171, a TextMorphForEditView @6482eef, a FullBlockClosure @1fcf73b9 (with 0 args and 0 copied values in CTX HandMorph>>sendKeyboardEvent: @3b80bb63)) [marker: FrameMarker@17ebbf1e, context: CTX HandMorph>>sendFocusEvent:to:clear: @4d6027be, sender: FrameMarker@5c65fa69]
HandMorph>>sendEvent:focus:clear: #(a HandMorph @3892b429, a KeyboardEvent @33425171, a TextMorphForEditView @6482eef, a FullBlockClosure @1fcf73b9 (with 0 args and 0 copied values in CTX HandMorph>>sendKeyboardEvent: @3b80bb63)) [marker: FrameMarker@5c65fa69, context: null, sender: CTX HandMorph>>sendKeyboardEvent: @3b80bb63]
HandMorph>>sendKeyboardEvent: #(a HandMorph @3892b429, a KeyboardEvent @33425171) [marker: null, context: CTX HandMorph>>sendKeyboardEvent: @3b80bb63, sender: FrameMarker@38d308e7]
HandMorph>>handleEvent: #(a HandMorph @3892b429, a KeyboardEvent @33425171) [marker: FrameMarker@38d308e7, context: null, sender: FrameMarker@6b6f73d]
HandMorph>>processEvents #(a HandMorph @3892b429) [marker: FrameMarker@6b6f73d, context: null, sender: FrameMarker@4c6fabba]
[] in [] in [] in WorldState>>doOneCycleNowFor: #(a WorldState @3f2ab6ec, a HandMorph @3892b429, a Array @1f1e15de) [marker: FrameMarker@4c6fabba, context: null, sender: FrameMarker@2ea0161f]
[] in [] in DynamicVariable class>>value:during: #(ActiveHandVariable, a HandMorph @3892b429, a FullBlockClosure @1f235a0a (with 0 args and 2 copied values in CTX [] in [] in WorldState>>doOneCycleNowFor: @75d402d4), a Process @51a69e8f) [marker: FrameMarker@2ea0161f, context: null, sender: FrameMarker@1a0b4955]
BlockClosure>>ensure: #(a FullBlockClosure @3435a4e5 (with 0 args and 3 copied values in CTX DynamicVariable class>>value:during: @31434b63), a FullBlockClosure @64d42d3d (with 0 args and 3 copied values in CTX DynamicVariable class>>value:during: @31434b63)) [marker: FrameMarker@1a0b4955, context: null, sender: CTX DynamicVariable class>>value:during: @31434b63]
DynamicVariable class>>value:during: #(ActiveHandVariable, a HandMorph @3892b429, a FullBlockClosure @1f235a0a (with 0 args and 2 copied values in CTX [] in [] in WorldState>>doOneCycleNowFor: @75d402d4)) [marker: FrameMarker@24558113, context: CTX DynamicVariable class>>value:during: @31434b63, sender: FrameMarker@3d5e0bf0]
[] in [] in ActiveHandVariable class>>value:during: #(ActiveHandVariable, a HandMorph @3892b429, a FullBlockClosure @1f235a0a (with 0 args and 2 copied values in CTX [] in [] in WorldState>>doOneCycleNowFor: @75d402d4)) [marker: FrameMarker@3d5e0bf0, context: null, sender: FrameMarker@166d576b]
BlockClosure>>ensure: #(a FullBlockClosure @53153d5e (with 0 args and 2 copied values in CTX ActiveHandVariable class>>value:during: @5b407336), a FullBlockClosure @160cf225 (with 0 args and 2 copied values in CTX ActiveHandVariable class>>value:during: @5b407336)) [marker: FrameMarker@166d576b, context: null, sender: CTX ActiveHandVariable class>>value:during: @5b407336]
ActiveHandVariable class>>value:during: #(ActiveHandVariable, a HandMorph @3892b429, a FullBlockClosure @1f235a0a (with 0 args and 2 copied values in CTX [] in [] in WorldState>>doOneCycleNowFor: @75d402d4)) [marker: FrameMarker@6a262980, context: CTX ActiveHandVariable class>>value:during: @5b407336, sender: FrameMarker@10230657]
HandMorph>>becomeActiveDuring: #(a HandMorph @3892b429, a FullBlockClosure @1f235a0a (with 0 args and 2 copied values in CTX [] in [] in WorldState>>doOneCycleNowFor: @75d402d4)) [marker: FrameMarker@10230657, context: null, sender: CTX [] in [] in WorldState>>doOneCycleNowFor: @75d402d4]
[] in [] in WorldState>>doOneCycleNowFor: #(a WorldState @3f2ab6ec, a HandMorph @3892b429, a Array @1f1e15de) [marker: null, context: CTX [] in [] in WorldState>>doOneCycleNowFor: @75d402d4, sender: FrameMarker@48a21ea6]
SequenceableCollection>>do: #(a Array @394e504d, a FullBlockClosure @62ff14cd (with 1 args and 1 copied values in CTX WorldState>>doOneCycleNowFor: @6ae6a77b)) [marker: FrameMarker@48a21ea6, context: null, sender: FrameMarker@32e9c3af]
WorldState>>handsDo: #(a WorldState @3f2ab6ec, a FullBlockClosure @62ff14cd (with 1 args and 1 copied values in CTX WorldState>>doOneCycleNowFor: @6ae6a77b)) [marker: FrameMarker@32e9c3af, context: null, sender: CTX WorldState>>doOneCycleNowFor: @6ae6a77b]
WorldState>>doOneCycleNowFor: #(a WorldState @3f2ab6ec, a PasteUpMorph @3d923879) [marker: FrameMarker@796e2187, context: CTX WorldState>>doOneCycleNowFor: @6ae6a77b, sender: CTX WorldState>>doOneCycleFor: @600965f5]
== Squeak frames ================================================================
CTX WorldState>>doOneCycleFor: @600965f5 #(a WorldState @3f2ab6ec, a PasteUpMorph @3d923879) [FrameMarker@632d1b1b]
CTX PasteUpMorph>>doOneCycle @3c2fa57a #(a PasteUpMorph @3d923879) [FrameMarker@4027edeb]
CTX [] in [] in MorphicProject>>spawnNewProcess @6fdc3688 #(a MorphicProject @4619cb14) [FrameMarker@48cd8e71]
CTX [] in [] in BlockClosure>>newProcess @7d4135c9 #(a FullBlockClosure @43b3b1b0 (with 0 args and 0 copied values in CTX MorphicProject>>spawnNewProcess @2f6d8c9)) [FrameMarker@59db8216]

scheduler could not find a runnable process
        at  MorphicProject>>recursiveError:(Unknown)
        at  StandardToolSet class>>handleRecursiveError:(StandardToolSet class>>handleRecursiveError::4:80-108)
        at  ToolSet class>>handleRecursiveError:(ToolSet class>>handleRecursiveError::14:288-323)
        at  Debugger class>>openOn:context:label:contents:fullView:(Debugger class>>openOn:context:label:contents:fullView::12:312-347)
        at  StandardToolSet class>>debugProcess:context:label:contents:fullView:(StandardToolSet class>>debugProcess:context:label:contents:fullView::22:553-569)
        at  ToolSet class>>debugProcess:context:label:contents:fullView:(ToolSet class>>debugProcess:context:label:contents:fullView::22:506-522)
        at  Process>>debug:title:full:contents:(Process>>debug:title:full:contents::23:484-500)
        at  Process>>debug:title:full:(Process>>debug:title:full::6:94-109)
        at  Process>>debug:title:(Process>>debug:title::5:77-92)
        at  StandardToolSet class>>handleError:(StandardToolSet class>>handleError::7:186-211)
        at  ToolSet class>>handleError:(ToolSet class>>handleError::31:689-715)
        at  UnhandledError>>defaultAction(UnhandledError>>defaultAction:15:394-420)
        at  UndefinedObject>>handleSignal:(UndefinedObject>>handleSignal::3:38-64)
        at  Exception>>signal(Exception>>signal:7:140-166)
        at  UnhandledError class>>signalForException:(UnhandledError class>>signalForException::7:95-114)
        at  Error>>defaultAction(Error>>defaultAction:3:65-97)
        at  PolyglotError>>defaultAction(PolyglotError>>defaultAction:5:64-84)
        at  UndefinedObject>>handleSignal:(UndefinedObject>>handleSignal::3:38-64)
        at  Exception>>signal(Exception>>signal:7:140-166)
        at  PolyglotError>>signal:(PolyglotError>>signal::9:145-164)
        at  PolyglotError class>>signal(PolyglotError class>>signal:5:103-123)
        at  Polyglot class>>primitiveEval:string:names:arguments:(Polyglot class>>primitiveEval:string:names:arguments::13:316-336)
        at  Polyglot class>>eval:string:names:arguments:(Unknown)
        at  Polyglot class>>evalWithBindings:string:(Polyglot class>>evalWithBindings:string::8:154-169)
        at  PolyglotWorkspace>>evaluateExpression:(PolyglotWorkspace>>evaluateExpression::11:265-303)
        at  TextEditor>>evaluateSelectionAndDo:(TextEditor>>evaluateSelectionAndDo::14:362-389)
        at  TextEditor>>evaluateSelection(TextEditor>>evaluateSelection:3:86-122)
        at  TextEditor>>doIt(TextEditor>>doIt:2:12-42)
        at  TextEditor>>doIt:(TextEditor>>doIt::2:12-29)
        at  TextEditor>>dispatchOnKeyboardEvent:(TextEditor>>dispatchOnKeyboardEvent::169:3601-3619)
        at  TextEditor>>keyStroke:(TextEditor>>keyStroke::6:83-120)
        at  [] in [] in TextMorph>>keyStroke:([] in [] in TextMorph>>keyStroke::4:52-75)
        at  TextMorph>>handleInteraction:fromEvent:(TextMorph>>handleInteraction:fromEvent::17:333-351)
        at  TextMorphForEditView>>handleInteraction:fromEvent:(TextMorphForEditView>>handleInteraction:fromEvent::10:156-177)
        at  [] in TextMorph>>keyStroke:([] in TextMorph>>keyStroke::26:599-641)
        at  StandardToolSet class>>codeCompletionAround:textMorph:keyStroke:(StandardToolSet class>>codeCompletionAround:textMorph:keyStroke::2:19-36)
        at  ToolSet class>>codeCompletionAround:textMorph:keyStroke:(ToolSet class>>codeCompletionAround:textMorph:keyStroke::15:257-273)
        at  TextMorph>>keyStroke:(TextMorph>>keyStroke::9:217-232)
        at  TextMorphForEditView>>keyStroke:(TextMorphForEditView>>keyStroke::32:642-663)
        at  Morph>>handleKeystroke:(Morph>>handleKeystroke::48:948-972)
        at  TextMorph>>handleKeystroke:(TextMorph>>handleKeystroke::48:1053-1074)
        at  KeyboardEvent>>sentTo:(KeyboardEvent>>sentTo::7:117-146)
        at  Morph>>handleEvent:(Morph>>handleEvent::11:200-221)
        at  Morph>>handleFocusEvent:(Morph>>handleFocusEvent::8:129-154)
        at  MorphicEventDispatcher>>doHandlingForFocusEvent:with:(MorphicEventDispatcher>>doHandlingForFocusEvent:with::10:196-227)
        at  MorphicEventDispatcher>>dispatchFocusEvent:with:(MorphicEventDispatcher>>dispatchFocusEvent:with::29:599-642)
        at  Morph>>processFocusEvent:using:(Morph>>processFocusEvent:using::4:50-87)
        at  Morph>>processFocusEvent:(Morph>>processFocusEvent::5:80-117)
        at  [] in [] in [] in HandMorph>>sendFocusEvent:to:clear:([] in [] in [] in HandMorph>>sendFocusEvent:to:clear::3:38-69)
        at  [] in DynamicVariable class>>value:during:([] in DynamicVariable class>>value:during::7:113-130)
        at  BlockClosure>>ensure:(BlockClosure>>ensure::3:44-77)
        at  DynamicVariable class>>value:during:(DynamicVariable class>>value:during::22:686-707)
        at  [] in ActiveEventVariable class>>value:during:([] in ActiveEventVariable class>>value:during::5:97-110)
        at  BlockClosure>>ensure:(BlockClosure>>ensure::3:44-77)
        at  ActiveEventVariable class>>value:during:(ActiveEventVariable class>>value:during::12:321-342)
        at  MorphicEvent>>becomeActiveDuring:(MorphicEvent>>becomeActiveDuring::4:94-120)
        at  [] in [] in HandMorph>>sendFocusEvent:to:clear:([] in [] in HandMorph>>sendFocusEvent:to:clear::6:150-182)
        at  [] in DynamicVariable class>>value:during:([] in DynamicVariable class>>value:during::7:113-130)
        at  BlockClosure>>ensure:(BlockClosure>>ensure::3:44-77)
        at  DynamicVariable class>>value:during:(DynamicVariable class>>value:during::22:686-707)
        at  [] in ActiveHandVariable class>>value:during:([] in ActiveHandVariable class>>value:during::5:96-109)
        at  BlockClosure>>ensure:(BlockClosure>>ensure::3:44-77)
        at  ActiveHandVariable class>>value:during:(ActiveHandVariable class>>value:during::12:321-342)
        at  HandMorph>>becomeActiveDuring:(HandMorph>>becomeActiveDuring::4:92-118)
        at  [] in HandMorph>>sendFocusEvent:to:clear:([] in HandMorph>>sendFocusEvent:to:clear::6:143-175)
        at  [] in DynamicVariable class>>value:during:([] in DynamicVariable class>>value:during::7:113-130)
        at  BlockClosure>>ensure:(BlockClosure>>ensure::3:44-77)
        at  DynamicVariable class>>value:during:(DynamicVariable class>>value:during::22:686-707)
        at  [] in ActiveWorldVariable class>>value:during:([] in ActiveWorldVariable class>>value:during::5:97-110)
        at  BlockClosure>>ensure:(BlockClosure>>ensure::3:44-77)
        at  ActiveWorldVariable class>>value:during:(ActiveWorldVariable class>>value:during::12:321-342)
        at  PasteUpMorph>>becomeActiveDuring:(PasteUpMorph>>becomeActiveDuring::4:94-120)
        at  HandMorph>>sendFocusEvent:to:clear:(HandMorph>>sendFocusEvent:to:clear::21:442-475)
        at  HandMorph>>sendEvent:focus:clear:(HandMorph>>sendEvent:focus:clear::11:201-217)
        at  HandMorph>>sendKeyboardEvent:(HandMorph>>sendKeyboardEvent::6:145-160)
        at  HandMorph>>handleEvent:(HandMorph>>handleEvent::61:1248-1280)
        at  HandMorph>>processEvents(HandMorph>>processEvents:71:1516-1542)
        at  [] in [] in WorldState>>doOneCycleNowFor:([] in [] in WorldState>>doOneCycleNowFor::2:19-45)
        at  [] in DynamicVariable class>>value:during:([] in DynamicVariable class>>value:during::7:113-130)
        at  BlockClosure>>ensure:(BlockClosure>>ensure::3:44-77)
        at  DynamicVariable class>>value:during:(DynamicVariable class>>value:during::22:686-707)
        at  [] in ActiveHandVariable class>>value:during:([] in ActiveHandVariable class>>value:during::5:96-109)
        at  BlockClosure>>ensure:(BlockClosure>>ensure::3:44-77)
        at  ActiveHandVariable class>>value:during:(ActiveHandVariable class>>value:during::12:321-342)
        at  HandMorph>>becomeActiveDuring:(HandMorph>>becomeActiveDuring::4:92-118)
        at  [] in WorldState>>doOneCycleNowFor:([] in WorldState>>doOneCycleNowFor::5:131-163)
        at  SequenceableCollection>>do:(SequenceableCollection>>do::14:244-263)
        at  WorldState>>handsDo:(WorldState>>handsDo::3:38-53)
        at  WorldState>>doOneCycleNowFor:(WorldState>>doOneCycleNowFor::14:414-436)
        at  CTX WorldState>>doOneCycleFor: @600965f5(WorldState>>doOneCycleFor::12:264-295)
        at org.graalvm.sdk/org.graalvm.polyglot.Value.execute(Value.java:839)
        at de.hpi.swa.trufflesqueak.launcher.TruffleSqueakLauncher.execute(TruffleSqueakLauncher.java:131)
        at de.hpi.swa.trufflesqueak.launcher.TruffleSqueakLauncher.launch(TruffleSqueakLauncher.java:82)
        at org.graalvm.launcher.AbstractLanguageLauncher.launch(AbstractLanguageLauncher.java:296)
        at org.graalvm.launcher.AbstractLanguageLauncher.launch(AbstractLanguageLauncher.java:121)
        at org.graalvm.launcher.AbstractLanguageLauncher.runLauncher(AbstractLanguageLauncher.java:168)

If I fork this expression instead, the image hangs for a while, then displays a polyglot error for a process switch, but the UI process seems not to be running any longer after that, and because TruffleSqueak apparently does not support user interrupts at the moment (?), I find no way to continue from there, either.

fniephaus commented 2 years ago

Evaluating process-switching Smalltalk code on top of other languages (Python in this example) is not (yet) supported. I'm not sure it can ever be supported correctly across languages as Smalltalk uses continuations for execution and not all languages support that. For your example to work, Python stack frame would need to be persisted before yielding back to the UI process. There's no way to do this at the moment.