[Cuis] Wrapper for file access in different Smalltalk dialects

Masashi UMEZAWA ume at blueplane.jp
Sat Aug 22 08:15:43 CDT 2015


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
>>>>>>>
>>>>>>>
>>>>
>



-- 
[:masashi | ^umezawa]




More information about the Cuis mailing list