|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Generate_Ada_Commands, seg_01c344, separate Batch_Extensions_Support
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
separate (Batch_Extensions_Support)
procedure Generate_Ada_Commands (Host_File_Id : Io.File_Type;
Host_Units : Dt.Object.Iterator;
Target_Key : String;
Status : in out Simple_Status.Condition) is
Host_Units_Iter : Dt.Object.Iterator := Host_Units;
Current_Object, Current_View : Directory.Object;
Previous_View : Directory.Object := Directory.Nil;
Has_Secondary : Boolean := False;
First_Unit : Boolean := True;
Error_Status : Directory.Error_Status;
Compile_Pre_Command : constant String :=
Tdi.Compiler_Pre_Command (Target_Key);
Resp : Profile.Response_Profile := Profile.Get;
begin
Dt.Object.Reset (Host_Units_Iter);
-- Reset the object iterator
while not Dt.Object.Done (Host_Units_Iter) loop
-- First generate all secondary commands for the host units
Dt.Object.Low_Level.Get_Object
(Dt.Object.Value (Host_Units_Iter), Current_Object, Error_Status);
-- Convert current handle to a directorty object
if Directory."/=" (Error_Status, Directory.Successful) then
Log.Put_Line ("Error in getting object from its handle",
Profile.Error_Msg);
return;
end if;
Current_View := Du.Get_View (Current_Object, Resp);
Ui.Has_Secondary (Current_Object, Has_Secondary, Status, Resp);
-- Check if the current object has any secondary referencers
if Has_Secondary and then not Ui.Process_Primary
(Current_Object, Resp) then
-- Do not generate commands for ADA primaries
-- that have process primaries set to false
Log.Put_Line ("Not generating ADA compile commands for" &
Naming.Unique_Full_Name (Current_Object),
Profile.Note_Msg);
else
Log.Put_Line ("Generating ADA compile commands for " &
Naming.Unique_Full_Name (Current_Object),
Profile.Note_Msg);
if Directory."/=" (Current_View, Previous_View) then
if not First_Unit then
Io.Put_Line (Host_File_Id, "!");
end if;
Generate_Context_Change_Command
(Host_File_Id, Current_Object, Target_Key, Status);
-- Set remote context to the unit's remote directory
if Compile_Pre_Command /= "" then
Io.Put_Line (Host_File_Id, Compile_Pre_Command);
end if;
Io.Put_Line
(Host_File_Id,
Build_Compile_Command (This_Target, Current_Object, Resp) &
" -I <<!");
-- Write out the compilation comamnd with only
-- the options but without unit names suffixed by the
-- Unix redirect input notation
-- eg: ada -o -v <<!
First_Unit := False;
Previous_View := Current_View;
end if;
declare
Full_Remote_Unit_Name : constant String :=
Ui.Full_Remote_Unit_Name
(Naming.Get_Full_Name (Current_View),
Current_Object, Resp).Result;
begin
if Full_Remote_Unit_Name = "" then
Log.Put_Line ("Error while getting remote unit name for " &
Naming.Unique_Full_Name (Current_Object) &
" while generating batch compile commands",
Profile.Error_Msg);
else
Io.Put_Line (Host_File_Id, Full_Remote_Unit_Name);
end if;
end; end if;
Dt.Object.Next (Host_Units_Iter);
end loop;
if not First_Unit then
-- If at least one unit has been registered
Io.Put_Line (Host_File_Id, "!");
-- Specifiy end of standard input
end if;
exception
when others =>
Unhandled_Exception (Status, "generate_ada_commands");
end Generate_Ada_Commands;
nblk1=5
nid=0
hdr6=a
[0x00] rec0=18 rec1=00 rec2=01 rec3=01c
[0x01] rec0=15 rec1=00 rec2=02 rec3=00e
[0x02] rec0=17 rec1=00 rec2=03 rec3=03a
[0x03] rec0=18 rec1=00 rec2=04 rec3=002
[0x04] rec0=11 rec1=00 rec2=05 rec3=000
tail 0x2171974ea836571af0c99 0x42a00088462060003