Previous: vimake Up: Creating Applications Next: Test Routines

Application Packer

A typical VICAR application program, procedure, or SUBLIB subroutine is made up of several different files. These files include source code, include files, PDFs, imakefiles, test files, documentation files, and others. In order to better manage all these files, they are packed into one file so they can be treated as a unit. These files are called COM files due to the ``.com'' filename extension.

Previously, there were two types of COM files. The first was hand-built, and simply included each module after a DCL create command. The build procedure was included as an integral part of this COM file. The second was created by the program mipl_arch (which was never delivered). mipl_arch took the individual files and put them in the COM file in a form suitable for a stream editor, but they were hard for people to read. It also included a checksum on each file so the COM file could not be directly edited. It was slow, and included a large amount of DCL code so the file would be self-unpacking.

There is now a third scheme for generating COM files that combines the best of both systems, and creates files that can be packed and unpacked under both VMS and Unix. The build procedure is a separate file, the COM file is automatically created, and the COM files are standardized as in mipl_arch. But, the COM file is easy for people to read, can be edited without unpacking, has minimal header information, and is fast, like the hand COM files. These new COM files are created and used via a pair of programs called vpack and vunpack (the ``V'' is for ``VICAR'').

vpack and vunpack are complementary, cross-platform programs which are designed to pack and unpack application COM files. A COM file typically includes source code, an imakefile, and a PDF file. The COM file may also include test files and other, application-specific files. Under VMS, the COM file is self-extracting and self-executing (i.e., automatically compiling and linking the code), as the previous COM files were. Under Unix, the vunpack program is needed to extract the files from the COM file.