Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
August 2009
- 77 participants
- 1342 messages
Re: [Pharo-project] Line end convention in MultiByteFileStream
by Schwab,Wilhelm K
Something else that I would very much like to see done to the debug log is to append new entries vs. overwriting them. A lot of useful information is destroyed that way. What do others think?
Bill
-----Original Message-----
From: pharo-project-bounces(a)lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Damien Cassou
Sent: Saturday, August 22, 2009 11:35 AM
To: Pharo Development
Subject: Re: [Pharo-project] Line end convention in MultiByteFileStream
About PharoDebug.log: http://code.google.com/p/pharo/issues/detail?id=1082
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Lambdas are relegated to relative obscurity until Java makes them popular by not having them." James Iry
_______________________________________________
Pharo-project mailing list
Pharo-project(a)lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 22, 2009
[Pharo-project] Recursion - should there be a limit?
by Schwab,Wilhelm K
Hello all,
I (stupidly) created a runaway recursion that happened to be in a Seaside app that uses LDAPLayer, and that is currently using drives shared over a pre-production vpn from a 64 bit Ubuntu system. Hopefully you won't think less of me for not immediately thinking of infinite recursion as the cause of the problems. It did what is IMHO the worst thing a program can do: it just stopped responding. It makes sense now, and the next time I see the IDE get sluggish and finally lock up, I will probably think of recursion before looking for strange causes. As it was, I simply moved breakpoints around (making liberal use of the End Process button on Ubuntu's system monitor) until I finally put one in front of something that I thought should have worked, and in fact was the culprit.
For good or bad, Dolphin would promptly complain of the callstack being too deep, after which the mistake is fairly easy to find. I have never had problems with that limit, but IIRC others have. Would it be simple to add an optional limit on the stack depth? Would you do it, or would it be asking for trouble? Is there a less invasive way to aid in debugging this scenario?
Bill
Aug. 22, 2009
Re: [Pharo-project] Line end convention in MultiByteFileStream
by Damien Cassou
About PharoDebug.log: http://code.google.com/p/pharo/issues/detail?id=1082
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry
Aug. 22, 2009
[Pharo-project] Line end convention in MultiByteFileStream
by Damien Cassou
Hi,
when creating a file, the line end convention of the OS is not
enforced by default. As an example,
FileStream
forceNewFileNamed: 'test'
do: [:stream | stream
nextPut: $a;
cr;
nextPut: $b;
cr]
always creates a file with MacOS X line end convention. To enforce the
line end convention of the system, one has to do the following:
...
do: [:stream | stream
wantsLineEndConvention: true;
...
is it the desired behavior? If yes, should we ensure that
#wantsLineEndConvention is called each time Pharo generates a file for
the user (e.g., PharoDebug.log).
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry
Aug. 22, 2009
Re: [Pharo-project] [BUG]OpenDBXMacOSX(Object)>>error:
by François Tanguy
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 :
>
>
> On Fri, Aug 21, 2009 at 8:16 AM, François Tanguy <francois.tanguy(a)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(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 22, 2009
Re: [Pharo-project] over bloated image workaround
by Stéphane Ducasse
We should check that.
Can you open a ticket?
Stef
On Aug 21, 2009, at 11:25 PM, Mariano Martinez Peck wrote:
> Hi folks: Sometimes, my Pharo images grows a lot. Size like 80MB or
> similar. Marcelo Cortez gave me a couple of changes (fileouts) that
> make my images go back to their original size or similar. For
> example, it was tasted in a 87 MB and after this changes and this
> stuff, it become in 24 MB. The same with another one from 65M to 35M.
>
> If you have a big Pharo image, save a copy and do this tests:
>
> 1) File in all the changes I attach.
> 2) Go to a workspace and evaluate:
>
> OBDPAbstract reinitAllCache.
> LocalSends allInstances first initialize.
> EventManager resetMap.
> Smalltalk garbageCollect.
>
> Did this make your image too much smaller?
>
> When I evaluate SystemNavigation default obsoleteBehavio size I
> get a a number of 3 digits.
>
> Perhaps it is a matter with the OB. I guess it generates dependences
> while you are developing a class and it creates on the fly an
> obsolteClassXXX when there is something that doesn't exist. Then
> they are processes and they are never garbage collected.
>
> When SmalltalkImage tries to fix the obsoletes delegates to the
> literal frames of the compiled methods so that to search references
> to the obsoletes. But references were not gone because they weren't
> garbage collected. The same method finishes with error if the
> obsoletes > 0.
>
> Does anyone has a comment for this?
>
> I tried to do my best to write in English from what Marcelo told me
> and from what I can understand from the changesets.
>
> Best,
>
> Mariano _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 22, 2009
Re: [Pharo-project] About Pharo working packages
by Stéphane Ducasse
This is on my todo since version 0.7
Stef
On Aug 21, 2009, at 11:37 AM, Damien Cassou wrote:
> On Fri, Aug 21, 2009 at 9:00 AM, Adrian Lienhard<adi(a)netstyle.ch>
> wrote:
>> If somebody has time, it would be interesting to test out Metacello
>> to
>> see how well it would work for our needs. I think it could be a good
>> match.
>
> Let's wait for Dale to release the first version.
>
> --
> Damien Cassou
> http://damiencassou.seasidehosting.st
>
> "Lambdas are relegated to relative obscurity until Java makes them
> popular by not having them." James Iry
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 22, 2009
Re: [Pharo-project] over bloated image workaround
by Adrian Lienhard
Hi Mariano
As a first step, I suggest to find out which of the three caches
actually is the one that uses all that memory. In a large image, you
can run one of the cleanups at a time, and after each one do a GC and
check the memory consumption (compare the free memory of:
SmalltalkImage current vmStatisticsReportString)
HTH,
Adrian
On Aug 22, 2009, at 03:15 , Mariano Martinez Peck wrote:
> 2009/8/21 Daniel P Zepeda <daniel(a)zepeda.ws>
>
>>
>> On Aug 21, 2009, at 4:25 PM, Mariano Martinez Peck wrote:
>>
>> Hi folks: Sometimes, my Pharo images grows a lot. Size like 80MB or
>> similar. Marcelo Cortez gave me a couple of changes (fileouts) that
>> make my
>> images go back to their original size or similar. For example, it
>> was tasted
>> in a 87 MB and after this changes and this stuff, it become in 24
>> MB. The
>> same with another one from 65M to 35M.
>>
>> If you have a big Pharo image, save a copy and do this tests:
>>
>> 1) File in all the changes I attach.
>>
>>
>> There is nothing attached.
>>
>
>
> Ups...sorry. I attach it here.
>
>
>
>>
>>
>> 2) Go to a workspace and evaluate:
>>
>> OBDPAbstract reinitAllCache.
>> LocalSends allInstances first initialize.
>> EventManager resetMap.
>> Smalltalk garbageCollect.
>>
>> Did this make your image too much smaller?
>>
>> When I evaluate SystemNavigation default obsoleteBehavio size I
>> get a a
>> number of 3 digits.
>>
>> Perhaps it is a matter with the OB. I guess it generates
>> dependences while
>> you are developing a class and it creates on the fly an
>> obsolteClassXXX when
>> there is something that doesn't exist. Then they are processes and
>> they are
>> never garbage collected.
>>
>> When SmalltalkImage tries to fix the obsoletes delegates to the
>> literal
>> frames of the compiled methods so that to search references to the
>> obsoletes. But references were not gone because they weren't garbage
>> collected. The same method finishes with error if the obsoletes > 0.
>>
>> Does anyone has a comment for this?
>>
>>
>> Well, the only comment I have is that this procedure should go on the
>> snippets page no the Pharo Project website. I know you are after a
>> deeper
>> fix, but others will have to provide that, as this is way over my
>> head at
>> this time.
>>
>
> I think the same as you.
>
>
>>
>>
>>
>> I tried to do my best to write in English from what Marcelo told me
>> and
>> from what I can understand from the changesets.
>>
>>
>> You did a good job, I understand the problem conceptually from your
>> description. I just don't have any idea how to fix that.
>>
>
> Excellent and thanks for the report
>
>
>>
>>
>>
>> Best,
>>
>> Mariano _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
> <EventManager class-resetMap.st><OBDPAbstract class-
> reinitAllCache.st><OBDPAbstract class-
> reinitCache.st>_______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 22, 2009
Re: [Pharo-project] over bloated image workaround
by Mariano Martinez Peck
2009/8/21 Daniel P Zepeda <daniel(a)zepeda.ws>
>
> On Aug 21, 2009, at 4:25 PM, Mariano Martinez Peck wrote:
>
> Hi folks: Sometimes, my Pharo images grows a lot. Size like 80MB or
> similar. Marcelo Cortez gave me a couple of changes (fileouts) that make my
> images go back to their original size or similar. For example, it was tasted
> in a 87 MB and after this changes and this stuff, it become in 24 MB. The
> same with another one from 65M to 35M.
>
> If you have a big Pharo image, save a copy and do this tests:
>
> 1) File in all the changes I attach.
>
>
> There is nothing attached.
>
Ups...sorry. I attach it here.
>
>
> 2) Go to a workspace and evaluate:
>
> OBDPAbstract reinitAllCache.
> LocalSends allInstances first initialize.
> EventManager resetMap.
> Smalltalk garbageCollect.
>
> Did this make your image too much smaller?
>
> When I evaluate SystemNavigation default obsoleteBehavio size I get a a
> number of 3 digits.
>
> Perhaps it is a matter with the OB. I guess it generates dependences while
> you are developing a class and it creates on the fly an obsolteClassXXX when
> there is something that doesn't exist. Then they are processes and they are
> never garbage collected.
>
> When SmalltalkImage tries to fix the obsoletes delegates to the literal
> frames of the compiled methods so that to search references to the
> obsoletes. But references were not gone because they weren't garbage
> collected. The same method finishes with error if the obsoletes > 0.
>
> Does anyone has a comment for this?
>
>
> Well, the only comment I have is that this procedure should go on the
> snippets page no the Pharo Project website. I know you are after a deeper
> fix, but others will have to provide that, as this is way over my head at
> this time.
>
I think the same as you.
>
>
>
> I tried to do my best to write in English from what Marcelo told me and
> from what I can understand from the changesets.
>
>
> You did a good job, I understand the problem conceptually from your
> description. I just don't have any idea how to fix that.
>
Excellent and thanks for the report
>
>
>
> Best,
>
> Mariano _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Aug. 22, 2009
Re: [Pharo-project] over bloated image workaround
by Daniel P Zepeda
On Aug 21, 2009, at 4:25 PM, Mariano Martinez Peck wrote:
> Hi folks: Sometimes, my Pharo images grows a lot. Size like 80MB or
> similar. Marcelo Cortez gave me a couple of changes (fileouts) that
> make my images go back to their original size or similar. For
> example, it was tasted in a 87 MB and after this changes and this
> stuff, it become in 24 MB. The same with another one from 65M to 35M.
>
> If you have a big Pharo image, save a copy and do this tests:
>
> 1) File in all the changes I attach.
There is nothing attached.
>
> 2) Go to a workspace and evaluate:
>
> OBDPAbstract reinitAllCache.
> LocalSends allInstances first initialize.
> EventManager resetMap.
> Smalltalk garbageCollect.
>
> Did this make your image too much smaller?
>
> When I evaluate SystemNavigation default obsoleteBehavio size I
> get a a number of 3 digits.
>
> Perhaps it is a matter with the OB. I guess it generates dependences
> while you are developing a class and it creates on the fly an
> obsolteClassXXX when there is something that doesn't exist. Then
> they are processes and they are never garbage collected.
>
> When SmalltalkImage tries to fix the obsoletes delegates to the
> literal frames of the compiled methods so that to search references
> to the obsoletes. But references were not gone because they weren't
> garbage collected. The same method finishes with error if the
> obsoletes > 0.
>
> Does anyone has a comment for this?
Well, the only comment I have is that this procedure should go on the
snippets page no the Pharo Project website. I know you are after a
deeper fix, but others will have to provide that, as this is way over
my head at this time.
>
>
> I tried to do my best to write in English from what Marcelo told me
> and from what I can understand from the changesets.
You did a good job, I understand the problem conceptually from your
description. I just don't have any idea how to fix that.
>
>
> Best,
>
> Mariano _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aug. 22, 2009