[Cuis] Wrapper for file access in different Smalltalk dialects

Juan Vuletich juan at jvuletich.org
Mon Jul 27 09:58:27 CDT 2015


Hi Masashi,

Recently we found that in FileMan, if we do

'inexistentFile' asFileEntry readStream

we get an empty readStream.

I think it is better to throw the #fileDoesNotExistException , as 
FileDirectory did, and let the user handle the exception appropriately. 
But I would not want to break compatibility with FileMan, as the main 
purpose of FileMan is to give compatibility amongst dialects.

Are there good reasons to avoid the exception? Should we add another 
method, besides #readStream when we want a readStream strictly on 
existing file contents?

Thanks,
Juan Vuletich


On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
> Hello Juan,
>
> Thank you for the patches and more tests! I'll adapt those updates for
> other FileMan ports.
>
> Best regards,
>
> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<juan at jvuletich.org>:
>> Hi Masashi,
>>
>> I was trying FileMan tests today and I saw they create some folders in my
>> drive. The names looked a bit strange, so I took a closer look and found a
>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>> creating
>>        subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>> it created
>>         subDir/bbb/ccc/eee/ggg/test!
>>
>> So I wrote a few more tests on the issues I saw, and teaked the code to make
>> them pass. The result is attached, and I think is useful for all ports of
>> FileMan.
>>
>> Thanks,
>> Juan Vuletich
>>
>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>> Hi all,
>>>
>>> I think it is nice if FileMan is on the core package repository.
>>>
>>> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>> methods of them.
>>>
>>> So we can gradually adopt FileMan interfaces and trim the
>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>
>>> Another way of cleaning-up the file-related classes is to port
>>> FileSystems to Cuis.
>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>> be an overkill.
>>>
>>> Best regards,
>>>
>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<juan at jvuletich.org>:
>>>> Hi Folks,
>>>>
>>>> I apologize for talking before taking even a quick look, but anyway, We'd
>>>> take a good look at this. And seriously consider replacing files stuff in
>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>
>>>> Thoughts?
>>>>
>>>> Masashi-san: opinions?
>>>>
>>>> Thanks,
>>>> Juan Vuletich
>>>>
>>>>
>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>> Below are the comments from the FileMan package.
>>>>>
>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>> package in Pharo?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>> I represent a single file entry (including directory).
>>>>> You can write data by #fileContents: , and read the data by
>>>>> #fileContents.
>>>>> ---
>>>>> mu 11/6/2006 20:21!
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>> I represent a single file directory.
>>>>> I implement various directory specific behaviors.
>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>> ---
>>>>> mu 11/6/2006 20:21
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>> I am an accessor to the low level file IO.
>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>> dialects.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>>>> This is a simple example for adding special behaviors to
>>>>> FmDirectoryEntry.
>>>>> I backup file contents automatically, while users are not conscious
>>>>> about
>>>>> that.
>>>>> Usage:
>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>> dir at: 'text' put: 'abc'.
>>>>> dir at: 'text' put: 'def'.
>>>>> (dir at: 'text') inspect. "def"
>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>> This is a simple example for adding special behaviors to
>>>>> FmDirectoryEntry.
>>>>> I put and get file contents as gzipped, while users are not conscious
>>>>> about that.
>>>>> Usage:
>>>>> | dir |
>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>> (dir binaryAt: 'bin') inspect.
>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>> (dir at: 'text') inspect.
>>>>> I would be useful for storing/loading big contents in a simple
>>>>> dictionary-like manner.
>>>>>
>>>>>
>>>>>
>>>>> On 5/17/15, H. Hirzel<hannes.hirzel at gmail.com>    wrote:
>>>>>> Hello Masashi-san
>>>>>>
>>>>>> I'd like to come back to your FileMan package
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>
>>>>>> and ask a question.
>>>>>>
>>>>>> Is this package a port from somewhere or did you write it from scratch?
>>>>>>
>>>>>> Some background information is appreciated.
>>>>>>
>>>>>> There is no description
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>
>>>>>> Thank you in advance
>>>>>>
>>>>>> Hannes Hirzel
>>>>>>
>>>>>>
>>>>>> On 5/2/14, Masashi UMEZAWA<ume at blueplane.jp>    wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> Thank you for the kind words. I've just started Cuis on March, and I
>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers meeting. It
>>>>>>> was successful.
>>>>>>> Now I'm planning to port Folktale (telnet-base object shell), and SIXX
>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<garduino at gmail.com>:
>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>>>> aboard!!
>>>>>>>>
>>>>>>>>
>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<hannes.hirzel at gmail.com>:
>>>>>>>>
>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>
>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>
>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>    502"
>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>         'bounds owner submorphs fullBounds color extension'
>>>>>>>>>         versus
>>>>>>>>>        'owner submorphs location layoutNeeded layoutSpec properties'
>>>>>>>>> - layoutSpec
>>>>>>>>> - PackageInfo
>>>>>>>>> - version control with git
>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>> - your Unicode package
>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>> - https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>                 https://github.com/search?q=cuis-smalltalk
>>>>>>>>>
>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>
>>>>>>>>> --Hannes
>>>>>>>>>
>>>>>>>>> On 5/1/14, Ken Dickey<Ken.Dickey at whidbey.com>    wrote:
>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>> "H. Hirzel"<hannes.hirzel at gmail.com>    wrote:
>>>>>>>>>>
>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>
>>>>>>>>>>>          https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>
>>>>>>>>>> He should introduce himself.
>>>>>>>>>>
>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in
>>>>>>>>>> Tokyo:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>
>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>
>>>>>>>>>> Because of Unicode interest, I was made aware that recent font
>>>>>>>>>> tweaks
>>>>>>>>>> have
>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>
>>>>>>>>>> Masashi-san, would you care to tell us about yourself and what
>>>>>>>>>> people
>>>>>>>>>> there
>>>>>>>>>> think about Cuis?
>>>>>>>>>>
>>>>>>>>>> -KenD
>>>>> _______________________________________________
>>>>> Cuis mailing list
>>>>> Cuis at jvuletich.org
>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>
>>>
>
>





More information about the Cuis mailing list