|
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: 3911 (0xf47) Types: TextFile Names: »B«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦458657fb6⟧ └─⟦274c33adf⟧ └─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3 └─ ⟦fc9b38f02⟧ »DATA« └─⟦9b46a407a⟧ └─⟦274c33adf⟧ └─⟦this⟧
with Debug_Tools; with Directory_Tools; with Error_Reporting; with Io; with Log; with Error_Reporting; with Profile; with Program; with Simple_Status; with String_Utilities; with System_Utilities; procedure Initialize_Rcf (Target_File_Name : String := "!Machine.Rcf_Targets") is Target_File : Io.File_Type; Register_Context : constant String := "!Targets.Implementation.Rcf_Customization"; Job : Program.Job_Id; Condition : Program.Condition; Rcf_Name : constant String := "Rcf_Compiler"; Delay_Count : Natural := 0; Rcf_Compiler_Failure : exception; use Directory_Tools; begin Program.Create_Job ("""!Targets.Implementation.Rcf_User_Interface'Spec_View.Units"".Start_Rcf_Main", Job, Condition, Options => "output => !Machine.Error_Logs.Rcf_Compiler_Log"); if Program.Started_Successfully (Condition) then while String_Utilities.Locate (Rcf_Name, System_Utilities.Job_Name (Job)) = 0 loop Delay_Count := Delay_Count + 1; if Delay_Count > 60 then raise Rcf_Compiler_Failure; end if; delay 2.0; end loop; Log.Put_Line ("Rcf Compiler Started", Profile.Positive_Msg); else raise Rcf_Compiler_Failure; end if; if Object.Is_Ok (The_Object => Naming.Resolution (Target_File_Name)) then Io.Open (File => Target_File, Mode => Io.In_File, Name => Target_File_Name); while not Io.End_Of_File (Target_File) loop declare Stripped_Target : constant String := String_Utilities.Strip (Io.Get_Line (Target_File)); begin Program.Create_Job (Program.Current (Subsystem => Register_Context & "." & Stripped_Target, Unit => Stripped_Target & ".Register", Activity => "!Machine.Release.Current.Activity"), Job, Condition, Context => Register_Context); if Program.Started_Successfully (Condition) then Program.Wait_For (Job); Log.Put_Line ("Registered Rcf target " & Stripped_Target); else Log.Put_Line ("Failed To Register", Profile.Error_Msg); Error_Reporting.Report_Error (Caller => "!Machine.Initialize_Rcf", Reason => Error_Reporting.Create_Condition_Name ("Unable to register rcf target " & Stripped_Target, Error_Reporting.Warning), Explanation => Simple_Status.Name (Condition)); end if; end; end loop; Io.Close (Target_File); else Error_Reporting.Report_Error (Caller => "!Machine.Initialize_Rcf", Reason => Error_Reporting.Create_Condition_Name ("No Rcf targets will be registered", Error_Reporting.Warning), Explanation => "Bad target file name: " & Target_File_Name); end if; exception when Rcf_Compiler_Failure => Error_Reporting.Report_Error (Caller => "!Machine.Initialize_Rcf", Reason => Error_Reporting.Create_Condition_Name ("Unable to start rcf", Error_Reporting.Problem), Explanation => Simple_Status.Name (Condition)); when others => Error_Reporting.Report_Error (Caller => "!Machine.Initialize_Rcf", Reason => Error_Reporting.Create_Condition_Name ("Unhandled_Exception", Error_Reporting.Problem), Explanation => Debug_Tools.Get_Exception_Name (True, True)); end Initialize_Rcf;