Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
smalltalktransform [2022/01/31 12:07] christian [Transformations] |
smalltalktransform [2022/02/23 16:02] christian [Smalltalk Transform Project] |
||
---|---|---|---|
Line 8: | Line 8: | ||
This is the next more general version of the [[GemstoneFileout|Gemstone Fileout]] project. | This is the next more general version of the [[GemstoneFileout|Gemstone Fileout]] project. | ||
- | The only working example is the PDFtalk port from VisualWorks to Gemstone. | + | A working example is the PDFtalk port from VisualWorks to Gemstone. |
It is intended to cover other dialects (Squeak, Pharo, VAST, (Smalltalk/ | It is intended to cover other dialects (Squeak, Pharo, VAST, (Smalltalk/ | ||
[Begin of 2022] There is the possibility for a project to implement a general port for non-namespace Smalltalk dialects. A **[[PDFtalkNonNamespaceFileout|project page is setup here]]**. | [Begin of 2022] There is the possibility for a project to implement a general port for non-namespace Smalltalk dialects. A **[[PDFtalkNonNamespaceFileout|project page is setup here]]**. | ||
+ | |||
+ | The [[SmalltalkTransformDocumentation|Smalltalk transform documentation]] describes all the technical details. | ||
===== Get startet ===== | ===== Get startet ===== | ||
Line 29: | Line 31: | ||
The UI, at the other end, is very different in all dialects, so that porting is almost impossible. | The UI, at the other end, is very different in all dialects, so that porting is almost impossible. | ||
- | ==== Transformations ==== | + | ===== Transformations |
- | === Methods === | + | ==== Methods |
The source code is in methods which syntax may be different in the target system. | The source code is in methods which syntax may be different in the target system. | ||
Line 71: | Line 73: | ||
- | === Classes === | + | ==== Classes |
Changes related to classes. | Changes related to classes. | ||
- | === Packages === | + | === ClassChange === |
+ | |||
+ | Changes related to classes defined or extended by the package. | ||
+ | |||
+ | <code Smalltalk> | ||
+ | classReference: | ||
+ | superclassName: | ||
+ | options: <Array of: String> | ||
+ | instanceChanges: | ||
+ | classChanges: | ||
+ | |||
+ | **classReference** :: the class of this change | ||
+ | |||
+ | **superclassName** :: ??? | ||
+ | |||
+ | **options** :: Gemstone class definition options | ||
+ | |||
+ | **instanceChanges** :: instance method changes | ||
+ | |||
+ | **classChanges** :: class method changes | ||
+ | |||
+ | === SystemClassChange === | ||
+ | |||
+ | Changes related to classes in the target dialect. | ||
+ | |||
+ | <code Smalltalk> | ||
+ | className: < | ||
+ | instanceChanges: | ||
+ | classChanges: | ||
+ | |||
+ | **className** :: The name of the class in the target dialect | ||
+ | |||
+ | **instanceChanges** :: instance method changes | ||
+ | |||
+ | **classChanges** :: class method changes | ||
+ | |||
+ | |||
+ | ==== Packages | ||
Changes related to a package or bundle. | Changes related to a package or bundle. | ||
Line 99: | Line 138: | ||
**extensions** :: system class changes for classes only defined in the target system | **extensions** :: system class changes for classes only defined in the target system | ||
+ | ==== Projects ==== | ||
- | (to be continued...) | + | Changes related |
- | ==== Rewrite Tool ==== | + | Classes are renamed across the whole project. |
- | The code transformations are done with the rewrite tool. | + | (to be defined) |
===== To do ===== | ===== To do ===== |