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

 

 

Happy hacking,

                Christian

 

 

Von: seasidebook <seasideb...@free.fr> 
Gesendet: Donnerstag, 24. März 2022 21:04
An: Any question about pharo is welcome <pharo-users@lists.pharo.org>; Pharo
Development List <pharo-...@lists.pharo.org>
Cc: christian.hai...@smalltalked-visuals.com
Betreff: Re: [Esug-list] [PDFtalk] Porting to non-namespace Smalltalks

 

Hi guys

 

I started to port Values to Pharo. 

If you want to give an hand my current effort is here.

 

 <https://github.com/Ducasse/PharoValues>
https://github.com/Ducasse/PharoValues

 

should migrate license and other stuff too. 

 

S





On 1 Mar 2022, at 19:08,  <mailto:christian.hai...@smalltalked-visuals.com>
christian.hai...@smalltalked-visuals.com wrote:

 

Hi all,

 

PDFtalk is a PDF library for VisualWorks[1]. The library has been ported
successfully to Gemstone[2].

Now, there is interest from companies in a port to Squeak and VA Smalltalk.

 

The project[3] has started and we are making good progress. 

The first step: porting the Values package.

This is easy, because there are no namespace issues.

 

The next step is to implement class renamings so that namespaced classes can
be renamed to global prefixed names.

 

Then PDFtalk with all its components, except for the UI, can be ported.

 

The porting approach is different to the traditional way of loading and
fixing.

The import files for other Smalltalks are generated from VisualWorks where
the code is transformed by declarative rules.

The approach is documented in [4].

 

I set up a GitHub organization for this project[5]. There, the fileouts for
each dialect are published (Gemstone, Squeak and VA Smalltalk so far), so
that people without VisualWorks can work with the code in their Smalltalk.

 

Also, I record and explain all steps of the porting process for Squeak in
great detail[6], so that people can follow it.

 

I would like to invite Smalltalkers from all dialects to take part in this
project.

The code transformations for Squeak will be quite similar to the ones needed
for Pharo and Cuis.

Therefore, each port to one Smalltalk will help the port to other
Smalltalks.

 

Any takers?

 

Happy hacking,

                Christian

 

 

[1]  <https://wiki.pdftalk.de/doku.php?id=start>
https://wiki.pdftalk.de/doku.php?id=start

[2]  <https://wiki.pdftalk.de/doku.php?id=pdftalk4gemstone>
https://wiki.pdftalk.de/doku.php?id=pdftalk4gemstone

[3]  <https://wiki.pdftalk.de/doku.php?id=pdftalknonnamespacefileout>
https://wiki.pdftalk.de/doku.php?id=pdftalknonnamespacefileout

[4]  <https://wiki.pdftalk.de/doku.php?id=smalltalktransform>
https://wiki.pdftalk.de/doku.php?id=smalltalktransform

[5]  <https://github.com/PortingPDFtalk> https://github.com/PortingPDFtalk

[6]  <https://wiki.pdftalk.de/doku.php?id=valuesportinglog>
https://wiki.pdftalk.de/doku.php?id=valuesportinglog

_______________________________________________
Esug-list mailing list --  <mailto:esug-l...@lists.esug.org>
esug-l...@lists.esug.org
To unsubscribe send an email to  <mailto:esug-list-le...@lists.esug.org>
esug-list-le...@lists.esug.org

 

Reply via email to