I added an entry to http://www.pharo-project.org/documentation/faq Cheers, Adrian On Aug 22, 2009, at 20:08 , Mariano Martinez Peck wrote:
2009/8/22 François Tanguy <francois.tanguy@gmail.com>
Thank you Mariano for your answer. I think this information deserves to be in "Pharo FAQ".
Thanks François for you comment and suggestion, I really appreciate it. However, I am sorry but I am not completely agree. SqueakDBX has nothing to do with Pharo. SqueakDBX is an external package that loads not only in Pharo but also in Squeak, Cuis or whatever. The problem you had is SqueakDBX related, not Pharo. In addition, if you see our website: http://wiki.squeak.org/squeak/6052 in the FAQ you will see that your problem was already there.
In summary, it is not Pharo, but SqueakDBX. And in order to use it, you must read the wiki :)
Perhaps what we can do is to add a link in the Pharo FAQ that says "if you want to use SqueakDBX or GlorpDBX read the following link http://wiki.squeak.org/squeak/6052"
What do you think?
François: let me know if it worked for you or how can I help you with it ;)
Best,
Mariano
Bye
François
Le Aug 21, 2009 à 3:23 PM, Mariano Martinez Peck a écrit :
On Fri, Aug 21, 2009 at 8:16 AM, François Tanguy < francois.tanguy@gmail.com> wrote:
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 ?
Yes, SqueakDBX supports PostgreSQL but also many others backends. But in contrary to the native postgresql driver which is all in smalltalk, SqueakDBX delegates to an external library written in C called OpenDBX.
So, when using SqueakDBX you must install OpenDBX and the client library of your database (the error you had is because SqueakDBX doesn't find OpenDBX in your system). Unfortunately this solution requires a bit more time of configuring than using the native driver but we can use a lot of databases and have better performance.
I suggest you read the link: http://wiki.squeak.org/squeak/6052 And more in deep this link: http://wiki.squeak.org/squeak/6129
For Linux and Windows there are also binaries, but in the case of Mac you must compile.
Finally there is a blog someone write to use PostgreSQL with SqueakDBX in Mac OS:
http://dreamsofascorpion.blogspot.com/2008/05/using-opendbx-with-squeak.html
To avoid noise in Pharo mailing list remember there is our own mailing list here: http://wiki.squeak.org/squeak/6052
If you have more questions, just ask :)
Best,
Mariano
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
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project