The full error from Glamorous Toolkit. TL;DR:
GtPharoSourceCoderEvaluationContext(Object)>>doesNotUnderstand: #isForScripting
OCUndeclaredVariableWarning>>openMenuIn:
OCUndeclaredVariableWarning(OCSemanticWarning)>>defaultAction
OCUndeclaredVariableWarning>>defaultAction
UndefinedObject>>handleSignal:
Context>>handleSignal:
OCUndeclaredVariableWarning(Exception)>>pass
[ :anException |
"it is very important that the monitor is not locked when an exception happens"
monitor exit.
"after an #exit call the monitor is open for another process, so if users start to compile code
from within the debugger. If debugger code compilation is not wrapped in this critical block,
there might be a problem of code modification from multiple processes. The chance of this, however, is very slim."
anException pass ] in [
aBlock
on: Exception
do: [ :anException |
"it is very important that the monitor is not locked when an exception happens"
monitor exit.
"after an #exit call the monitor is open for another process, so if users start to compile code
from within the debugger. If debugger code compilation is not wrapped in this critical block,
there might be a problem of code modification from multiple processes. The chance of this, however, is very slim."
anException pass ] ] in GtPharoCodeModifier>>critical: in Block: [ :anException |...
FullBlockClosure(BlockClosure)>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
OCUndeclaredVariableWarning(Exception)>>signal
OCASTSemanticAnalyzer>>undeclaredVariable:
OCASTSemanticAnalyzer>>resolveVariableNode:
OCASTSemanticAnalyzer>>visitVariableNode:
UnresolvedVariable(Variable)>>acceptVisitor:node:
RBVariableNode>>acceptVisitor:
OCASTSemanticAnalyzer(RBProgramNodeVisitor)>>visitNode:
OCASTSemanticAnalyzer(RBProgramNodeVisitor)>>visitMessageNode:
RBMessageNode>>acceptVisitor:
OCASTSemanticAnalyzer(RBProgramNodeVisitor)>>visitNode:
OCASTSemanticAnalyzer(RBProgramNodeVisitor)>>visitReturnNode:
RBReturnNode>>acceptVisitor:
OCASTSemanticAnalyzer(RBProgramNodeVisitor)>>visitNode:
[ :each | self visitNode: each ] in OCASTSemanticAnalyzer>>visitSequenceNode: in Block: [ :each | self visitNode: each ]
OrderedCollection>>do:
OCASTSemanticAnalyzer>>visitSequenceNode:
RBSequenceNode>>acceptVisitor:
OCASTSemanticAnalyzer(RBProgramNodeVisitor)>>visitNode:
OCASTSemanticAnalyzer>>visitMethodNode:
RBMethodNode>>acceptVisitor:
OCASTSemanticAnalyzer(RBProgramNodeVisitor)>>visitNode:
OCASTSemanticAnalyzer>>analyze:
RBMethodNode>>doSemanticAnalysis
[ast doSemanticAnalysis] in OpalCompiler>>doSemanticAnalysis in Block: [ast doSemanticAnalysis]
FullBlockClosure(BlockClosure)>>on:do:
OpalCompiler>>doSemanticAnalysis
OpalCompiler>>transformDoit
OpalCompiler>>parseDoIt
OpalCompiler>>compileDoit
[compilationContext noPattern
ifTrue: [ self compileDoit ]
ifFalse: [ self compileMethod ]] in OpalCompiler>>compile in Block: [compilationContext noPattern ...
FullBlockClosure(BlockClosure)>>on:do:
OpalCompiler>>compile
[
self class compiler
source: aSourceString;
class: methodClass newAnonymousSubclass;
context: aGtPharoSourceCoderEvaluationContext runtimeContext;
requestor: aGtPharoSourceCoderEvaluationContext;
noPattern: isForMethod not;
failBlock: anEvaluationFailBlock;
compile ] in GtPharoSnippetCoder(GtPharoSourceCoder)>>primitiveAnonymousCompile:inContext:onFailDo: in Block: [...
FullBlockClosure(BlockClosure)>>on:do:
[
aBlock
on: Exception
do: [ :anException |
"it is very important that the monitor is not locked when an exception happens"
monitor exit.
"after an #exit call the monitor is open for another process, so if users start to compile code
from within the debugger. If debugger code compilation is not wrapped in this critical block,
there might be a problem of code modification from multiple processes. The chance of this, however, is very slim."
anException pass ] ] in GtPharoCodeModifier>>critical: in Block: [...
[
self enter.
aBlock value] in Monitor>>critical: in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
Monitor>>critical:
GtPharoCodeModifier>>critical:
GtPharoSnippetCoder(GtPharoSourceCoder)>>primitiveAnonymousCompile:inContext:onFailDo:
GtPharoSnippetCoder(GtPharoSourceCoder)>>primitiveEvaluate:inContext:onFailDo:
[
self
primitiveEvaluate: aDecoratedSourceString
inContext: aSourceCoderEvaluationContext
onFailDo: [
| aResultWithSyntaxError |
aResultWithSyntaxError := GtSourceCoderEvaluationResultWithSyntaxError new
evaluationContext: aSourceCoderEvaluationContext.
aThenBlock cull: aResultWithSyntaxError.
^ aResultWithSyntaxError ] ] in GtPharoSnippetCoder(GtSourceCoder)>>evaluate:decorated:inContext:thenDo: in Block: [ ...
FullBlockClosure(BlockClosure)>>on:do:
GtPharoSnippetCoder(GtSourceCoder)>>evaluateBlock:onErrorDo:
GtPharoSnippetCoder(GtSourceCoder)>>evaluate:decorated:inContext:thenDo:
GtPharoSnippetCoder(GtSourceCoder)>>evaluate:inContext:thenDo:
GtPharoSnippetCoder(GtSourceCoder)>>doItInContext:thenDo:
GtPharoSnippetCoder(GtSourceCoder)>>doItInContext:
GtPharoSnippetCoderViewModel(GtSourceCoderViewModel)>>doItAllRequestedBy:
GtPharoSnippetCoderViewModel(GtSourceCoderViewModel)>>doItRequestedBy:
GtPharoSnippetCoderViewModel(GtSourceCoderViewModel)>>doIt
[ self coderViewModel perform: action ] in GtCoderCodeExecutor>>execute in Block: [ self coderViewModel perform: action ]
[ activeProcess
psValueAt: index
put: anObject.
aBlock value ] in GtCoderExecutionContextVariable(DynamicVariable)>>value:during: in Block: [ activeProcess...
FullBlockClosure(BlockClosure)>>ensure:
GtCoderExecutionContextVariable(DynamicVariable)>>value:during:
GtCoderExecutionContextVariable class(DynamicVariable class)>>value:during:
GtCoderExecutionContextVariable class>>element:do:
GtCoderCodeExecutor>>execute
[ :aCoderUIModel :anElement |
GtCoderCodeExecutor doIt
coderViewModel: aCoderUIModel;
element: anElement;
execute ] in GtPharoSnippetCoder>>initializeAddOns: in Block: [ :aCoderUIModel :anElement | ...
FullBlockClosure(BlockClosure)>>gtValueWithArgs:
[ aGtCoderAction action
gtValueWithArgs:
{self textualCoderViewModel.
aButtonElement} ] in [ [ aGtCoderAction action
gtValueWithArgs:
{self textualCoderViewModel.
aButtonElement} ]
ensure: [ self enqueueEnableButton: aButtonElement action: aGtCoderAction ] ] in [ aButtonElement
enqueueTask:
(BlTaskAction new
action: [ [ aGtCoderAction action
gtValueWithArgs:
{self textualCoderViewModel.
aButtonElement} ]
ensure: [ self enqueueEnableButton: aButtonElement action: aGtCoderAction ] ]) ] in GtCoderActionsElement>>handleButton:action:onEvent: in Block: [ aGtCoderAction action...
FullBlockClosure(BlockClosure)>>ensure:
[ [ aGtCoderAction action
gtValueWithArgs:
{self textualCoderViewModel.
aButtonElement} ]
ensure: [ self enqueueEnableButton: aButtonElement action: aGtCoderAction ] ] in [ aButtonElement
enqueueTask:
(BlTaskAction new
action: [ [ aGtCoderAction action
gtValueWithArgs:
{self textualCoderViewModel.
aButtonElement} ]
ensure: [ self enqueueEnableButton: aButtonElement action: aGtCoderAction ] ]) ] in GtCoderActionsElement>>handleButton:action:onEvent: in Block: [ [ aGtCoderAction action...
FullBlockClosure(BlockClosure)>>cull:
BlTaskAction>>run:
[ aTask run: aWaker ] in [ BlTaskExecutionSignal for: aTask block: [ aTask run: aWaker ] ] in [ :aTask |
aTask setExecuting.
BlFrameTelemetry
timeSync: [ 'Run task {1} ({2})' format: { aTask class name . aTask } ]
during: [ BlTaskExecutionSignal for: aTask block: [ aTask run: aWaker ] ].
self onTaskExecuted: aTask.
aTask requeueTaskAfterExecution
ifTrue: [ self privateRequeueRepeating: aTask ]
ifFalse: [
tasks
lock: [ :theSpaceTasks |
(theSpaceTasks hasPendingTask: aTask)
ifFalse: [ aTask setComplete ] ]
ifNilPut: [ self newTasks ] ] ] in BlSpaceTaskQueue>>runOn: in Block: [ aTask run: aWaker ]
BlTaskExecutionSignal class>>for:block:
[ BlTaskExecutionSignal for: aTask block: [ aTask run: aWaker ] ] in [ :aTask |
aTask setExecuting.
BlFrameTelemetry
timeSync: [ 'Run task {1} ({2})' format: { aTask class name . aTask } ]
during: [ BlTaskExecutionSignal for: aTask block: [ aTask run: aWaker ] ].
self onTaskExecuted: aTask.
aTask requeueTaskAfterExecution
ifTrue: [ self privateRequeueRepeating: aTask ]
ifFalse: [
tasks
lock: [ :theSpaceTasks |
(theSpaceTasks hasPendingTask: aTask)
ifFalse: [ aTask setComplete ] ]
ifNilPut: [ self newTasks ] ] ] in BlSpaceTaskQueue>>runOn: in Block: [ BlTaskExecutionSignal for: aTask block: [ aTask ...etc...
NullTelemetry>>time:during:
BlSpaceTelemetry>>time:during:
BlFrameTelemetry(BaseProcessTelemetry)>>time:during:
BlFrameTelemetry(BaseProcessTelemetry)>>timeSync:during:
BlFrameTelemetry class(BaseProcessTelemetry class)>>timeSync:during:
[ :aTask |
aTask setExecuting.
BlFrameTelemetry
timeSync: [ 'Run task {1} ({2})' format: { aTask class name . aTask } ]
during: [ BlTaskExecutionSignal for: aTask block: [ aTask run: aWaker ] ].
self onTaskExecuted: aTask.
aTask requeueTaskAfterExecution
ifTrue: [ self privateRequeueRepeating: aTask ]
ifFalse: [
tasks
lock: [ :theSpaceTasks |
(theSpaceTasks hasPendingTask: aTask)
ifFalse: [ aTask setComplete ] ]
ifNilPut: [ self newTasks ] ] ] in BlSpaceTaskQueue>>runOn: in Block: [ :aTask |...
Array(SequenceableCollection)>>do:
BlSpaceTaskQueue>>runOn:
GtWorld(BlSpace)>>runTasks
[ :theSpace | theSpace runTasks ] in BlSpaceFrameTaskPhase>>runOn: in Block: [ :theSpace | theSpace runTasks ]
FullBlockClosure(BlockClosure)>>cull:
GtWorld(BlSpace)>>dispatchTimeEvent:during:
BlSpaceFrameTaskPhase>>runOn:
[ self currentPhase runOn: aSpace ] in BlSpaceFrame>>runCurrentPhaseOn: in Block: [ self currentPhase runOn: aSpace ]
NullTelemetry>>time:during:
BlSpaceTelemetry>>time:during:
BlFrameTelemetry(BaseProcessTelemetry)>>time:during:
BlFrameTelemetry class(BaseProcessTelemetry class)>>time:during:
BlSpaceFrame>>runCurrentPhaseOn: