That's a lot of work done for the compatibility. I noticed some other issues in the classes as loaded from the https://github.com/mumez/FileMan page - for example there seem to be a lot of trivially duplicated methods between FmFileIOAccessor & FmFileDirectoryFileIOAccessor, and some methods that appear to ignore important things.
I dunno. File systems & file names etc might even be harder than Time & Dates.
I really should back out of the rabbit hole and get back to what I was meant to be doing...
On 2024-04-08, at 3:29 PM, lewis@mail.msen.com wrote:
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
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful Latin Phrases:- Aio, quantitas magna frumentorum est. = Yes, that is a very large amount of corn.