[squeak-dev] FileSystem (was: About (backwards) Compatibility)

H. Hirzel hannes.hirzel at gmail.com
Thu Dec 13 11:34:09 UTC 2012


Tim,

I like the points you raise.

On 12/13/12, tim Rowledge <tim at rowledge.org> wrote:
>
> On 12-12-2012, at 6:59 PM, Chris Muller <asqueaker at gmail.com> wrote:
>>
>>  I just think its worth asking, though,
>> whether a "core" system should provide that rich a model
>> out-of-the-box or instead just a bland, one-layer-above-the-primitives
>> lightweight model ready to be easily wrapped by the user's _own_ rich
>> model of a FileSystem.

You mean,

a) Colin's FileSystem should be wrapped around FileDirectory?
    (The is no reference to FileDirectory from any of the new FS
packages, This would maintain backward compatibility and at the same
time give a more abstract view.
)

Or

b) Colin's FileSystem wrapped around a low-level replacement of FileDirectory?
plus a compatibility layer of top which gives back FileDirectory


> My experience suggests that the smart approach is to build a core system
> that has the parts of the rich model that are needed to support the stuff
> you want in the core
> and to make sure that the rest can be easily and non-destructively added as
> part of building up the system.


Yes, indeed.

> That both allows and discourages the
> roll-your-own-in-a-hurry; which seems a good compromise between encouraging
> smart re-use of available code and allowing the truly nuts to invent
> something even better on the odd occasions they don't utterly crater.
>
> There *should* be a way to provide a compatibility layer of
> fake-FileDirectory nastiness over the top of a nice FileSystem.


Yes,

Marcus Denker mentions on the Pharo list that this might be an option
for Pharo to do

http://forum.world.st/To-try-out-FileSystem-in-2-0-which-download-td4649945.html#a4650038
(full citation see below)


> It really is
> about time a good clean design got to have a chance;

Yes, and the inclusion of Colin's FileSystem into Squeak is planned
for 4.5 as I
understand the minutes of the board meetings.


> there's been way too
> much crapulence in FileDirectory over the decades.

Yes.

>I should know - I wrote a
> fairly large part of it, several times in fact, and always because nobody
> wanted to make a change to a good system.
Grate to have you still around here.

In the meantime the attitude has changed and for now (or better early
2013) the addition
of FileSystem is planned.

As of now just a SqueakMap Squeak 4.4 entry for the load script of
FileSystem might do the job. Could anybody take this on please?


Colin writes that the FileSystem implementation he has been working on
for many years  (

http://wiresong.ca/filesystem/ )
is pretty close to the Pharo version which is a fork of it.

Colin and the Pharo programmers recently did a sync as Colin writes in
http://lists.squeakfoundation.org/pipermail/squeak-dev/2012-November/166519.html

A easyt to read tutorial for FileSystem is here
 http://pharobooks.gforge.inria.fr/PharoByExampleTwo-Eng/latest/FileSystem.pdf


To load FileSystem into Squeak

(Installer wiresong project: 'mc')
  addPackage: 'FS-Core';
  addPackage: 'FS-Disk';
  addPackage: 'FS-Memory';
  addPackage: 'FS-AnsiStreams';
  addPackage: 'FS-Zip';
 "addPackage: 'FS-Xtreams';"
  addPackage: 'FS-FileStream';
  addPackage: 'FS-Tests-Core';
  addPackage: 'FS-Tests-AnsiStreams';
 " addPackage: 'FS-Tests-Xtreams'; "
  addPackage: 'FS-Tests-Zip';
  addPackage: 'FS-Tests-Disk';
  addPackage: 'FS-Tests-FileStream';
  install.

does the job
(script taken from http://lists.squeakfoundation.org/pipermail/squeak-dev/2012-

September/165822.html)

Two packages which depend on the presence of Xtreams are not loaded.
As for this thread Xtreams is a different issue.

FileSystem Testrunner results
300 tests, 297 passes, 3 errors.


--Hannes


More information about the Squeak-dev mailing list