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 - downloadIndex: ┃ B T ┃
Length: 4905 (0x1329) Types: TextFile Names: »B«
└─⟦407de186f⟧ Bits:30000749 8mm tape, Rational 1000, RCFSUN └─ ⟦e5cd75ab4⟧ »DATA« └─⟦this⟧
separate (Library_Extensions) procedure Link_Postprocess (Main_Unit : String; Executable_Name : String; Status : in out Simple_Status.Condition) is Main : Dt.Object.Handle := Dt.Naming.Resolution (Main_Unit); Main_Full_Name : constant String := Dt.Naming.Full_Name (Main); Main_Simple_Name : constant String := Su.Lower_Case (Dt.Naming.Simple_Name (Main)); Host_Exe_Name : constant String := Main_Full_Name & "'body" & ".<Exe>"; Host_Bind_Name : constant String := Main_Full_Name & "'body" & ".<bnd>"; Host_Cui_Name : constant String := Main_Full_Name & "'body" & ".<Cui>"; Name_Length : Natural; Final_Name_Length : Natural; Enclosing_View : Dt.Object.Handle := Dt.Traversal.Enclosing_World (Main); Enclosing_View_Name : constant String := Dt.Naming.Full_Name (Enclosing_View); Remote_Directory_Result : constant Library_Interface.String_Result := Library_Interface.Remote_Directory (Enclosing_View_Name); Remote_Machine_Result : constant Library_Interface.String_Result := Library_Interface.Remote_Machine (Enclosing_View_Name); Remote_Directory : constant String := Remote_Directory_Result.Result (1 .. Remote_Directory_Result.Size); Remote_Machine : constant String := Remote_Machine_Result.Result (1 .. Remote_Machine_Result.Size); function Is_True (For_Switch : Switches.Switch) return Boolean is package Pio renames Polymorphic_Io; package Si renames Switch_Implementation; Switch_Handle : Pio.Handle; Pio_Status : Pio.Error_Status; Value : Boolean := False; begin Pio.Open (The_Handle => Switch_Handle, Mode => Pio.Read_Only, File_Name => Enclosing_View_Name & ".state.compiler_switches", Status => Pio_Status); Value := Si.Value (Switches => Switch_Handle, Name => "RCF." & Target_Key_Id & "_" & Switches.Image (For_Switch)); Pio.Close (File => Switch_Handle, Status => Pio_Status); return Value; end Is_True; function Linker_Generated_Name (Executable_Name : in String; Main_Unit_Name : in String) return String is begin if Executable_Name /= "" then return Executable_Name; else return Main_Unit_Name; end if; end Linker_Generated_Name; begin Log.Put_Line (Message => "Executing Link_Postprocess", Kind => Profile.Note_Msg); Log.Put_Line (Message => " The main unit name is " & Main_Unit, Kind => Profile.Note_Msg); Log.Put_Line (Message => " The remote_directory is " & Remote_Directory, Kind => Profile.Note_Msg); -- set context Simple_Status.Initialize (Status); declare Remote_File_Name : constant String := Linker_Generated_Name (Executable_Name, Main_Simple_Name); begin -- -- Retrieval of Executable File -- if Is_True (Switches.Executable) then Log.Put_Line (Message => "Initiating Retrieval of Executable file " & Executable_Name & ".", Kind => Profile.Positive_Msg); Ftp.Get (From_Remote_File => Remote_File_Name, To_Local_File => Host_Exe_Name, Remote_Machine => Remote_Machine, Remote_Directory => Remote_Directory, Transfer_Type => Ftp_Defs.Local_Binary); end if; -- Retrieval of Map File -- if Is_True (Switches.Binder_Listing) then Log.Put_Line (Message => "Initiating Retrieval of Map file " & Remote_File_Name & ".bnd", Kind => Profile.Positive_Msg); Ftp.Get (From_Remote_File => Remote_File_Name & ".bnd", To_Local_File => Host_Bind_Name, Remote_Machine => Remote_Machine, Remote_Directory => Remote_Directory); end if; -- -- Retrieval of Cui File -- if Is_True (Switches.Cui_File) then Log.Put_Line (Message => "Initiating Retrieval of cui file " & Remote_File_Name & ".cui", Kind => Profile.Positive_Msg); Ftp.Get (From_Remote_File => Remote_File_Name & ".cui", To_Local_File => Host_Cui_Name, Remote_Machine => Remote_Machine, Remote_Directory => Remote_Directory); end if; end; exception when others => Unhandled_Exception (Status, "Link_Postprocess"); end Link_Postprocess;