Henry, I would not toss your first thought too quickly. Staying clear of finalization is a big benefit. I have never been able to trust it (for files) on Dolphin, which has a remarkably better implementation of weak collections and finalization than Squeak/Pharo.
Bill -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Henrik Johansen Sent: Tuesday, February 02, 2010 5:08 AM To: [email protected] Subject: Re: [Pharo-project] readOnlyFileNamed:do: vs. ... Scratch that. It's what I would have done with a fileNamed:do: selector :) The main difference is readOnlyFileNamed:do: does not evaluate the block if file creation returns nil, while the second code errors out with stream dnu setConverterFromCode if the file could not be opened for any reason. Cheers, Henry Den 02.02.2010 11:02, skrev Henrik Johansen: > My guess is he uses a method which does not register the file in > FileRegistry, thus avoids a WeakDict cleanup when he closes the file > after the block has been evaluated. > (eg readOnlyFileNamed:do: vs. readOnlyFileNamed:) Thus, a lot of time > is saved from not doing weak registry cleanup. > (Which can be a large chunk of the total time when you do many small > operations). > > Cheers, > Henry > > Den 02.02.2010 10:50, skrev Stéphane Ducasse: > >> Nicolas I saw that in squeak you changed and use readOnlyFileNamed:do: >> I like it but I would like to understand what is the key advantage >> >> >> fromFileNamed: aName >> FileStream readOnlyFileNamed: aName do: [:stream | >> stream setConverterForCode. >> self fileInFrom: stream] >> >> fromFileNamed: aName >> | stream | >> stream := FileStream readOnlyFileNamed: aName. >> stream setConverterForCode. >> [self fileInFrom: stream] ensure: [stream close]. >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> >> >> > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
