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 _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Fri, Aug 21, 2009 at 8:16 AM, François Tanguy <[hidden email]> wrote: Hello, 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
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Thank you Mariano for your answer. I think this information deserves to be in "Pharo FAQ". Bye François Le Aug 21, 2009 à 3:23 PM, Mariano Martinez Peck a écrit :
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
2009/8/22 François Tanguy <[hidden email]>
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
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 <[hidden email]> > >> 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 < >> [hidden email]> 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 >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> >> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Thanks Adrian for that.
Mariano : I let you know if I run into problems Bye François Le Aug 22, 2009 à 9:54 PM, Adrian Lienhard a écrit : > 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 <[hidden email]> >> >>> 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 < >>> [hidden email]> 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 >>>> [hidden email] >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [hidden email] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> _______________________________________________ >> Pharo-project mailing list >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |