                     TOFO - Tandem Object File Optimizer
                     ===================================
                                 Version 101
                                 -----------
                                  07Apr2015


We found out, that the new compilers produce a lot of slack in object
files.  In the 'good old times', the compiler allocated one large
extent, holding the entire object file.
The problem here is, that the first extent is pretty small, and the
secondary extents are really big. This leads to the problem, that the
compiler has to allocate at least one secondary extent, which is not
really used.
This means: The object file looks small, but requires a large portion
of the disk space.

To minimize the disk space, that is needed to hold an executable file,
we developed a tool named Tandem Object File Optimizer (TOFO).
TOFO copies an existing disk file, having more than 2 extents, into a
file with a primary extent, able to hold the entire old file.


Command syntax is:

  [run] TOFO [/OUT <file>/] -HELP
                            [LIST [<template>]]
                            OPTIMIZE [<template>]


where:

-HELP                  displays the command syntax

[LIST [<template>]]    displays the file allocation situation of all
                       files, matching <template>. When <template> is
                       missing, the users current location is listed.
                       Running TOFO without any parameter causes it to
                       LIST the situation of the users current
                       location.

OPTIMIZE [<template>]  optimizes the files, matching <template>.
                       When <template> is missing, the files in the
                       users current location are optimized.



Best is, to use TOFO in the batch files, where programs are compiled, e.g.

  tal/in source/object;suppress,optimize 2
  axcel object,target
  TOFO optimize target

This minimizes the disk space, occupied by the object file.


TOFO supports unstructured files only, having these file codes:
- 100  (non native object files)
- 180  (C files)
- 500  (native X object files)
- 700  (native K and S object files)
- 800  (native Itanium object files)


In case you stumble into problems, please let us know.

albireo     &    GreenHouse
Gerhard Huff     Carl Weber
07Apr2015

