DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦809a2ecc1⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Generate_Ada_Commands, seg_01c344, separate Batch_Extensions_Support

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



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;




E3 Meta Data

    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