BTW about porting from VW, you see a friend of mine wanted to see how to help 
porting Siren to Pharo. 
Now this is not possible because he could not get a personal VW license. 

So even if people want to help pointing to a store database is equivalent to 
/dev/null for most people.
For example I cannot (and also does not for legal reason) run VW on my machine. 
Not talking about the new M1 I will get.

S

> On 27 Mar 2022, at 22:12, seasidebook <seasideb...@free.fr> wrote:
> 
> Hi christian 
> 
> I took the squeakValues60 becau se I thought that this is what you wanted 
> that we do.
> I should continue but I’m busy
> 
> 
> ahhh I did not know that you already did it. 
> Do you need help to package your changes?
> Because you can fork my repo and load your changes.
> 
> I got lost with the explanation of OrderedDictionary below because I’m dead 
> :) - worked too mcuh today.
> But what we can do is to package the one that is working for you under 
> http://github.com/pharo-container <http://github.com/pharo-container>
> and update the baseline to load it. 
> Alternatively we could see what is wrong in the pharo’s one. 
> 
> Now my brain decided to shut down :) so I need to sleep.
> 
> S
> 
>> Hi Stef,
>>  
>> Great! Thank you for your work.
>> Good example for the tonel format.
>>  
>> Which sources were you using?
>> How did you generate this? 
>> Do you use VW to create the output?
>>  
>>  
>> For the last ESUG (2.5 years ago – sigh), I already did the transformation 
>> for Values for Pharo. Thanks to you, I revised them and published the result 
>> on GitHub (https://github.com/PortingPDFtalk/PharoValues 
>> <https://github.com/PortingPDFtalk/PharoValues>) and added a Pharo porting 
>> page to the wiki (https://wiki.pdftalk.de/doku.php?id=pharoport 
>> <https://wiki.pdftalk.de/doku.php?id=pharoport>). Please have a look. 
>>  
>> The fileouts are for Pharo versions 6.1, 7.0, 8.0 and 9.0 (7.0 to 9.0 have 
>> identical sources). The sources load without errors or warnings and all 27 
>> tests pass.
>>  
>>  
>> Some of the problems in your code have to do with OrderedDictionary as 
>> superclass of Valuemap. When I did my first round on the port, I had a class 
>> OrderedDictionary in my Values implementation. Unfortunately, 
>> OrderedDictionary does not work as I expected.
>>  
>>                 (OrderedDictionary with: #a -> 1 with: #b -> 2) = 
>> (OrderedDictionary with: #b -> 2 with: #a -> 1)
>>  
>> answers true, although the order is different. Therefore, it cannot be used 
>> as value.
>>  
>> Instead of raising this issue on a Pharo list (sorry), I decided to use a 
>> new name: Valuemap. 
>> A Valuemap is an OrderedDictionary where the order is relevant for 
>> comparisons. 
>> Squeak had the same problem where it was considered a bug and fixed. 
>> While I subclass Dictionary for Valuemap in Pharo, I can use 
>> OrderedDictionary in Squeak. This removes a lot of methods from the fileout.
>>  
>>  
>> A remark about the renamings you propose in your commit comment.
>> Thank you for the suggestions, but I decline for two reasons:
>> Names for classes, methods and variables are very important to me. Naming is 
>> part of the creative expression of the code author. I do think much about 
>> the right names and therefore, I claim the liberty and right to name things 
>> according to my feeling.
> 
> Yes now you may want to read an excellent book that just came out: 
> http://books.pharo.org <http://books.pharo.org/> Pharo with Styles.
> If you want to have future contributors this is good to follow good practices
> Else I’m quite sure that you would not like a French Pharo :)
> 
>> Maybe my names are a bit influenced by German, where we tend to have longer 
>> names. Therefore, my names are not so heavily camel-cased J. In contrast, 
>> Pharo has quite a different style with a love for camel-casing J 
>> (#timeStamp, #nanoSeconds etc.). 
>> From a practical view, it would be a lot of work to rename all references to 
>> the items in this basic systems library. There is a lot of code out there 
>> using it. Of course, if there is a good reason for a renaming (like a 
>> spelling mistake or misleading name), it should be done and I am 
>> appreciating any suggestions.
> 
> A pattern that we use is the following. 
> You introduce a new name and let the old one as an empty subclass. Like that 
> you can migrate and still be backward compatible. 
> 
> For the method level refactoring we have a gorgeous mechanism that 
> automatically rewrite client code….
> 
> http://www.jot.fm/issues/issue_2022_01/article1.pdf 
> <http://www.jot.fm/issues/issue_2022_01/article1.pdf>
> 
> S

Reply via email to