If you have a copy of OSProcess and CommandShell loaded in your Squeak image, take a look at senders of #useFileMan. These methods are attempting to maintain compatibility across Cuis (FileMan), Pharo (FileSystem), and Squeak (default for OSProcess/CommandShell).

The differences between Cuis and Squeak are not great, but if the goal was to move trunk to FileMan as the preferred interface, then the conversion would need to be carefully managed in order to keep external packages functioning as the trunk moved to the new file system interface.

Dave


On 2024-04-08 19:54, Tim Rowledge wrote:

Aside from the issue of no-file-means-nil vs no-file-means-object there is an interestingly tricky thing in that FileMan more explicitly splits file entry objects and directory entry objects. Squeak uses DirectoryEntry and makes an instance of a suitable subclass (which is one of the things making no-file-means-object tricky you can't make the right thing if it isn't there to check) whereas FileMan exposes #asDirectoryEntry such that it makes an object that only works for directories, and a asFileEntry similar for files.

All of which is making it hard to think of nice clean ways to make trunk code that will keep working properly if FileMan is installed.

tim
--
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: CWB: Carry With Borrow