[prev] [up] [next]

Sharing your Work with Others

This document gives some advice on how to share code with other Smalltalkers; both other Smalltall/X and other dialects.

Overview: Mechanisms to Share Code

Portability Issues

Skip this, if you only intent to give your code to other Smalltalk/X users.

Namespaces

Squeak does not support namespaces. To be able to move code to Squeak/Pharo or VisualAge, you have to move classes out of their namespace and possibly give them a prefix to avoid class name conflicts in the target system. A good workaround is to prepend the classes original namespace as prefix. I.e. rename "MyNamespace::Foo" into "MyNamespaceFoo".

VisualWorks uses a different namespace scheme ("Namespace.Name" instead of "Namespace::Name"). As there is currently no automatic rewrite tool for this, it is recommended to use the above renaming strategy as well and move the classes into their target namespace once you have them ported.

The static code checking tools (in the browser) contains a search rule for namespace uses.

Identifiers

Squeak/Pharo does not allow for underline characters in identifiers and selector names. You have to rename all of them before exporting.

The static code checking tools (in the browser) contains 3 search rules for this (underline in class/instvar names, underlines in locals and underlines in selector).

ChangeFile Exchange

The easiest mechanism is to pass a changeFile (or part of it) to your target system, and open a changeList tool there. There, you can browse and inspect individual changes and get a chance to skip or modify things before they are loaded. As this becomes quite tedious for big files, use this for a small number of changes and patches.

FileOut / FileIn

Fileout each individual class from the browser, and either fileIn in the target system, or open a changeList there (on the class files) and load them incrementally.

Shared Repository

Using a shared source code repository allows for classes to be checked in on one side and checked out on the other. This will probably only work seamless if both systems are Smalltalk/X dialects. For VisualWorks interchange, a StoreSCM class exists, but it has not been maintained and updated to the current Cincom version, after they changed their DB layout recently. So this may need a bit of additional work.

Monticello

ST/X is able to generate monticelllo packages, which can be loaded into Squak/Pharo systems.


Continue in "More Smalltalk".

[stx-logo]
Copyright © Claus Gittinger Development & Consulting
Copyright © eXept Software AG

<cg at exept.de>

Doc $Revision: 1.3 $ $Date: 2021/03/13 18:24:49 $