[squeak-dev] FileSystem

Colin Putney colin at wiresong.com
Tue May 28 00:27:53 UTC 2013


On Mon, May 27, 2013 at 2:45 PM, Chris Muller <ma.chris.m at gmail.com> wrote:


>  Colin, may we please not be at odds here?  I'm on your side.
>

I'm sorry, I didn't mean for that post to be so confrontational. I misread
your post as shifting the goal-posts so that FileSystem wouldn't be
acceptable unless it performs like your tuned-for-Banyan additions to
FileDirectory.

There's certainly room to optimize the tree-walking code in Filesystem, so
we may be able to meet your needs that way.

On the other hand, there are layers of indirection in Filesystem that
aren't present in FileDirectory. Filesystem works with many kinds of
directory trees—on disk, in-memory, inside a zip file, inside a git
repository etc. It also has whole-tree operations that need to be able to
customize the tree walking algorithm. For example, copying a tree needs to
visit directories before their contents, while deleting a tree needs to
visit directories after their contents. So from the point of view of
Filesystem, #directoryTreeDo: is *not* a very general operation, it's quite
specific, and tuned for a particular use-case. It may not be possible to
optimize Filesystem's tree-walking code to the same level of memory
efficiency without sacrificing generality.

But that's not a show-stopper! We could make a method like
#directoryTreeDo: just for Banyan, or Banyan could keep on using
FileDirectory. It's not like FileDirectory would be removed in 4.5, and
even when it finally does get removed, it would still be available as a
compatibility package.

Again, my apologies for the over-reaction.

Colin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130527/5830ff54/attachment-0001.htm


More information about the Squeak-dev mailing list