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: B T

⟦88f7600d2⟧ TextFile

    Length: 4724 (0x1274)
    Types: TextFile
    Names: »B«

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

with Log;
with Ada;
with Common;
with Editor;
with Profile;
with Calendar;
with Compilation;
with Report_Times;
with String_Utilities;
with System_Utilities;
procedure Incremental_Benchmark
             (Context : in String := ">> LIBRARY CONTAINING SOURCE <<";
              Main_Unit : in String := ">> MAIN PROGRAM SPEC <<";
              Type_Unit : in String := ">> LOW-LEVEL PACKAGE SPEC <<";
              Response : in String := "<PROFILE>") is
    --
    Old_Response_Profile : Profile.Response_Profile := Profile.Get;
    New_Response_Profile : Profile.Response_Profile := Profile.Value (Response);
    --
    Context_Name : constant String := String_Utilities.Upper_Case (Context);
    Main_Unit_Name : constant String := String_Utilities.Upper_Case (Main_Unit);
    Type_Unit_Name : constant String := String_Utilities.Upper_Case (Type_Unit);
    --
    Starting_Wall_Clock_Time : Calendar.Time;  
    Ending_Wall_Clock_Time : Calendar.Time;  
    Starting_Cpu_Time : Duration;  
    Ending_Cpu_Time : Duration;
    --
begin
    --
    Profile.Set (New_Response_Profile);
    Log.Put_Line ("[Incremental_Benchmark (Context => """ &
                  Context_Name & """, Main_Unit => """ &
                  Main_Unit_Name & """, Type_Unit => """ &
                  Type_Unit_Name & """, Response => """ &
                  Profile.Image (New_Response_Profile) & """);]",
                  Profile.Auxiliary_Msg);
    --
    Log.Put_Line ("Making incremental insertion of type declaration into " &
                  Type_Unit_Name);
    Common.Definition (Name => Context_Name & "." & Type_Unit_Name & "'SPEC",  
                       In_Place => False,  
                       Visible => True);
    Editor.Image.Beginning_Of;
    Editor.Search.Next (Target => "type", Wildcard => False);  
    Editor.Line.Beginning_Of;
    Starting_Wall_Clock_Time := Calendar.Clock;  
    Starting_Cpu_Time := System_Utilities.Cpu;  
    Common.Object.Insert;  
    Editor.Char.Insert_String  
       ("type Incrementally_Added_Type_Declaration is new Boolean;");
    Common.Promote;  
    Ada.Other_Part;  
    Common.Promote;
    Ending_Cpu_Time := System_Utilities.Cpu;  
    Ending_Wall_Clock_Time := Calendar.Clock;
    Log.Put_Line ("Made incremental insertion of type declaration into " &
                  Type_Unit_Name, Profile.Positive_Msg);
    --
    Report_Times ("TIMES TO ADD TYPE DECLARATION INCREMENTALLY:",
                  Starting_Wall_Clock_Time,  
                  Ending_Wall_Clock_Time,  
                  Starting_Cpu_Time,  
                  Ending_Cpu_Time);
    --
    Log.Put_Line ("Inserting type declaration into " &
                  Type_Unit_Name & " using batch compilation");
    Compilation.Demote (Unit => Context_Name & "." & Type_Unit_Name & "'SPEC",
                        Goal => Compilation.Source,  
                        Limit => "<WORLDS>",  
                        Effort_Only => False,
                        Response => Response);  
    Common.Edit (Name => Context_Name & "." & Type_Unit_Name & "'SPEC",
                 In_Place => True,  
                 Visible => True);
    Editor.Image.Beginning_Of;
    Editor.Search.Next (Target => "type", Wildcard => False);  
    Editor.Line.Beginning_Of;
    Starting_Wall_Clock_Time := Calendar.Clock;  
    Starting_Cpu_Time := System_Utilities.Cpu;  
    Editor.Char.Insert_String  
       ("type Batch_Method_Added_Type_Declaration is new Boolean;");
    Common.Commit;  
    Compilation.Promote (Unit => Context_Name & ".??'C(ADA)",  
                         Scope => Compilation.All_Parts,  
                         Goal => Compilation.Coded,  
                         Limit => "<WORLDS>",  
                         Effort_Only => False,
                         Response => Response);  
    Ending_Cpu_Time := System_Utilities.Cpu;  
    Ending_Wall_Clock_Time := Calendar.Clock;  
    Log.Put_Line ("Inserted type declaration into " &
                  Type_Unit_Name & " using batch compilation",
                  Profile.Positive_Msg);
    --
    Report_Times ("TIMES TO ADD TYPE DECLARATION USING BATCH COMPILATION:",  
                  Starting_Wall_Clock_Time,  
                  Ending_Wall_Clock_Time,  
                  Starting_Cpu_Time,  
                  Ending_Cpu_Time);
    --
    Log.Put_Line
       ("[end of Incremental_Benchmark command - no error(s) detected]",
        Profile.Auxiliary_Msg);
    Profile.Set (Old_Response_Profile);
    --
exception
    when others =>
        Log.Put_Line
           ("[end of Incremental_Benchmark command - error(s) detected]",
            Profile.Auxiliary_Msg);
        Profile.Set (Old_Response_Profile);
        --
end Incremental_Benchmark;