
CONVERGENT TECHNOLOGIES

RELEASE NOTICE FOR
DTK1.0 Developer's Tool Kit

Revised August 29, 1989
SECTION   TITLE	PAGE
1.0	Description of Programs	2
2.0	Changes from Prior Version	5
2.1	SPRs Closed in This Release	5
3.0	Contents of Distribution Diskette(s)	6
4.0	Installation Procedures	8
4.1	Hard Disk Systems	8
4.2	StandAlone Floppy Disk Systems	8
5.0	Required Files	9
6.0	System Software Compatibility	11
6.1	Workstation Environment	11
6.2	MegaFrame Environment	11
7.0	Hardware Information	11
7.1	Hardware Configurations Supported	11
7.2	Special Hardware Requirements	11
8.0	Resource RequirementsUtilization	12
8.1	Memory RequirementsUtilization	12
8.2	Disk RequirementsUtilization	12
9.0	Restrictions	13
10.0	Supplementary Information	14
10.1	Internationalization	14
10.2	Secondary Files	14
10.3	Unix Utility Differences Under CTOS	14
11.0	Documentation	16
12.0	Known Errors and Omissions	16
12.1	Unix System V3.2 Errors	16
12.2	High C Compiler Warnings	17
1.0	Description of Programs
This Release Notice describes Developer's Tool Kit version DTK1.0.  This section and the sections that follow provide a description of the product, contents of the Distribution Diskette, installation procedures, and other information pertinent to this release of Developer's Tool Kit.
The Developer's Tool Kit is a collection of utilities to assist software development under CTOS.  Roughly half of these utilities were ported from System V Unix.   The rest were developed inhouse or were part of the Source Tools product, which the Developer's Tool Kit supercedes. 
The Developer's Tool Kit version DTK1.0 distribution package consists of six 5 14 diskettes.  It consists of the following programs.  An asterisk (*) denotes utilities ported from Unix, many of which have a specified alternate command name.
Awk*	Pattern scanning and processing language interpreter.
AwkCmd.run	Allows Awk scripts to be invoked as Executive commands, similar to SubCmd.run.
Build Makefile	Scans source files in a directory and creates a makefile with include file dependencies.  Submit file using Awk, Sed, Grep.
Cb, or C Beautifier*	A C source code prettyprinter.
Cpp or C Preprocessor*	Macro processor for the C language.
Check Errors	Checks list and map files for reported errors.
Coed	Converts code segment names to coed in object files using ObjMunge.
Compare Version	Compares two versions of a list of source files and reports files that are different.
Convert DOS File	Converts text file line and file endings between DOS and CTOSUnix conventions.
Cpio*	Unix archive utility, used for file transfer between Unix and CTOS.
{Create Message Source File  	From a specially formatted C enum statement file, it creates an NLS message source file (.txt), an optional C initialization file (.h), and an optional binary NLS message file (.bin).}
Cross Reference	Lists the public and external references of a list of object files, showing their interdependencies.
CTrace*	Noninteractive C source debugger.
Dd or Convert and Copy*  	Converts between ASCII and EBCDIC, upper and lower case, fixed and variable line length, etc.
Diff*	Reports differences between two source files  used by SDiff.  Optionally creates a sedscript for use as a delta file.
Dump Object File	Displays the contents of object files, libraries, and run file headers.
Find	Searches files for specified patterns.
Grep*	Searches files for specified regular expression patterns, more powerful than Find.
Last	Displays the last n lines of each file in list.
Lex*	Lexical analyzer creator.
List Line Addresses	Awk script that prints source files with each code line's debugger address.
M4 or Macro Processor*	A nonlanguagespecific macro processor.
Make*	Program build automater.
Make Edf	Create a PLM, C, or Pascal external procedure file from PLM and Assembler source files.
Make Prototype File	Creates an ANSI C function prototype file from list of High C .lst files.
ObjMunge	Convert one object module class to another.
Pack*	Compress specified files using Huffman tree encoding.
Pr or Print Source File*	Source file formatterprinter.
Print Packed File*	Display or print file compressed using Pack utility.
Replace	Submit file for global search and replace operations on file list using Sed.
Request Monitor	Interactive or background CTOS request reporter.
SDiff*	Report differences between two source files printed sidebyside; also supports interactive merging of files to third file.
Sed or Stream Editor*	Noninteractive text file editor.
Sort*	Sorts lines based on specified criteria.
Source File Compare	Compare two source files and report differences.
Tool Kit Help	An interactive utility with information about the Developer's Tool Kit utilities and related topics.
Touch	Update a file's lastmodified date.
Tr or Translate Characters*  	Translate specified characters in a text file.
Unpack*	Expand files compressed using Pack.
Yacc*	Parser generator.
2.0	Changes from Prior Version
This is the first version of the Developer's Tool Kit.  The following tools were previously released as part of the 3.0 Source Tools:
Check Errors	Checks list files of all compilers distributed by Convergent.  Optionally allows a specified number of map errors.
Coed	Unchanged.
Find	New options to report only matches or file names containing matches.
Last	Unchanged.
Make Edf	Creates C and Pascal external procedure files in addition to PLM edf's.
Source File Compare	New options to ignore whitespace or upperlower case differences.
2.1	SPRs Closed in This Release
There are no SPRs outstanding against any of the utilities in the Developer's Tool Kit.
3.0	Contents of Distribution Diskette(s)
The Developer's Tool Kit Distribution Diskette is your master copy, and has been shipped writeprotected.  It should not be writeenabled, nor should it be used as a working copy.
The Developer's Tool Kit requires installation of the Standard Software Development Utilities.  CTrace, Lex, and Yacc require installation of the High C compiler.  
Distribution Diskette 1 of 6 contains the following files in the <CT> directory:
AwkCmd.run
Big\Toolkit.lib
Compact\Toolkit.lib
CrossReference.run
CTraceRuntime.c
HelpMsg.bin
HelpMsg.txt
Large\Toolkit.lib
Last.run
LexForm
Make.rules
Makefile.template
Medium\Toolkit.lib
Small\Toolkit.lib
YaccParser
Distribution Diskette 1 of 6 contains the following files in the <Submit> directory:
BmInclude.sed
BmObject.awk
BmUseObject.awk
BuildMakefile.sub
MakeBuild.awk
Names.sub
ListLineAddresses.awk
MakePrototypeFile.awk
Replace.sub

Distribution Diskette 1 of 6 contains the following files in the <ReleaseNote> directory:
ReleaseNotice
ReleaseNotice.def
In addition to various standard system files, Distribution Diskette 1 of 6 contains the following files in the <Sys> directory:
Cmds.sub
CreateMsgSrcFileMsg.bin
CreateMsgSrcFileMsg.txt
HdInstall.sub
RequestMonitorMsg.bin
RequestMonitorMsg.txt
Submit.fls
Distribution Diskette 2 of 6 contains the following files in the <CT> directory:
Cpio.run
Cpp.run
ConvertAndCopy.run
CreateMsgSrcFile.run
CtDosConvert.run
CTrace.run
{Distribution Diskette 3 of 6 contains the following files in the <CT> directory:
Diff.run
FilCom.run
Find.run
Grep.run
SDiff.run
Sort.run}
Distribution Diskette 4 of 6 contains the following files in the <CT> directory:
Help.run
Lex.run
M4.run
Make.run
MakeEdf.run
Touch.run
RequestMonitor.run
Distribution Diskette 5 of 6 contains the following files in the <CT> directory:
Awk.run
DumpObjectFile.run
Pack.run
Pr.run
Sed.run
Unpack.run
Distribution Diskette 6 of 6 contains the following files in the <CT> directory:
CompareVersion.run
ObjMunge.run
Tr.run
Cb.run
Yacc.run
CheckErrors.Run
Distribution Diskette 6 of 6 contains the following files in the <Samples> directory:
Calculator.l
Calculator.y
CompareMapFiles.awk
DGroup.awk
fcntl.h
FindFile.awk
head.awk
nl.awk
ReadMe.doc
remake.sub
RemoveNullChars.c
sys\stat.h
tail.awk
unixfile.c
wc.awk
4.0	Installation Procedures
The Developer's Tool Kit should only be used on Convergent Information Processing Systems which are equipped with hard disk, or in clusters where the master is equipped with hard disk.
Use the installation procedures described below.  Characters that you must type are shown in boldface.  Special keys, such as RETURN and GO, are shown in upper case.
4.1	Hard Disk Systems
A.	Signon at the workstation.  If the Signon form is displayed, fill it in and press GO.  
B.	Insert Developer's Tool Kit diskette 1 of 6 in drive [f0].  (Do not press the RESET button.)
C.	Install the product as follows:
Command   Install  GO
D.	You will be prompted to fill in what volume and directory where the Developer's Tool Kit will be installed with the following form:
Path
  [Volume]	Sys
  [Directory]	Toolkit
  [Default file prefix]	
  [Password]	
  [Node]
	If you wish the Developer's Tool Kit to be installed into a different directory than [Sys]<Toolkit>, modify the command form as needed.  
	If your hard disk has a volume password on the specified volume, fill this password into the [Password] field before pressing GO.
E.	During the installation, you will be prompted to insert each distribution diskette as needed.  After inserting the next diskette, press GO to continue.
{4.2	StandAlone Floppy Disk Systems
The Developer's Tool Kit is not supported on standalone floppy disk systems.}
5.0	Required Files
The following files are needed to execute the Tool Kit commands.  Unless otherwise indicated, all files are located in the Developer's Tool Kit directory created during installation.  
Awk	Awk.run
Build Makefile	[Sys]<Sys>SubCmd.run
[Sys]<Sys>BmInclude.sed
[Sys]<Sys>BmObject.awk
[Sys]<Sys>BuildMakefile.sub
[Sys]<Sys>FileList.sub
[Sys]<Sys>MakeBuild.awk
[Sys]<Sys>Names.sub
C Beautifier	Cb.run
Check Errors	CheckErrors.run
Coed	ObjMunge.run	
Compare Version	CompareVersion.run
C Preprocessor	Cpp.run
Convert and Copy	ConvertAndCopy.run
Convert DOS File	CtDosConvert.run
Cpio	Cpio.run
Create Message Source File 	CreateMsgSrcFile.run
Cross Reference	CrossReference.run
CTrace	CTrace.run
CTraceRuntime.c
Diff	Diff.run
Dump Object File	DumpObjectFile.run
Find	Find.run
Grep	Grep.run
Last	Last.run
Lex	Lex.run
LexForm
List Line Addresses	AwkCmd.run
[Sys]<Sys>ListLineAddresses.awk
M4	M4.run
Make	Make.run
Make.rules
Make Edf	MakeEdf.run
Make Prototype File	[Sys]<Sys>MakePrototypeFile.awk
ObjMunge	ObjMunge.run
Pack	Pack.run
Pr	Pr.run
Print Packed File	Unpack.run
Replace	[Sys]<Sys>SubCmd.run
[Sys]<Sys>Replace.sub
Request Monitor	RequestMonitor.run
[Sys]<Sys>RequestMonitorMsg.bin
SDiff	SDiff.run
Sed	Sed.run
Sort	Sort.run
Source File Compare	FilCom.run
Tool Kit Help	Help.run
HelpMsg.bin
Touch	Touch.run
Translate Characters	Tr.run
Unpack	Unpack.run
Yacc	Yacc.run
YaccParser
The following files are required to link source files created by CTrace, Lex, or Yacc, and are found in the directory created by the Developer's Tool Kit installation:
	Small\Toolkit.lib
Compact\Toolkit.lib
Medium\Toolkit.lib
Big\Toolkit.lib
Large\Toolkit.lib
6.0	System Software Compatibility
Because of the runtime libraries distributed with the Developer's Tool Kit, CTrace, Lex, and Yacc require use of the High C compiler.  To link modules created using these utilities, the Standard Software Development Utilities diskettes must be installed.
6.1	Workstation Environment
The Developer's Tool Kit runs on CTOS, version 9.9 or later, and CTOSVM, version 2.2 or later.  
Cpio cannot access QIC tapes on NGEN modules which use the current BTOS QIC Server.  The 12.0 version of the NGEN QIC Server (not released yet) will support all QIC hardware modules, and will support access by Cpio.
6.2	MegaFrame Environment
The Developer's Tool Kit is only supported on workstations.
{7.0	Hardware Information
7.1	Hardware Configurations Supported
The Developer's Tool Kit is designed to run on all NGEN systems.  Cpio's access of QIC modules which use the BTOS QIC Server is not supported until the 12.0 version of that server is released.}
7.2	Special Hardware Requirements
Prior to the 12.0 release of Standard Software, only NGEN QIC modules which use the CTOS NgenQicServer.run can be accessed by Cpio.
8.0	Resource RequirementsUtilization
8.1	Memory RequirementsUtilization
Utility	Memory Used
Awk	225k?? (depends on memory used by Awk script)
C Beautifier	130k
Check Errors	43k
Compare Version	55k
Convert and Copy	131k
Convert Dos Files	45k
Cpio	155k
C Preprocessor	201k
Create Message Source File	149k
Cross Reference	148400k (depends on number and size of object files)
CTrace	172k
Diff	126k
Dump Object File	162k
Find	51k
Grep	124k
Last	47k
Lex	155k
M4	136k
Make	209k
Make Edf	65140k (depends on number of procedures read)
Objmunge, Coed	46k
Pack	126k
Print Packed File, Unpack	121k
Print Source File	135k
Request Monitor	350k
SDiff	133k
Sed	165k
Sort	263k
Source File Compare	100k (will use memory up to 452k)
Tool Kit Help	148k
Touch	14k
Tr	121k
Yacc	326k
{8.2	Disk RequirementsUtilization
The Developer's Tool Kit installation creates a ToolKit directory on the volume specified by the user.  After installation, less than 6600 sectors are used by this directory.  There are 28 sectors used in the [Sys]<Sys> directory.}
{9.0	Restrictions
The Developer's Tool Kit is not supported on IWS, AWS, MegaFrame or SRP systems.}  
In general, the Unix utilities do not recognize the NULL character (ASCII 0) as being a valid text character.  Processing text files containing NULLs is therefore not supported.
Because the Unixstyle of parameter is supported by the Unix utilities in the Developer's Tool Kit, file specifications beginning with a hyphen ('') or a right angle bracket ('>') cannot be used as parameters with these utilities.  
Cpio's access of QIC modules which use the BTOS QIC Server is not supported until the 12.0 version of that server is released.
{Cpio always uses the c (portability) mode and cannot read tapes not created with this option.  It also doesn't support the following Unix options:
p 	pass mode
Q	64k blocks
r	interactive file renaming
l	link when possible
m	retain previous file modification time
s	swap bytes
S	swap halfwords
b	swap both bytes and halfwords
6	read old format file}
ObjMunge   If two or more names are the name in one LNAMES segment, only the first one is converted.  This was not changed since it is likely that some build environments depend on this behavior.
Sed has a maximum line length of 510 characters.  If a longer line is encountered, it will insert a newline character at the 511th position in the line.
For PLM files, List Line Addresses will only work if the module name (as defined by the label of the outermost block) is the same as the filename plus its .plm suffix.  For example, if there's a file named TestProc.plm, the first label should be TestProc:.
10.0	Supplementary Information
10.1	Internationalization
The Developer's Tool Kit consists of utilities to assist CTOS program development.  Because development utilities under CTOS are not normally internationalized, only the Request Monitor and Create Message Source File utilities have been internationalized.
10.2	Secondary Files
Whenever a Developer's Tool Kit utility needs to reference a secondary file, such as a file containing runtime routines, or when chaining to a secondary run file, the directory used is the directory of the current run file.  
For example, when Yacc is executed it reads in a skeletal parser call YaccParser.  If the run file specification for Yacc is [d3]<ToolKit>Yacc.run, for example, Yacc will look for the YaccParser file in the [d3]<Toolkit> directory.  
Because of secondary file references, if a utility is moved to another directory, its secondary files (as documented in section 5.0 on page 8) must be moved as well.
{10.3	Unix Utility Differences Under CTOS
In general, the major differences between the CTOS and Unix versions of the Unix utilities are that pipes, input redirection, environment variables, and shell escapes aren't supported under CTOS.  To capture output from several of the Unix  utilities, an [Output file] option has been added.}  
Awk		Pipe and the system commands are not supported.  File redirection in awk scripts is supported, however.
Cpio		The following options are not supported: p (pass), Q (64k blocks), r (interactive file renaming), l (link when possible), m (retain previous file modification time), s S and b (swap bytes and halfwords), 6 (process old format).  
		Under CTOS, cpio is used as a file transfer utility, not an archive utility.  
{Diff		Since ed hasn't been ported to CTOS, the e and f ed script options are only supported using the Unix command format.  The h option to use hdiff isn't available.  
		A s sed script option has been added, also available by entering yes in the [Output sed script?] parameter.}
Grep		Case insensitivity under CTOS is the default, so the i option's meaning is inverted.  If the i option is used, or if yes is entered in the [Case sensitive?] command form field, the search will be case sensitive.
		Multiple search patterns are supported using the Grep command form.  Only one search pattern is supported using the Unix command format, however.
M4		The syscmd macro isn't supported.
Make		Under CTOS, a submit file is created and then executed after Make exits.  Modification dates are therefore always checked initially, rather than at each execution statement.  
		File target names (file specifications to the left of a colon in the makefile) are forced lowercase for caseinsensitivity.
		Output Translations, as documented on page 1310 of the Unix System V386 Programmer's Guide, are not implemented.
Pr		Using the Executive command form, the e (input tab expansion) and i (output tab expansion) parameters are combined into the [Tab width] parameter.  The e and i parameters may still be used as is in the first parameter field.  
		The meaning of the f (use formfeed) option has been inverted, so that the default is to use a formfeed unless the [Suppress formfeed?] paramater is invoked.  
SDiff		In interactive merge mode, the options to call the editor aren't supported.
Touch		The Touch utility has been rewritten for CTOS.
Yacc		The parser tables output with Yacc under CTOS are slightly smaller than under Unix.  The System V.3 and earlier Unix versions have a bug which causes redundant data to be included in the tables.  This has no effect on parser performance or reliability.
11.0	Documentation
The following manuals are distributed with the Developer's Tool Kit:
CTOS Developer's Tool Kit Reference
UNIX System V386 Programmer's Guide, Volumes 1 and 2
12.0	Known Errors and Omissions
Cross Reference   
When outputting to a file, if any of the [List symbols only], [List definition modules only?], or [List reference modules only?] parameters are yes, an extra line feed character is inserted at the beginning of the file, and the final line feed is missing.
Make	If multiple targets are specified which share dependent files, the commands to build those dependent files are run multiple times.  This can be avoided by defining a target whose dependents are the targets previously specified.
Make	If multiple targets are specified which have previously touched dependency files, a misleading message is displayed when the target is touched.
Make Edf 
If the output file specified is the name of one of the input files, the file will be overwritten.
Request Monitor 
Cannot be installed as a system service on 186 NGEN processors.
Source File Compare 
If the last lines of the source files are identical except that one ends with a linefeed character and one doesn't, that line will be reported as being identical.
12.1	Unix System V3.2 Errors
The following problems are found in both the CTOS and Unix versions of the specified utilities:
Awk	The expression str1 || str2 (or ) is treated as syntax error.  The workaround is to define the expression either as str1|str2, or as $0  str1 || $0  str2.
Awk	If one file in a list of input files is nonexistent, Awk immediately stops processing.
Cb	If the last part of the C source file is a comment, it is not output.  
Cpio	When the current version and archive version of a file have the same modification date, no message is displayed indicating that the file was processed.  
CTrace	When compiling files created by large yacc scripts, a warning that an expression is too big and won't be traced is given against a nonexistant source line in the yacc file.  This can safely be ignored.
M4	The expression eval(X**X**X) causes M4 to hang.  
12.2	High C Compiler Warnings
Lex and Yacc produce C source files.  The following warnings are reported by the High C compiler when compiling these files, and can be safely ignored.
Lex	This code will never be executed.
yywrap: Function called but not defined.
yyprevious: Variable is never used.
printable: External function is never referenced.
yyless: External function is never referenced.
yyracc: External function is never referenced.
yyreject: External function is never referenced.
Yacc	This code will never be executed.