Yes, I heard from several people that they could not get a PUL license. This is 
sad :(.

 

But I don’t understand why there should be a legal problem. You are using an 
open source tool (Smalltalk transform) to read another open source project 
(PDFtalk) to generate open source code for another open source platform 
(Pharo). I think that this should be possible with a PUL version. (But I am not 
lawyer…)

 

I still would be happy to hear more about your port.

Very helpful would also be some code review and suggestions on how to do things 
better, especially the meta data and “package” conventions in Pharo.

 

Happy hacking,

                Christian

 

 

Von: stephane ducasse <stephane.duca...@inria.fr> 
Gesendet: Sonntag, 27. März 2022 22:17
An: Any question about pharo is welcome <pharo-users@lists.pharo.org>
Betreff: [Pharo-users] Re: [Esug-list] [PDFtalk] Porting to non-namespace 
Smalltalks

 

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

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

1.      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 :)





1.      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 :). In 
contrast, Pharo has quite a different style with a love for camel-casing :) 
(#timeStamp, #nanoSeconds etc.). 
2.      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

 

S

 

Reply via email to