[Cuis] Wrapper for file access in different Smalltalk dialects

Juan Vuletich juan at jvuletich.org
Mon Aug 24 08:42:46 CDT 2015


Hi Masashi,

Ok. #tryReadStream is reasonable. Or maybe #readStreamOrFail.

Any other suggestion? Preferences?

Thanks,
Juan Vuletich

On 8/22/2015 10:15 AM, Masashi UMEZAWA wrote:
> Hi Juan,
>
> Yes, I'm concerning about backward-compatibility.
> FmFileEntry>>#readStream has been used long. So I would prefer just
> adding new APIs.
>
> Best regards,
>
>> I guess I would prefer #readStream for the basic, raising exceptions api,
>> and maybe #readStreamNoFail or #readStreamOrEmpty or such for the "exception
>> eating api" . In any case it is your call, I understand there is back
>> compatibility to care about, and I'll be happy with your choice.
>>
>> Cheers,
>> Juan Vuletich
>>
>>
>>> 2015-07-27 23:58 GMT+09:00 Juan Vuletich<juan at jvuletich.org>:
>>>> 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