[Pharo-users] Porting from VW 8.3 to Pharo

2022-08-03 Thread Shaping
Hi Christian.

 

I’m trying to port from VW 8.3 to Pharo.  Is there a detailed algorithm in 
addition to the Workflow section mentioned here?:

 

https://wiki.pdftalk.de/doku.php?id=pdftalknonnamespacefileout

 

1.  generate the source for the target dialect from VisualWorks with the 
defined code transformations. Fix problems so that there are no errors or 
warnings.

…

How does one generate the source (run the transformation)?  Where are the 
aforementioned “defined code transformations”,   Is there an example of how to 
setup the declarative template needed to map VW namespace names to Pharo class 
prefixes?

 

I loaded the following packages into my VW 8.3 image:

 

Values Project

Values

Values Fileout Pharo

Values Testing

Values Tools

Values Tools Testing

 

Pharo Fileout Values

Pharo Transform

 

Smalltalk Transform Project

Smalltalk Transform TestBundle

Smalltalk Transform Tests

Smalltalk Transform

Smalltalk Transform Model

Smalltalk Transform Testing

Smalltalk Transform TestPackage

Smalltalk Transform Tools

 

Any package not updated recently (in the last few months) I didn’t load.  

Did I miss anything?

2. Port the Values package. This is easy, since no namespaces are involved.

 

This first instruction after VW package setup says to port the contents of the 
Values package from VW to Pharo.  Do you mean manually?  Probably not.

 

I feel like I’ve missed the main details of how to start the transformation.  
I’d like to do a small fully contained test package with no external 
dependencies as a first test, probably my Magnitude or Collection packages.  
Suggestions are welcome.  That’s for do this and sharing it.

 

Shaping 

 

From: christian.haider  
Sent: Wednesday, 22 June, 2022 05:42
To: pharo-users@lists.pharo.org
Subject: [Pharo-users] [PDFtalk] second fileOut for Squeak and Pharo

 

With help from the community some issues were fixed which improved the test 
statistics nicely. 
Check it out: 
https://wiki.pdftalk.de/doku.php?id=portingblog#second_pdftalk_fileout_for_squeak_and_pharo
 

Thanks to everybody involved! 

Happy hacking, 
Christian 



[Pharo-users] FW: Porting from VW 8.3 to Pharo

2022-08-03 Thread Shaping
Hi Christian.

 

I’m trying to port from VW 8.3 to Pharo.  Is there a detailed algorithm in 
addition to the Workflow section mentioned here?:

 

https://wiki.pdftalk.de/doku.php?id=pdftalknonnamespacefileout

 

1.  generate the source for the target dialect from VisualWorks with the 
defined code transformations. Fix problems so that there are no errors or 
warnings.

…

How does one generate the source (run the transformation)?  Where are the 
aforementioned “defined code transformations”,   Is there an example of how to 
setup the declarative template needed to map VW namespace names to Pharo class 
prefixes?

 

I loaded the following packages into my VW 8.3 image:

 

Values Project

Values

Values Fileout Pharo

Values Testing

Values Tools

Values Tools Testing

 

Pharo Fileout Values

Pharo Transform

 

Smalltalk Transform Project

Smalltalk Transform TestBundle

Smalltalk Transform Tests

Smalltalk Transform

Smalltalk Transform Model

Smalltalk Transform Testing

Smalltalk Transform TestPackage

Smalltalk Transform Tools

 

Any package not updated recently (in the last few months) I didn’t load.  

Did I miss anything?

2. Port the Values package. This is easy, since no namespaces are involved.

 

This first instruction after VW package setup says to port the contents of the 
Values package from VW to Pharo.  Do you mean manually?  Probably not.

 

I feel like I’ve missed the main details of how to start the transformation.  
I’d like to do a small fully contained test package with no external 
dependencies as a first test, probably my Magnitude or Collection packages.  
Suggestions are welcome.  Thanks for doing this and sharing it.

 

Shaping 

 

From: christian.haider mailto:christian.hai...@smalltalked-visuals.com> > 
Sent: Wednesday, 22 June, 2022 05:42
To: pharo-users@lists.pharo.org  
Subject: [Pharo-users] [PDFtalk] second fileOut for Squeak and Pharo

 

With help from the community some issues were fixed which improved the test 
statistics nicely. 
Check it out: 
https://wiki.pdftalk.de/doku.php?id=portingblog#second_pdftalk_fileout_for_squeak_and_pharo
 

Thanks to everybody involved! 

Happy hacking, 
Christian 



[Pharo-users] Re: FW: Porting from VW 8.3 to Pharo

2022-08-03 Thread christian.haider
Hi Shaping,

 

great! :)

 

Answers inline… 

 

 

Von: Shaping  
Gesendet: Mittwoch, 3. August 2022 16:03
An: 'Any question about pharo is welcome' ; 'Pharo 
Development List' 
Betreff: [Pharo-users] FW: Porting from VW 8.3 to Pharo

 

Hi Christian.

 

I’m trying to port from VW 8.3 to Pharo.  Is there a detailed algorithm in 
addition to the Workflow section mentioned here?:

 

https://wiki.pdftalk.de/doku.php?id=pdftalknonnamespacefileout

 

1.  generate the source for the target dialect from VisualWorks with the 
defined code transformations. Fix problems so that there are no errors or 
warnings.

…

No. The page is a bit outdated and reflected the beginning of the project, I 
will go over it and update the description.

How does one generate the source (run the transformation)?  Where are the 
aforementioned “defined code transformations”,   Is there an example of how to 
setup the declarative template needed to map VW namespace names to Pharo class 
prefixes?

 

I loaded the following packages into my VW 8.3 image:

 

Values Project Yes

Values

Values Fileout Pharo

Values Testing

Values Tools

Values Tools Testing Automatic

 

Load PDFtalk Project bundle. Since the main target is PDFtalk. Values (and 
PostScript) are just bycatch.

 

Pharo Fileout Values No, this package has been renamed to [Pharo Fileout 
PDFtalk]. Load this.

Pharo Transform No, not separate. This is part of the Transform Project.

 

Smalltalk Transform Project Yes

Smalltalk Transform TestBundle

Smalltalk Transform Tests

Smalltalk Transform

Smalltalk Transform Model

Smalltalk Transform Testing

Smalltalk Transform TestPackage

Smalltalk Transform Tools Automatic

 

Any package not updated recently (in the last few months) I didn’t load.  

Did I miss anything?

 

Yes. The ideal setup from a virgin image is:

Load {Values Project] bundle

Load {PDFtalk Project} bundle

Load {Smalltalk Transform Project} bundle

Load [Pharo Fileout PDFtalk] package

Save, done

To transform Values do: “Pharo100 fileOutValues”

The [Pharo Fileout PDFtalk] package includes the latest Values transformations.

I am thinking about a better modularization…

 

Also, the wiki is a bit out of control. It really needs some restructuring.

In the cites wiki page, there is a link to a blog where I record the changes. 
This might be informative.

2. Port the Values package. This is easy, since no namespaces are involved.

 

This first instruction after VW package setup says to port the contents of the 
Values package from VW to Pharo.  Do you mean manually?  Probably not.


No, no. This has been finished in March. 


For each dialect, I have a GitHub repository where I release important 
versions:   
https://github.com/PortingPDFtalk/PharoPDFtalk. You can find the working port 
as first release “ 
 Working 
version“. There you can download the ported Values fileout with the exact 
description with which versions of what it was created.


This should be a good starting example.


I feel like I’ve missed the main details of how to start the transformation.  
I’d like to do a small fully contained test package with no external 
dependencies as a first test, probably my Magnitude or Collection packages.  
Suggestions are welcome.  Thanks for doing this and sharing it.

 

If I may suggest, I would look at the transformations on the class side of the 
SmalltalkTransform.Pharo class: methods #ValuesProject and #PDFtalkProject (I 
know, some would detest, that I start methods sometimes with a capital letter…).

To get a feel for the machinery, you could debug through “Pharo100 
fileOutValues” (for Pharo 10.0).

 

As said, Values don’t use namespaces. To see what is involved there, you could 
look at #PDFtalkProject for the name mapping.

But beware! The PDFtalk transformation is not finished yet. Still, you could 
get some inspiration and can probably reuse some of the rules.

 

Shaping 

 

Great that you are trying to use the transformation project. The more use, the 
better it should get.

Please share your questions and insights (and successes :)).

 

Happy hacking,

Christian

 

From: christian.haider mailto:christian.hai...@smalltalked-visuals.com> > 
Sent: Wednesday, 22 June, 2022 05:42
To: pharo-users@lists.pharo.org  
Subject: [Pharo-users] [PDFtalk] second fileOut for Squeak and Pharo

 

With help from the community some issues were fixed which improved the test 
statistics nicely. 
Check it out: 
https://wiki.pdftalk.de/doku.php?id=portingblog#second_pdftalk_fileout_for_squeak_and_pharo
 

Thanks to everybody involved! 

Happy hacking, 
Christian 



[Pharo-users] Re: Porting from VW 8.3 to Pharo

2022-08-03 Thread stephane ducasse
Hi

If in the process you discover easy changes on the pharo side that 
can be either integrated in Pharo or packages from the Pharo side to help 
migration let us know. 
We would like to help but we are really really super full.
I tried to help to package values but I did not understand the process (I know 
the pharo way for sure to define baseline). 
Now a part of the team is really concentrated to improve the VM (we would like 
to have a 1.5 speed up) but 
it requires work and concentration. We are also working on permanent space and 
better memory management
thanks for lifeware sponsoring. 
Still let us know.

Shaping about the spec questions esteban is on vacation and when he will 
reappear he will check the libgit change impacting us. 
Then the spec aspects.

S

> On 3 Aug 2022, at 16:03, Shaping  wrote:
> 
> Hi Christian.
>  
> I’m trying to port from VW 8.3 to Pharo.  Is there a detailed algorithm in 
> addition to the Workflow section mentioned here?:
>  
> https://wiki.pdftalk.de/doku.php?id=pdftalknonnamespacefileout 
> 
>  
> generate the source for the target dialect from VisualWorks with the defined 
> code transformations. Fix problems so that there are no errors or warnings.
> …
> 
> How does one generate the source (run the transformation)?  Where are the 
> aforementioned “defined code transformations”,   Is there an example of how 
> to setup the declarative template needed to map VW namespace names to Pharo 
> class prefixes?
>  
> I loaded the following packages into my VW 8.3 image:
>  
> Values Project
> Values
> Values Fileout Pharo
> Values Testing
> Values Tools
> Values Tools Testing
>  
> Pharo Fileout Values
> Pharo Transform
>  
> Smalltalk Transform Project
> Smalltalk Transform TestBundle
> Smalltalk Transform Tests
> Smalltalk Transform
> Smalltalk Transform Model
> Smalltalk Transform Testing
> Smalltalk Transform TestPackage
> Smalltalk Transform Tools
>  
> Any package not updated recently (in the last few months) I didn’t load.  
> Did I miss anything?
> 2. Port the Values package. This is easy, since no namespaces are involved.
> 
>  
> This first instruction after VW package setup says to port the contents of 
> the Values package from VW to Pharo.  Do you mean manually?  Probably not.
>  
> I feel like I’ve missed the main details of how to start the transformation.  
> I’d like to do a small fully contained test package with no external 
> dependencies as a first test, probably my Magnitude or Collection packages.  
> Suggestions are welcome.  Thanks for doing this and sharing it.
>  
> Shaping 
>  
> From: christian.haider  > 
> Sent: Wednesday, 22 June, 2022 05:42
> To: pharo-users@lists.pharo.org 
> Subject: [Pharo-users] [PDFtalk] second fileOut for Squeak and Pharo
>  
> With help from the community some issues were fixed which improved the test 
> statistics nicely. 
> Check it out: 
> https://wiki.pdftalk.de/doku.php?id=portingblog#second_pdftalk_fileout_for_squeak_and_pharo
>  
> 
>  
> 
> Thanks to everybody involved! 
> 
> Happy hacking, 
> Christian 



[Pharo-users] Re: FW: Porting from VW 8.3 to Pharo

2022-08-03 Thread Shaping
[…]

How does one generate the source (run the transformation)?  Where are the 
aforementioned “defined code transformations”,   Is there an example of how to 
setup the declarative template needed to map VW namespace names to Pharo class 
prefixes?

 

I loaded the following packages into my VW 8.3 image:

 

Values Project Yes

Values

Values Fileout Pharo

Values Testing

Values Tools

Values Tools Testing Automatic

 

Load PDFtalk Project bundle. Since the main target is PDFtalk. Values (and 
PostScript) are just bycatch.

 

Pharo Fileout Values No, this package has been renamed to [Pharo Fileout 
PDFtalk]. Load this.

Pharo Transform No, not separate. This is part of the Transform Project.

 

Smalltalk Transform Project Yes

Smalltalk Transform TestBundle

Smalltalk Transform Tests

Smalltalk Transform

Smalltalk Transform Model

Smalltalk Transform Testing

Smalltalk Transform TestPackage

Smalltalk Transform Tools Automatic

 

 

Yes, I just loaded the head packages and the dependencies were also loaded.  
Thanks for trimming that down for me.

 

Any package not updated recently (in the last few months) I didn’t load.  

Did I miss anything?

 

Yes. The ideal setup from a virgin image

 

Ok.  I don’t have a virgin image.   I have a very non-virgin image, about 27 
years of development I’m trying to port to Pharo.  I don’t yet have a specific 
interest in the PDFtalk, though I do see a need for PDF generation later, and 
will probably revisit that.  For now, I just want my own stuff to run in Pharo.

 

is:

Load {Values Project] bundle

Load {PDFtalk Project} bundle

Load {Smalltalk Transform Project} bundle

Load [Pharo Fileout PDFtalk] package

Save, done

 

Okay, so do I understand correctly that I need to include the PDFtalk stuff 
even if I’m not interested in PDFtalk, because that’s where a lot of the 
Smalltalk transformation machinery lives?  Or is the PDFtalk just being used as 
an example for how to do a massive transformation?  Or Both?

 

 

To transform Values do: “Pharo100 fileOutValues”

The [Pharo Fileout PDFtalk] package includes the latest Values transformations.

I am thinking about a better modularization…

 

Also, the wiki is a bit out of control. It really needs some restructuring.

In the cites wiki page, there is a link to a blog where I record the changes. 
This might be informative.

2. Port the Values package. This is easy, since no namespaces are involved.

 

This first instruction after VW package setup says to port the contents of the 
Values package from VW to Pharo.  Do you mean manually?  Probably not.


No, no. This has been finished in March. 


For each dialect, I have a GitHub repository where I release important 
versions:   
https://github.com/PortingPDFtalk/PharoPDFtalk. You can find the working port 
as first release “ 
 Working 
version“. There you can download the ported Values fileout with the exact 
description with which versions of what it was created.


This should be a good starting example.


Why do I need any new code installed in Pharo before I begin the 
transformation, if I’m transforming code from VW to pharo?  I’m not 
understanding the basic constraints of the problem, even when the detailed 
steps are clear. 


I’ve done these steps so far:


1. Went to   
https://github.com/PortingPDFtalk/PharoPDFtalk.


2. Saved down PDFtalk.Pharo100.st into /pharo-local/Smalltalk-Transformation. (I figured that was a good 
place to save it.  If anyone disagrees, or has a better or more conventional 
idea about where files should be saved, please say so.  I setup a Pharo Git 
repo and played with it briefly for the first time yesterday.  I’ve used Pharo 
off an on for 16 years, but this is the first time I’m making a serious effort 
to manage source, and not throw away what I’m working on.)


3.  Filed-in PDFtalk.Pharo100.st.  This went on for about 7 minutes or so.  I 
have a hundreds if not over a thousand classes showing in Epicea.   Is there 
anyway to get Epicea to give me a count of changes with a time-range filter?   


4.  Deleted (forgot) yesterday’s, old Main practice-repo from both the image 
and the drive, and made a new one.  I need to add to Main all the packages I 
just filed-in, but I don’t see an efficient way to do that.  I would like to 
use the Add Package button, but this gives a filtered list of available 
packages.  I can filter subgroups, and then individually select each of the 
checkboxes to the left of each package (there is no Ctrl-A [select all] option 
here, which seems to be a strange omission given the potentially large number 
of packages involved).  I see lots of prefixes for the classes just loaded.  I 
could easily miss something if I filter/select/add on