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.SOn 27 Mar 2022, at 22:12, seasidebook <seasidebook@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 busyahhh 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-containerand 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.SHi 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) and added a Pharo porting page to the wiki (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��Pharo with Styles.If you want to have future contributors this is good to follow good practicesElse 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���.S