Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
pdftalknonnamespacefileout [2022/02/23 17:56] christian [Steps] |
pdftalknonnamespacefileout [2022/05/16 18:43] (current) christian [Porting PDFtalk to non-namespace Smalltalk dialects] |
||
---|---|---|---|
Line 3: | Line 3: | ||
Make the [[start# | Make the [[start# | ||
- | The transformation approach to porting has been successful for [[pdftalk4gemstone|Gemstone]], | + | The transformation approach to porting has been successful for [[pdftalk4gemstone|Gemstone]], |
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 12: | Line 12: | ||
* [[SqueakPort|Squeak]] | * [[SqueakPort|Squeak]] | ||
* [[VASTPort|VA Smalltalk]] | * [[VASTPort|VA Smalltalk]] | ||
+ | * [[GemstonePort|Gemstone]] | ||
+ | * [[PharoPort|Pharo]] | ||
* (others to come) | * (others to come) | ||
===== General Approach ===== | ===== General Approach ===== | ||
- | The first step is to port the '' | + | - [[setupvisualWorks|setup the VisualWorks 8.3]] source image with PDFtalk and the tools |
- | ===== Workflow | + | - Port the '' |
+ | - Port the PDFtalk packages in order (you can skip PostScript until later) | ||
+ | |||
+ | ==== 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 30: | 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 ==== | ||
- | * **PostScript** - PostScript Interpreter without graphics for CMaps and type1 fonts. 83 classes, 42 values, 251 tests. | ||
- | * **PDFtalk** - Core library. 396 classes, 116 values, 288 tests and 3 namespaces. | ||
- | * **PDFtalk.Fonts** - Type1 fonts. 32 classes, 5 values, 25 tests. | ||
- | * **PDFtalk.Fonts.OpenType** - OpenType(PS) implementation. 64 classes, 19 values, 6 tests. | ||
- | * **UI** - not to be ported | ||
- | Not included yet | ||
- | * **RDF** - RDF implementation for meta data. 37 classes, 15 values, 371 tests. | ||
- | * **PDFtalk.XMP** - Extensible Metadata Platform. 17 classes, 12 values, 17 tests. | ||
- | === Namespace to prefix mapping | + | ===== How you can help ===== |
- | All classes and globals | + | This project is an experiment in somewhat new territory. The goal is to port software |
+ | |||
+ | For this, we need help. | ||
+ | ==== Coding ==== | ||
+ | |||
+ | If you have [[setupvisualWorks|VisualWorks | ||
+ | |||
+ | 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 < | ||
+ | |||
+ | Test it, use it, give **feedback**, | ||
+ | |||
+ | ===== Discussion ===== | ||
+ | |||
+ | ==== Namespaces ==== | ||
- | * PDFtalk => Pt, PDFt, ...? | + | [[namespaces|--> Namespaces]] |
- | * PostScript => PS, ...? | + | |
- | * PDFtalk.Fonts => PtFont, ...? | + | |
- | * PDFtalk.Fonts.OpenType => PtOT, ...? | + | |
- | * RDF => RDF, ...? | + | |
- | * PDFtalk.XMP => PtXMP, ...? | + | |
==== Naming issues ==== | ==== Naming issues ==== |