[squeak-dev] Re: Splitting an existing package

Chris Muller ma.chris.m at gmail.com
Wed Jul 17 14:49:25 UTC 2013


> Compression depends on Files because of things like ZipArchive. That's
> a fairly reasonable dependency.
>
> Files depends on Compression because CompressedSourceStream and
> FileStream use GZipReadStream and GZipWriteStream. Other than causing
> a cycle, this dependency's not terrible either.

Maybe we should try to think of lower-level packages as the ones
closer to the OS.  Remember how Smalltalk was supposed to make OS's
obsolete by giving access to OS facilities via the programming API.

Thinking from that angle, which one, either Files or Compression,
would be the one that should be lower level?

IMO, it's Files.  Accessing the file system is something that should
be the responsibility of a single, lower-level package and
*compressing* things is an "Application-level" thing.

There is no inherent requirement to compress anything, it's an
app-level resposnsibility.  Therefore, I don't see it as reasonable
that Files should depend on anything in Compression.

The methods in FileStream which reference GZipReadStream and
GZipWriteStream should be moved to Compression.


More information about the Squeak-dev mailing list