Welcome |
Camp Smalltalk Rosetta Project |
A dialect-neutral framework for Smalltalk source code exchange
Rosetta is a dialect-neutral, XML-based format for Smalltalk code interchange. It is based upon a semantic model of Smalltalk that allows dialect-specific concepts to be mapped to a cross-dialect form, thus enabling transformation between different file-in formats.
Rosetta supports namespace annotations in dialects that do not implement namespaces, thus aiding code porting from a non-namespaced to a namespaced dialect and vice-versa. Also, the use of custom transformation blocks for method source code allows for powerful source code manipulation using the Refactoring Browser’s rewrite tool.
Rosetta was designed to file into a vanilla base image, with no add-ons, compatibility layers etc. It is a lossy transformation format, which means it will install as much as it can, but probably leave out constructs (like namespaces) that cannot be mapped in the receiving dialect.
The Rosetta export framework operates at the level of a “Package” – an ENVY (Sub)Application, Dolphin Package, or VisualWorks Package or Parcel. It also requires the package to be in-image when exported. Support for exporting “Clusters” (i.e. ConfigurationMaps or Bundles etc.) will be included in a following release.
Rosetta is not yet finished. It will keep getting better, though.
Transformation Possibilities |
Exporting Dialects
The Rosetta export framework is currently available for the following dialects:
- Dolphin
- Object Studio
- VisualAge
- VisualWorks 3 (with ENVY)
- VisualWorks 7 (parcels)
Exporters for other dialects will become available as soon as either we or someone else port them.
Stylesheets
XSLT stylesheets are currently available to transform Rosetta format into the following formats:
- ANSI (.sif) format (although the whole Rosetta philosophy makes SIF irrelevant)
- Dolphin (.pac) file-in format
- ENVY (.app) file-in format
- Generic (.st) chunk format (for ST/X, VSE, etc.)
- Object Studio .cls format (multiple file output with XSLTProc)
- S# .sts format (multiple file output with XSLTProc)
- #Smalltalk .sif format
- Squeak (.cs) change-set format
- VisualWorks XML file-in format
In addition, there's a stylesheet to convert Rosetta to HTML (for on-line viewing of package content), and we're working on one for automatic documentation generation.
Please mail bug reports, enhancement requests, etc., to Rosetta.
DTD
The canonical Rosetta DTD is hosted here at Sourceforge:
http://RosettaST.sourceforge.net/DTD/Rosetta.dtd