|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 4724 (0x1274)
Types: TextFile
Names: »B«
└─⟦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⟧
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;