Migration Guide : Migrating from Version 5.0 : Migrating control files
Migrating control files
Previous versions of VisualAge Smalltalk used control files (.ctl) to identify the configuration maps that make up a loadable feature. Beginning in VisualAge Smalltalk V6.0, configuration maps became the recommended method of loading features. Configuration maps are easier to maintain and update than control files. Configuration maps and their relationships are also controlled permanently and centrally within the library manager. For information on using configuration maps for loading features, see the Visual Programming User Guide.
Additionally, VisualAge V6.0 supports pre-importing feature code libraries at install time. This helps reduce problems when loading features and eliminates the need to install feature *.dat files separately. VisualAge Smalltalk V6.0 provides a packaged command-line utility to import feature code. This utility is included with every client or manager install. See Importing feature code.
There are still some situations, however, where control files work better than configuration maps. VisualAge Smalltalk V6.0 and VA Smalltalk will continue to support control files, in a modified way.
The following table shows the different parts of a control file and what is supported in VisualAge Version 6.0.
 
Control file information
Support in Version 6.0 and VA Smalltalk
Supported with changes
Supported
New in Version 5.5
import
Not supported
Supported with changes
 
header
The header is used to specify the feature name and an expression that is evaluated to determine if the feature is valid for the specific image.
 
V6.0 and later syntax: <feature name><commentQuotedBooleanExpression>, where <feature name> is the string that the user sees in the Load Features dialog and <CommentQuotedBooleanExpression> is a Smalltalk expression enclosed in the Smalltalk comment quotes, "".
 
V6.0 and later syntax: <visibility><kind><FeatureName><commentQuotedBooleanExpression>, where <visibility> is either z. to indicate the feature is visible in the Load Features dialog, or zz. to indicate that the feature is not visible, <kind> indicates whether the feature is a VA Smalltalk feature or a Smalltalk Base feature. For VA Smalltalk features, use VA:; for Smalltalk Base features, use ST:.
 
The <commentQuotedBooleanExpression> works as it did in V5.0. If the expression evaluates to true, the control file is considered valid for the current image. If the expression evaluates to false, the feature definition will be ignored for this image. The content of the expression has changed; however. In V6.0 and later you provide a new expression: "AbtCommonProductInstallerApp validPlatformIds: 'woahs'". The parameter is a string of characters to identify the operating systems where the feature is supported. The valid values for this method are w for windows, a for AIX, l for Linux and s for Solaris, in any order.
 
For example, the header for a visible feature that is valid on Windows and AIX would look similar to the following:
z.ST: My Smalltalk Feature "AbtCommonProductInstallerApp validPlatformIds: 'aw'"
include
You can include other control files that are prerequisites for this feature.
 
Syntax: include=abtebd50.ctl
 
includeFeatureMap
You can include the name of feature configuration maps in the control file. This allows you specify another feature as a prerequisite.
 
Syntax: includeFeatureMap=zz.ST: My Smalltalk Feature
 
import
You no longer need to import feature code during the feature load. Feature code is pre-imported using the Library Importer Tool.
 
mapname
The mapname is used to specify the name and version of a configuration map to be loaded.
Syntax: <mapname><versionSpec>, where mapname is the name of the configuration map to be loaded and <versionSpec> is either an exact timestamp (specification of the form ts=1234556789, where 1234556789 is the integer number-of-seconds in the map's timestamp), or a version name pattern. The version name pattern can include wildcards. If a version name pattern is used, the chosen edition will be the newest edition whose version name matches the pattern.
 
The import library name and comment used in Version 5.0 are no longer used.
Examples:
'mymap' 'ts=3131946603'
'my other map' 'v7.8.6.3'
'yet another map' 'v7.8.*'
 
Examples:
Here are two examples of Version 6.0 control files:
z.ST:Sample Parts "xxxCommonProductInstallerApp validPlatformIds:'woa'"
include=xxxeq55.ctl
 
'My Sample Parts' 'ts-3033647458'
 
This example is for a visible Smalltalk feature. The control file information also indicates that the valid platforms for this feature are Windows (w), OS/2 (o), and AIX (a). The feature includes the configuration maps from another feature, specified in the xxxeq55.ctl file. There is one configuration map associated with this feature, specified by the map name 'My Sample Parts' and timestamp.
 
z.VA:Sample Parts "true"
includeFeatureMap=zz.ST: My Smalltalk Feature
'My Sample Parts' 'Sample Parts 1.0'
 
This example shows that this control file is for a visible VisualAge feature. The control file is always valid, since the boolean is true. This control file includes a configuration map from another feature, specified in the map zz.ST: My Smalltalk Feature. The zz at the beginning of the map name indicates that this feature is not shown in the feature load/unload list. This control file also has a configuration map associated with it, specified with the map name and version.
 
Last modified date: 07/30/2020