Hello, it may be a noobie question but I tried to execute the GlorpTest and it failed in one case. If the DBXDriver is used, the tests failed. (See the stacktrace below) | tr | SqueakDatabaseAccessor DefaultDriver: SqueakDBXDriver. tr := TestRunner new. ToolBuilder open: tr. tr categoryAt: (tr categoryList indexOf: 'GlorpTest') put: true; selectAllClasses; runAll. But the native driver is used, the tests passed. | tr | SqueakDatabaseAccessor DefaultDriver: NativePostgresDriver. tr := TestRunner new. ToolBuilder open: tr. tr categoryAt: (tr categoryList indexOf: 'GlorpTest') put: true; selectAllClasses; runAll. I thought the DBXDriver could be used to manage postgresql database, no ? François ps : I am using pharo1.0-10418-BETAweb09.08.2 and I changed the login information in the correct methods (defaultPostgreSQLLocalLogin and buildDefaultConnectionArgs). 21 August 2009 11:13:22 am VM: Mac OS - intel - 1058 - Squeak3.8.1 of '28 Aug 2006' [latest update: #6747] Squeak VM 4.1.1b2 Image: Pharo1.0beta [Latest update: #10418] SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir /Users/paco/Desktop/pharo1.0-10418-BETAweb09.08.2 Trusted Dir /foobar/tooBar/forSqueak/bogus Untrusted Dir /Users/paco/Library/Preferences/Squeak/Internet/My Squeak OpenDBXMacOSX(Object)>>error: Receiver: an OpenDBXMacOSX Arguments and temporary variables: aString: 'Unable to find function address' Receiver's instance variables: an OpenDBXMacOSX OpenDBXMacOSX(Object)>>externalCallFailed Receiver: an OpenDBXMacOSX Arguments and temporary variables: errCode: 13 Receiver's instance variables: an OpenDBXMacOSX OpenDBXMacOSX(OpenDBXUnix)>>apiInitialize:backend:host:port: Receiver: an OpenDBXMacOSX Arguments and temporary variables: handle: a WordArray(0) backend: 'pgsql' host: '127.0.0.1' port: '5432' Receiver's instance variables: an OpenDBXMacOSX DBXPostgresPlatform(DBXPlatform)>>createConnection: Receiver: a DBXPostgresPlatform Arguments and temporary variables: aConnection: a DBXConnection err: nil handleArray: a WordArray(0) handle: nil Receiver's instance variables: a DBXPostgresPlatform DBXConnection>>connect Receiver: a DBXConnection Arguments and temporary variables: Receiver's instance variables: platform: a DBXPostgresPlatform settings: a DBXConnectionSettings handle: nil open: a ValueHolder connected: a ValueHolder result: nil SqueakDBXDriver>>connect: Receiver: a SqueakDBXDriver Arguments and temporary variables: aLogin: a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca', '127.0.0.1_glorp'...etc... Receiver's instance variables: connection: a DBXConnection database: nil [] in SqueakDatabaseAccessor>>loginIfError: Receiver: a SqueakDatabaseAccessor Arguments and temporary variables: <<error during printing> Receiver's instance variables: connection: nil currentLogin: a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca', '127.0.0.1_...etc... logging: nil reusePreparedStatements: nil deniedCommands: nil mutex: a Semaphore() dependents: nil isInTransaction: false databaseDriver: a SqueakDBXDriver BlockClosure>>on:do: Receiver: [closure] in SqueakDatabaseAccessor>>loginIfError: Arguments and temporary variables: exception: Error handlerAction: [closure] in SqueakDatabaseAccessor(DatabaseAccessor)>>login handlerActive: false Receiver's instance variables: outerContext: SqueakDatabaseAccessor>>loginIfError: startpc: 60 numArgs: 0 SqueakDatabaseAccessor(DatabaseAccessor)>>execute:ifError: Receiver: a SqueakDatabaseAccessor Arguments and temporary variables: aBlock: [closure] in SqueakDatabaseAccessor>>loginIfError: errorBlock: [closure] in SqueakDatabaseAccessor(DatabaseAccessor)>>login Receiver's instance variables: connection: nil currentLogin: a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca', '127.0.0.1_...etc... logging: nil reusePreparedStatements: nil deniedCommands: nil mutex: a Semaphore() dependents: nil isInTransaction: false databaseDriver: a SqueakDBXDriver SqueakDatabaseAccessor>>loginIfError: Receiver: a SqueakDatabaseAccessor Arguments and temporary variables: aBlock: [closure] in SqueakDatabaseAccessor(DatabaseAccessor)>>login Receiver's instance variables: connection: nil currentLogin: a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca', '127.0.0.1_...etc... logging: nil reusePreparedStatements: nil deniedCommands: nil mutex: a Semaphore() dependents: nil isInTransaction: false databaseDriver: a SqueakDBXDriver SqueakDatabaseAccessor(DatabaseAccessor)>>login Receiver: a SqueakDatabaseAccessor Arguments and temporary variables: Receiver's instance variables: connection: nil currentLogin: a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca', '127.0.0.1_...etc... logging: nil reusePreparedStatements: nil deniedCommands: nil mutex: a Semaphore() dependents: nil isInTransaction: false databaseDriver: a SqueakDBXDriver GlorpDatabaseLoginResource>>setUp Receiver: GlorpDatabaseLoginResource Arguments and temporary variables: Receiver's instance variables: name: nil description: nil accessor: a SqueakDatabaseAccessor login: a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca', '127.0.0.1_glorp')...etc... GlorpDatabaseLoginResource(TestResource)>>initialize Receiver: GlorpDatabaseLoginResource Arguments and temporary variables: Receiver's instance variables: name: nil description: nil accessor: a SqueakDatabaseAccessor login: a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca', '127.0.0.1_glorp')...etc... GlorpDatabaseLoginResource class(Behavior)>>new Receiver: GlorpDatabaseLoginResource Arguments and temporary variables: Receiver's instance variables: superclass: TestResource methodDict: a MethodDictionary(#accessor->a CompiledMethod (1052) #accessor:->a...etc... format: 138 instanceVariables: #('accessor' 'login') organization: ('accessing' accessor accessor: login login: platform) ('initiali...etc... subclasses: nil name: #GlorpDatabaseLoginResource classPool: a Dictionary(#DefaultLogin->a Login(a PostgreSQLPlatform, 'postgres'...etc... sharedPools: nil environment: Smalltalk category: #'OpenDBX-Glorp-Core-Test' traitComposition: nil localSelectors: nil current: nil GlorpDatabaseLoginResource class(TestResource class)>>current Receiver: GlorpDatabaseLoginResource Arguments and temporary variables: Receiver's instance variables: superclass: TestResource methodDict: a MethodDictionary(#accessor->a CompiledMethod (1052) #accessor:->a...etc... format: 138 instanceVariables: #('accessor' 'login') organization: ('accessing' accessor accessor: login login: platform) ('initiali...etc... subclasses: nil name: #GlorpDatabaseLoginResource classPool: a Dictionary(#DefaultLogin->a Login(a PostgreSQLPlatform, 'postgres'...etc... sharedPools: nil environment: Smalltalk category: #'OpenDBX-Glorp-Core-Test' traitComposition: nil localSelectors: nil current: nil GlorpDemoTablePopulatorResource>>setUp Receiver: GlorpDemoTablePopulatorResource Arguments and temporary variables: Receiver's instance variables: name: nil description: nil login: nil GlorpDemoTablePopulatorResource(TestResource)>>initialize Receiver: GlorpDemoTablePopulatorResource Arguments and temporary variables: Receiver's instance variables: name: nil description: nil login: nil GlorpDemoTablePopulatorResource class(Behavior)>>new Receiver: GlorpDemoTablePopulatorResource Arguments and temporary variables: Receiver's instance variables: superclass: TestResource methodDict: a MethodDictionary(#populateStuffTable->a CompiledMethod (555) #set...etc... format: 136 instanceVariables: #('login') organization: ('setup' populateStuffTable setUp) ('*glorpTestPostload-override'...etc... subclasses: nil name: #GlorpDemoTablePopulatorResource classPool: a Dictionary(#NeedsSetup->false ) sharedPools: nil environment: Smalltalk category: #GlorpTest traitComposition: nil localSelectors: nil current: nil GlorpDemoTablePopulatorResource class(TestResource class)>>current Receiver: GlorpDemoTablePopulatorResource Arguments and temporary variables: Receiver's instance variables: superclass: TestResource methodDict: a MethodDictionary(#populateStuffTable->a CompiledMethod (555) #set...etc... format: 136 instanceVariables: #('login') organization: ('setup' populateStuffTable setUp) ('*glorpTestPostload-override'...etc... subclasses: nil name: #GlorpDemoTablePopulatorResource classPool: a Dictionary(#NeedsSetup->false ) sharedPools: nil environment: Smalltalk category: #GlorpTest traitComposition: nil localSelectors: nil current: nil GlorpSessionResource>>glorpTestsSystem Receiver: GlorpSessionResource Arguments and temporary variables: Receiver's instance variables: name: nil description: nil session: nil GlorpSessionResource>>setUp Receiver: GlorpSessionResource Arguments and temporary variables: Receiver's instance variables: name: nil description: nil session: nil GlorpSessionResource(TestResource)>>initialize Receiver: GlorpSessionResource Arguments and temporary variables: Receiver's instance variables: name: nil description: nil session: nil GlorpSessionResource class(Behavior)>>new Receiver: GlorpSessionResource Arguments and temporary variables: Receiver's instance variables: superclass: TestResource methodDict: a MethodDictionary(#glorpTestsSystem->a CompiledMethod (1814) #newS...etc... format: 136 instanceVariables: #('session') organization: ('setup' glorpTestsSystem setUp) ('accessing' newSession session)...etc... subclasses: nil name: #GlorpSessionResource classPool: nil sharedPools: nil environment: Smalltalk category: #GlorpTest traitComposition: nil localSelectors: nil current: nil GlorpSessionResource class(TestResource class)>>current Receiver: GlorpSessionResource Arguments and temporary variables: Receiver's instance variables: superclass: TestResource methodDict: a MethodDictionary(#glorpTestsSystem->a CompiledMethod (1814) #newS...etc... format: 136 instanceVariables: #('session') organization: ('setup' glorpTestsSystem setUp) ('accessing' newSession session)...etc... subclasses: nil name: #GlorpSessionResource classPool: nil sharedPools: nil environment: Smalltalk category: #GlorpTest traitComposition: nil localSelectors: nil current: nil GlorpSessionResource class(TestResource class)>>isAvailable Receiver: GlorpSessionResource Arguments and temporary variables: Receiver's instance variables: superclass: TestResource methodDict: a MethodDictionary(#glorpTestsSystem->a CompiledMethod (1814) #newS...etc... format: 136 instanceVariables: #('session') organization: ('setup' glorpTestsSystem setUp) ('accessing' newSession session)...etc... subclasses: nil name: #GlorpSessionResource classPool: nil sharedPools: nil environment: Smalltalk category: #GlorpTest traitComposition: nil localSelectors: nil current: nil [] in TestRunner>>basicSetUpSuite: Receiver: a TestRunner Arguments and temporary variables: <<error during printing> Receiver's instance variables: categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests' #'AutomaticMetho...etc... categoriesSelected: a Set(#GlorpTest) classes: {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest . GlorpCursor...etc... classIndex: 0 classesSelected: a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest GlorpManyToM...etc... failedList: #() failedSelected: nil errorList: #() errorSelected: nil lastUpdate: 3428305867 result: 0 run, 0 passes, 0 expected failures, 0 failures, 0 errors, 0 unexpecte...etc... previousRun: nil Set>>do: Receiver: a Set(GlorpSessionResource GlorpDatabaseLoginResource GlorpDemoTablePopulatorResource) Arguments and temporary variables: aBlock: [closure] in TestRunner>>basicSetUpSuite: index: 2 each: GlorpSessionResource indexLimiT: 5 Receiver's instance variables: tally: 3 array: {nil . GlorpSessionResource . GlorpDatabaseLoginResource . GlorpDemoTabl...etc... TestRunner>>basicSetUpSuite: Receiver: a TestRunner Arguments and temporary variables: aTestSuite: a TestSuite Receiver's instance variables: categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests' #'AutomaticMetho...etc... categoriesSelected: a Set(#GlorpTest) classes: {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest . GlorpCursor...etc... classIndex: 0 classesSelected: a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest GlorpManyToM...etc... failedList: #() failedSelected: nil errorList: #() errorSelected: nil lastUpdate: 3428305867 result: 0 run, 0 passes, 0 expected failures, 0 failures, 0 errors, 0 unexpecte...etc... previousRun: nil TestRunner>>basicRunSuite:do: Receiver: a TestRunner Arguments and temporary variables: aTestSuite: a TestSuite aBlock: [closure] in TestRunner>>runSuite: Receiver's instance variables: categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests' #'AutomaticMetho...etc... categoriesSelected: a Set(#GlorpTest) classes: {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest . GlorpCursor...etc... classIndex: 0 classesSelected: a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest GlorpManyToM...etc... failedList: #() failedSelected: nil errorList: #() errorSelected: nil lastUpdate: 3428305867 result: 0 run, 0 passes, 0 expected failures, 0 failures, 0 errors, 0 unexpecte...etc... previousRun: nil TestRunner>>runSuite: Receiver: a TestRunner Arguments and temporary variables: aTestSuite: a TestSuite Receiver's instance variables: categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests' #'AutomaticMetho...etc... categoriesSelected: a Set(#GlorpTest) classes: {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest . GlorpCursor...etc... classIndex: 0 classesSelected: a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest GlorpManyToM...etc... failedList: #() failedSelected: nil errorList: #() errorSelected: nil lastUpdate: 3428305867 result: 0 run, 0 passes, 0 expected failures, 0 failures, 0 errors, 0 unexpecte...etc... previousRun: nil TestRunner>>runAll Receiver: a TestRunner Arguments and temporary variables: Receiver's instance variables: categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests' #'AutomaticMetho...etc... categoriesSelected: a Set(#GlorpTest) classes: {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest . GlorpCursor...etc... classIndex: 0 classesSelected: a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest GlorpManyToM...etc... failedList: #() failedSelected: nil errorList: #() errorSelected: nil lastUpdate: 3428305867 result: 0 run, 0 passes, 0 expected failures, 0 failures, 0 errors, 0 unexpecte...etc... previousRun: nil UndefinedObject>>DoIt Receiver: nil Arguments and temporary variables: tr: a TestRunner Receiver's instance variables: nil Compiler>>evaluate:in:to:notifying:ifFail:logged: Receiver: a Compiler Arguments and temporary variables: <<error during printing> Receiver's instance variables: sourceStream: a ReadWriteStream ' |tr | SqueakDatabaseAccessor DefaultDriver: S...etc... requestor: a TextMorphForShoutEditor class: UndefinedObject category: nil context: nil parser: a Parser [] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection Receiver: a TextMorphForShoutEditor Arguments and temporary variables: <<error during printing> Receiver's instance variables: model: a SHWorkspace paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 201 and character Character cr and rect...etc... stopBlock: a CharacterBlock with index 201 and character Character cr and recta...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextColor code: Color red) initialText: a Text for ' |tr | tr := TestRunner new. ToolBuilder open: tr. tr ...etc... selectionShowing: false otherInterval: (403 to: 402) lastParentLocation: nil morph: a TextMorphForShout(168) oldInterval: (106 to: 105) pivotBlock: a CharacterBlock with index 200 and character Character cr and rect...etc... inBackTo: false BlockClosure>>on:do: Receiver: [closure] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection Arguments and temporary variables: exception: OutOfScopeNotification handlerAction: [closure] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateS...etc... handlerActive: true Receiver's instance variables: outerContext: TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection startpc: 116 numArgs: 0 TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection Receiver: a TextMorphForShoutEditor Arguments and temporary variables: result: nil rcvr: nil ctxt: nil Receiver's instance variables: model: a SHWorkspace paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 201 and character Character cr and rect...etc... stopBlock: a CharacterBlock with index 201 and character Character cr and recta...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextColor code: Color red) initialText: a Text for ' |tr | tr := TestRunner new. ToolBuilder open: tr. tr ...etc... selectionShowing: false otherInterval: (403 to: 402) lastParentLocation: nil morph: a TextMorphForShout(168) oldInterval: (106 to: 105) pivotBlock: a CharacterBlock with index 200 and character Character cr and rect...etc... inBackTo: false TextMorphForShoutEditor(ParagraphEditor)>>doIt Receiver: a TextMorphForShoutEditor Arguments and temporary variables: Receiver's instance variables: model: a SHWorkspace paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 201 and character Character cr and rect...etc... stopBlock: a CharacterBlock with index 201 and character Character cr and recta...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextColor code: Color red) initialText: a Text for ' |tr | tr := TestRunner new. ToolBuilder open: tr. tr ...etc... selectionShowing: false otherInterval: (403 to: 402) lastParentLocation: nil morph: a TextMorphForShout(168) oldInterval: (106 to: 105) pivotBlock: a CharacterBlock with index 200 and character Character cr and rect...etc... inBackTo: false [] in TextMorphForShoutEditor(ParagraphEditor)>>doIt: Receiver: a TextMorphForShoutEditor Arguments and temporary variables: <<error during printing> Receiver's instance variables: model: a SHWorkspace paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 201 and character Character cr and rect...etc... stopBlock: a CharacterBlock with index 201 and character Character cr and recta...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextColor code: Color red) initialText: a Text for ' |tr | tr := TestRunner new. ToolBuilder open: tr. tr ...etc... selectionShowing: false otherInterval: (403 to: 402) lastParentLocation: nil morph: a TextMorphForShout(168) oldInterval: (106 to: 105) pivotBlock: a CharacterBlock with index 200 and character Character cr and rect...etc... inBackTo: false TextMorphForShoutEditor(ParagraphEditor)>>terminateAndInitializeAround: Receiver: a TextMorphForShoutEditor Arguments and temporary variables: aBlock: [closure] in TextMorphForShoutEditor(ParagraphEditor)>>doIt: Receiver's instance variables: model: a SHWorkspace paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 201 and character Character cr and rect...etc... stopBlock: a CharacterBlock with index 201 and character Character cr and recta...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextColor code: Color red) initialText: a Text for ' |tr | tr := TestRunner new. ToolBuilder open: tr. tr ...etc... selectionShowing: false otherInterval: (403 to: 402) lastParentLocation: nil morph: a TextMorphForShout(168) oldInterval: (106 to: 105) pivotBlock: a CharacterBlock with index 200 and character Character cr and rect...etc... inBackTo: false --- The full stack --- OpenDBXMacOSX(Object)>>error: OpenDBXMacOSX(Object)>>externalCallFailed OpenDBXMacOSX(OpenDBXUnix)>>apiInitialize:backend:host:port: DBXPostgresPlatform(DBXPlatform)>>createConnection: DBXConnection>>connect SqueakDBXDriver>>connect: [] in SqueakDatabaseAccessor>>loginIfError: BlockClosure>>on:do: SqueakDatabaseAccessor(DatabaseAccessor)>>execute:ifError: SqueakDatabaseAccessor>>loginIfError: SqueakDatabaseAccessor(DatabaseAccessor)>>login GlorpDatabaseLoginResource>>setUp GlorpDatabaseLoginResource(TestResource)>>initialize GlorpDatabaseLoginResource class(Behavior)>>new GlorpDatabaseLoginResource class(TestResource class)>>current GlorpDemoTablePopulatorResource>>setUp GlorpDemoTablePopulatorResource(TestResource)>>initialize GlorpDemoTablePopulatorResource class(Behavior)>>new GlorpDemoTablePopulatorResource class(TestResource class)>>current GlorpSessionResource>>glorpTestsSystem GlorpSessionResource>>setUp GlorpSessionResource(TestResource)>>initialize GlorpSessionResource class(Behavior)>>new GlorpSessionResource class(TestResource class)>>current GlorpSessionResource class(TestResource class)>>isAvailable [] in TestRunner>>basicSetUpSuite: Set>>do: TestRunner>>basicSetUpSuite: TestRunner>>basicRunSuite:do: TestRunner>>runSuite: TestRunner>>runAll UndefinedObject>>DoIt Compiler>>evaluate:in:to:notifying:ifFail:logged: [] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection BlockClosure>>on:do: TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection TextMorphForShoutEditor(ParagraphEditor)>>doIt [] in TextMorphForShoutEditor(ParagraphEditor)>>doIt: TextMorphForShoutEditor(ParagraphEditor)>>terminateAndInitializeAround: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TextMorphForShoutEditor(ParagraphEditor)>>doIt: TextMorphForShoutEditor(ParagraphEditor)>>dispatchOnKeyEvent:with: TextMorphForShoutEditor(TextMorphEditor)>>dispatchOnKeyEvent:with: TextMorphForShoutEditor(ParagraphEditor)>>keystroke: TextMorphForShoutEditor(TextMorphEditor)>>keystroke: [] in [] in TextMorphForShout(TextMorph)>>keyStroke: TextMorphForShout(TextMorph)>>handleInteraction: TextMorphForShout(TextMorphForEditView)>>handleInteraction: [] in TextMorphForShout(TextMorph)>>keyStroke: ECToolSet class>>codeCompletionAround:textMorph:keyStroke: DEVToolSet class>>codeCompletionAround:textMorph:keyStroke: ToolSet class>>codeCompletionAround:textMorph:keyStroke: TextMorphForShout(TextMorph)>>keyStroke: TextMorphForShout(TextMorphForEditView)>>keyStroke: TextMorphForShout(TextMorph)>>handleKeystroke: KeyboardEvent>>sentTo: TextMorphForShout(Morph)>>handleEvent: TextMorphForShout(Morph)>>handleFocusEvent: [] in HandMorph>>sendFocusEvent:to:clear: [] in PasteUpMorph>>becomeActiveDuring: BlockClosure>>on:do: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: HandMorph>>sendEvent:focus:clear: HandMorph>>sendKeyboardEvent: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess [] in BlockClosure>>newProcess