Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pdftalknonnamespacefileout [2022/03/26 15:22]
christian [Porting PDFtalk to non-namespace Smalltalk dialects]
pdftalknonnamespacefileout [2022/05/16 18:43] (current)
christian [Porting PDFtalk to non-namespace Smalltalk dialects]
Line 3: Line 3:
 Make the [[start#the_library|core PDFtalk library]] available to non-namespace Smalltalk dialects like Squeak, Pharo and VAST. This does not include the UI (the [[pdftalksnooper|Snooper]]), which needs to be fully rewritten in another dialect (namespaced or not). Make the [[start#the_library|core PDFtalk library]] available to non-namespace Smalltalk dialects like Squeak, Pharo and VAST. This does not include the UI (the [[pdftalksnooper|Snooper]]), which needs to be fully rewritten in another dialect (namespaced or not).
  
-The transformation approach to porting has been successful for [[pdftalk4gemstone|Gemstone]], which has namespaces. Translating all names in namespaces and their references to prefixed global names has not been done yet.+The transformation approach to porting has been successful for [[pdftalk4gemstone|Gemstone]], which has namespaces. Translating all names in namespaces and their references to prefixed global names has not been done at the time. This is the focus of the current work - see the **[[PortingBlog|blog]]** for the current development.
  
 Some information [[aboutPortingToNonNamespacedSmalltalks|about the project]] gives more details of the organisation and structure of the project. Some information [[aboutPortingToNonNamespacedSmalltalks|about the project]] gives more details of the organisation and structure of the project.
Line 18: Line 18:
 ===== General Approach ===== ===== General Approach =====
  
-  - Prepare +  - [[setupvisualWorks|setup the VisualWorks 8.3]] source image with PDFtalk and the tools
-    - [[setupvisualWorks|setup the VisualWorks 8.3]] source image +
-    - decide on target dialect version +
-    - decide on output format (Chunk?) +
-      - How to handle meta data (version, author, copyright, structure...) +
-      - How to handle pre- and post-load actions +
-      - Add some tests+
   - Port the ''Values'' package. This is easy, since no namespaces are involved.   - Port the ''Values'' package. This is easy, since no namespaces are involved.
   - Port the PDFtalk packages in order (you can skip PostScript until later)   - Port the PDFtalk packages in order (you can skip PostScript until later)
  
-===== Workflow =====+==== Workflow ====
  
 The workflow for the dialect specific engineer is straight forward:  The workflow for the dialect specific engineer is straight forward: 
-  - generate the source for the target dialect from VisualWorks with the defined code transformations +  - **generate the source** for the target dialect from VisualWorks with the defined code transformations. Fix problems so that there are no errors or warnings. 
-  - file in the source into the target dialect +  - **file in the source** into the target dialect. Fix problems so that there are no errors or warnings. 
-  - run the tests +  - **file in the tests** into the target dialect. Fix problems so that there are no errors or warnings. 
-  - find a problem +  - **run the tests** 
-  - fix the problem+  - **fix the problems**
     - by changing code transformations      - by changing code transformations 
     - by implementing missing functionality     - by implementing missing functionality
Line 41: Line 35:
       - change the tests to make them dialect specific       - change the tests to make them dialect specific
       - change the original source in VisualWorks       - change the original source in VisualWorks
-  - Repeat until all tests are passing  +  - **Repeat** until all tests are passing 
-then the port should be finished.+
  
 +Then the port should be finished.
  
-==== Namespaces ==== 
  
-[[namespaces|--> Namespaces]] 
  
 +===== How you can help =====
 +
 +This project is an experiment in somewhat new territory. The goal is to port software from one Smalltalk dialect to another with a declarative approach. This has been done only once for PDFtalk from VW to Gemstone. Now the port is attempted for many non-namespaced Smalltalks at once. The idioms and ways on how to do things are yet to be found and invented.
 +
 +For this, we need help.
 +==== Coding ====
 +
 +If you have [[setupvisualWorks|VisualWorks with version 8.3]] or later, you can help by adding transformations for specific packages or by improving the transformation machinery.
 +
 +Port the **[Values Tools]** and [Values Tools Testing] packages. These packages contain the code for generating new value classes. If you want to create your own Value classes you need this.
 +
 +Add other source formats (f.ex. **tonel**) as backend for the transformations (besides the chunk format).
 +
 +==== Feedback ====
 +
 +**Participate** here on the wiki (ask me <mail@pdftalk.de> for an account if you like to contribute).
 +
 +Test it, use it, give **feedback**, ask questions… We are very interested in feedback on the code, documentation, the porting approach, the wiki contents. With your input the code can only improve.
  
 ===== Discussion ===== ===== Discussion =====
 +
 +==== Namespaces ====
 +
 +[[namespaces|--> Namespaces]]
  
 ==== Naming issues ==== ==== Naming issues ====
  • pdftalknonnamespacefileout.1648304533.txt.gz
  • Last modified: 2022/03/26 15:22
  • by christian