stdl(1) — Commands
Digital
NAME
stdl − ACMSxp command that invokes the STDL compiler
SYNOPSIS
stdl [-bcgGLstwz]
[-B dec | mf | none]
[-D text-type:header-type:wire-format]
[-f file-specification]
[-h directory]
[-i path]
[ {-M | -X }]
[-n records | messages | prototypes [...]]
[-o directory]
[-q file-specification]
[-S include]
[-T {none | single | multi }]
[-u uuid]
[-v version]
file-specification
FLAGS
-bgenerates a COBOL copy file. The contents of the COBOL copy file are based on the -n option flag. The compiler generates the COBOL copy file in the current working directory, or in the directory specified by the -h directory flag, with the same name as the input source file and a file extension of .cob.
-Bdec | mf |none
Identifies the COBOL compiler to use. The valid values are:
dec DIGITAL COBOL
mf Microfocus COBOL
none No COBOL compiler
The -B option flag overrides the STDL_COBOL environment variable. If you omit the flag, and the environment variable is not set, the default is none.
-cGenerates a C header file. The contents of the C header file are based on the -n option flag. The compiler generates the C header file in the current working directory, or in the directory specified by -h directory, with the same name as the input source file and a file extension of .h.
-Dtext-type:header-type:wire-format
Specifies how an STDL data type is to be represented in header files and interprocess communications. The value "kanji" is the only valid entry for the text-type, to specify the Kanji text data type.
The values for header-type are "char" and "wchar" (the default). The values for wire-format (describing the format in which characters are passed between clients and servers) are:
stdlwire Conversion occurs before Kanji text data are transmitted
across the wire.
none No conversion is done before the Kanji text data are
transmitted across the wire.
If you specify "char", a data alignment problem may occur.
-ffile-specification
Specifies a file containing a group file specification for one or more processing group specification. The file-specification must be unqualified; it is looked for in the same directory as the #INCLUDE and #CINCLUDE files. If an input source file contains a processing group specification, and if the procedures defined in the processing group specification access files, then the file descriptor information is required for MIA-compliant compilation of the processing group. You can supply the group file specification by either this option flag or directly in the input source file.
-gInserts debugging information into the task object file. By default, the compiler does not generate this information. To invoke the debugger for a task server, you must use this argument to compile all tasks that you want to debug in the task group.
-GOnly with processing group specifications and with -T none. Uses shared memory for communications between task servers and processing servers.
-hdirectory
Specifies a directory into which the STDL compiler generates C header files. By default, the compiler generates these output files in the current working directory.
-ipath
The path argument specifies a directory search path for STDL #INCLUDE and #CINCLUDE files. Each argument must be either an environment variable or a legal directory specification. The compiler searches for the #INCLUDE or #CINCLUDE files in the following order:
1. Path containing the top-level source file.
2. Path specified by the -i option flag.
3. Directories listed in the STDL_INCLUDE_PATH environment variable.
-LProduces a file that contains a numbered source file listing with error messages inserted directly under the erroneous source lines. The compiler creates this file in the current working directory giving the file the same name as the input source file with the .lis file extension. Use the -S option in conjunction with this flag to further qualify the contents of the listing file.
-MUses Multivendor Integration Architecture (MIA) syntax. By default, X/Open syntax is used.
-nrecords | messages | prototypes [...]
Specifies the desired contents of the C header file. The -n option flag is used in conjunction with -b and -c option flag. You can specify one or more -n option flag with each -c option flag If you do not specify the -n option flag, the generated COBOL copy files and C header files contain all possible contents. You can specify one of the following keywords with each -n option flag:
o records
The compiler generates equivalent record structures for all the
data type definitions in the input source file in C or COBOL.
o messages
The compiler generates equivalent record structures for all the
message group definitions in the input source file in C or COBOL.
o prototypes
The compiler generates function prototypes for tasks in all task
group specifications in the input source file in C. This keyword
is valid only with the -c option flag.
-odirectory
Specifies a directory into which output files (.o, .cat, and .idf) are generated. By default, the compiler generates these output files in the current working directory.
-qfile-specification
Specifies a file containing record queue specifications. The file must be unqualified; it is looked for in the same directories as the #INCLUDE and #CINCLUDE files. If an input source file contains a task definition that refers to record queues, the queue information is required. You can supply the record queue specifications with the -q option flag or directly in the input source file.
-sPerforms syntax and semantic checks only; does not generate any output (.o, .cat, .idf, .h files). By default, the compiler generates output as directed by other arguments.
-Sinclude
Use this in conjunction with the -L option flag. If you specify the -L option flag without the -S include option flag, the compiler includes only the input source file in the listing file. If you specify -L with -S include the compiler includes the contents of the files in the #INCLUDE and #CINCLUDE directives in addition to the source file contents.
-tGenerates output (.o files) only for task definitions in the input source file. By default, the compiler generates outputs for all definitions in the input source file.
-Tnone | single | multi
Identifies the transaction resource model to be used for the task server or processing server. Specify one of the following keywords:
o none
The compiler generates no support for transaction control.
All of the restrictions of the single resource model apply.
For a task server:
All tasks must be noncomposable, can call only noncomposable
tasks, and cannot use transactional resources. The transaction
control is assumed to be in a processing procedure, but
tasks must still use the transaction block to perform any work
and the resources must be nontransactional.
For a processing server:
All processing procedure calls are noncomposable. A processing
procedure can start, commit, and roll back a transaction.
ACMSxp software does not retain transaction context between
processing procedure calls.
o single
The compiler generates transaction support for one transactional
resource.
For a task server:
The transaction is managed through STDL syntax, but restricted to one
resource which is accessed through processing procedures in a single
processing server. No transactional resource can be accessed
through STDL syntax. A task can call composable tasks in the same
task group.
For a processing server:
All processing procedure calls are composable. ACMSxp retains context
in the processing server for the duration of the transaction. The
processing procedure supplies the routines with the following names
to start, commit, and roll back the transaction in the single
resource manager (for example, a SQL database).
stdl_start_transaction
stdl_commit_transaction
stdl_rollback_transaction
o multi
The compiler generates support for multiple transactional resources.
This is the default.
For a task server:
The transaction is managed through STDL syntax and can span multiple
task groups and processing groups. Transactional resources are
accessed through STDL syntax.
For a processing server:
All processing procedure calls are composable. ACMSxp retains context
in the processing server for the duration of the transaction.
If you omit the -T option flag, the transaction model is multi.
-uuuid
Specifies the default UUID associated with the first processing group specification within the input source file that does not specify a UUID within the STDL syntax. If the input file contains a processing group specification with no UUID specified, this argument is required. This command argument applies only to processing groups that you are compiling, not to processing groups referred to. A UUID value is made up of hexadecimal digits grouped as follows:
XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX
Run uuidgen to generate a UUID.
-vversion
Specifies the default version number associated with any processing group specification within the input source file that does not have a version within the specification syntax. If the input file contains a processing group specification with no version and if you do not specify the -v version argument, the compiler associates a version of 0.0 with the processing group specification. Version is a decimal literal without a sign. Processing group specifications included for reference only do not require a version number on the command line.
-wSuppresses warning messages. The default is to display warning messages.
-XUses the X/Open version of the STDL syntax when compiling the source code. This is the default.
-zControls whether optimization is performed by the STDL compiler when object files without debugging information are created. Nondebug code is optimized by default. Specifying the -z flag when producing nondebug code disables optimization, allowing you to proceed if there is a problem with using optimized code.
If the -g flag is specified, no optimization is performed by default. You cannot generate optimized debug code.
DESCRIPTION
The compiler translates STDL definitions and specifications contained in the specified file into object code and other outputs.
The STDL compiler can generate outputs for use in developing processing servers, task servers, presentation servers, and client programs. Output is to the current working directory, to the directory containing the top-level input source file, to directories specified by the command-line option flags, or to the locations set by environment variables.
Use a nonqualified or fully qualified name of a file for the stdl command to compile. All nonqualified file names must be in the current working directory. The compiler appends the .stdl suffix to a file created from a file specification that does not contain a suffix. The maximum size for the command line is 255 characters.
Do not mix transaction types within a single task group or processing group. A task can call a noncomposable task in another server that uses a different transaction model.
A task group using the single-resource or multiple-resource transaction model can call a processing procedure in a processing group that uses the none transaction model. Compile the client stubs for the processing group separately from those of the task group. Proceed as follows:
1.Compile the tasks with the -T single or -T multi and with the -t option flag so that no processing group stubs are generated.
2.Compile the processing group with the -T multi option flag.
3.Link the following:
o Task objects and task server stubs that were compiled with the
single or multi transaction model
o Processing group stub that was compiled with the multi
transaction model
RELATED INFORMATION
Commands: acms(1), acmsadmin(1), acmsdbx(1), acmslog(1), gwlog(1),
Scripts: acms_create_tpsystem(1), acms_delete_tpsystem(1), acms_set_version(1), acms_start_tpsystem(1)