DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: R T

⟦e4006ea50⟧ TextFile

    Length: 3049 (0xbe9)
    Types: TextFile
    Names: »READ_ME«

Derivation

└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
    └─⟦5cb1d1d7f⟧ »DATA« 
        └─⟦3b1ee7bd8⟧ 
            └─⟦this⟧ 

TextFile

To run an EXECUTION benchmark, use the "Execution_Benchmark" procedure
as a template. There is a commented area which is where you add the code
you want to time the execution of.


To run a COMPILATION benchmark, do the following:


First, you will need a library containing the Ada unit(s) you want to run
the benchmarks on. The full pathname of this library is the "Context"
parameter given to the "Run_Benchmark" program. The Context can contain sub-
directories, but nested worlds are not permitted.


Second, you will need a main unit which you wish to run the benchmarks on.
This should be a unit at the top of the Ada dependency closure for the
unit(s) in the Context (a main driver program, for instance). The simple
Ada name of this unit is the "Main_Unit" parameter given to the "Run_
Benchmark" program.


Third, you will need to write a "skin" procedure that calls the main unit.
The skin procedure should be very simple (a minimum of code). The skin
procedure must end with a "Pragma Main", and it must have the same name
as the main unit, except that it must have the suffix "_Skin" appended to it.
The skin procedure must be parameterless. For example, if the procedure
"User_Interface" is the main unit, the skin procedure should look like this:

    WITH User_Interface;
    PROCEDURE User_Interface_Skin IS        
       --
       Initial_Value : CONSTANT Integer := 7;
       --
    BEGIN
       User_Interface ( Initial_Value );
    END User_Interface_Skin;
    PRAGMA Main;
       

Fourth, you will need a non-generic package spec somewhere in the closure of
the unit(s) in the Context which contains at least one type declaration. The
package should be at the bottom of the Ada dependency closure for the units in
the Context (a low-level service layer package, for instance). The package
should not have any subunits. The simple Ada name of this package is the
"Type_Unit" parameter given to the "Run_Benchmark" program.                        
    

NOTE: the main unit, the skin procedure, and the low-level package spec with
the type declaration must all be immediately visible in the Context (not loc-
ated in a sub-directory within the Context).
     
            (*      *       *       *       *       *       *)
                                 
The benchmark program starts by demoting all units in the Context to source,
so be careful where you run it.


Depending on the complexity of the closure in Context, the benchmark program
can take a very long time to run.
              

Before you can run the benchmark program a second time, you need to go to
the low-level package spec and delete the type declarations:

    TYPE Batch_Method_Added_Type_Declaration IS NEW Boolean;
    TYPE Incrementally_Added_Type_Declaration IS NEW Boolean;
    
You can do this incrementally by selecting each declaration and then pressing
the key sequence Object-D. The spec will stay in the coded state, and no other
recompilation is required. If you forget to do this, the benchmark program
will fail the second time it is run.