|
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 - download
Length: 29696 (0x7400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package Operational_Characteristics, pragma Module_Name 4 4142, pragma Segmented_Heap Associated_File_Info, pragma Segmented_Heap Associated_File_List_Ptr, pragma Segmented_Heap Object, pragma Segmented_Heap Option_Info, pragma Segmented_Heap Option_List_Ptr, pragma Segmented_Heap String_Ptr, seg_00acd8
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Simple_Status; package Operational_Characteristics is -- The Build and Check constructors, as well as the Get selectors, provide -- storage for the following information: -- Compile command line -- Link command line -- Change context command line -- Change library command line -- Command Options -- General command line formation -- Filename and directory characteristics -- Information needed for Target_Builder instantiation type Compilation_Phase is (Assemble, -- currently unsupported Promote, Demote, -- currently unsupported Link); type Phase_Map is array (Compilation_Phase) of Boolean; type Compiler_Properties is (Generics_Share_Code, Require_Body_And_Generic_In_Same_Compilation, Requires_Subunits_And_Generic_In_Same_Compilation, Implements_Pragma_Inline, Separate_Subunits_Are_Inefficient); type Compiler_Property_List is array (Compiler_Properties) of Boolean; type Filename_Type is (Ada_Name, -- Filename prefix is based on -- name of corresponding ada unit File_Name, -- Filename prefix equals filename -- prefix of corresponding ada unit Fixed_Name -- File has same name, regardless of -- ada unit ); type File_Type is (Text, Binary); type Name_Case is (Upper, Lower, Capitalize, Dont_Care); -- Upper -> THIS_NAME -- Lower -> this_name -- Capitalize -> This_Name -- Dont_Care -> All names are exactly as typed in, with auto-generated -- names in lower case type Operating_System is (Unix, Vms, Ultrix, Vm, Mvs, Os2, Dos, Spare1, Spare2, Spare3, Spare4, Unknown); type Retrieve_Condition is (On_Normal, On_Error, On_Warning, Always); type Transfer_Type is (Dtia, Ftp); Invalid_Access : exception; -- Raised if a Get is attempted on an object that was never built Build_Failed : exception; Target_Is_Registered : exception; Target_Not_Initialized : exception; ------------- -- Options -- ------------- type Option_Info is private; Null_Option_Info : constant Option_Info; function Build (Option_Name : String; Active_Phases : Phase_Map; Switch_Dependent : Boolean; Switch_Name : String; Default_Value : String; Option_Takes_Arg : Boolean; Is_Pre_Option : Boolean; Help : String := ""; For_Target : String) return Option_Info; ------------- Arguments to build ---------- -- Option_Name : String; -- Target text for option. -- Active_Phases : Phase_Map; -- When is option included in target compiler commands -- Switch_Dependent : Boolean; -- Is option's presence dependent on a switch being true. -- Switch_Name : String; -- If above is false, this is the name of that switch. Should be -- a valid ada identifier. -- Default_Value : string; -- Initial value of switch. -- This field and the corresponding value in the switch file have -- different interpretations depending on whether the option in -- question takes an argument. -- If Option_Takes_Arg is false, then this value should be either -- "True" or "False", with "True" meaning that the option is -- activated and "False" meaning it is not. -- If Option_Takes_Arg is true, then the following table -- describes the implications of this value: -- -- Empty string => Option is not present. -- "@" => Option is present with no argument. -- <OTHER_VALUE> => Option is present and it's argument is -- equal to <OTHER_VALUE>. -- -- Option_Takes_Arg : Boolean; -- Can an argument accompany the option -- Is_Pre_Option : Boolean; -- True if option is placed before unit name in command line. -- False if placed after. -- Help : string; -- Message to be displayed when user hits EXPLAIN key on -- corresponding switch. function Is_Null (The_Option_Info : Option_Info) return Boolean; function Get_Option_Name (The_Option_Info : Option_Info) return String; function Get_Active_Phases (The_Option_Info : Option_Info) return Phase_Map; function Switch_Dependent (The_Option_Info : Option_Info) return Boolean; function Get_Switch_Name (The_Option_Info : Option_Info) return String; function Default_Value (The_Option_Info : Option_Info) return String; function Option_Takes_Arg (The_Option_Info : Option_Info) return Boolean; function Is_Pre_Option (The_Option_Info : Option_Info) return Boolean; function Get_Help (The_Option_Info : Option_Info) return String; -- Alphabetized Option_Info functions: -- -- Default_Value -- Get_Active_Phases -- Get_Option_Name -- Get_Switch_Name -- Is_Pre_Option -- Is_Null -- Option_Takes_Arg -- Switch_Dependent -- Is_Pre_Option type Option_List is array (Natural range <>) of Option_Info; -- [Need to customize the algorithm for creating a target name]. -- [Also need to customize the algorithm for formatting a command line]. -- -- command => <pre> <cmd> <options> <filename> [<lib>] <post> -- -- where: -- <options> => <separator> <option> [<gets> <value>] -- <filename> => <unitname> <delimiter> <extension> -- Compile_Syntax : constant String := -- "<pre> <cmd> <options> <filename> [<lib>] <post>"; -- -- Link_Syntax : constant String := -- "<pre> <cmd> <options> <filename> [<lib>] <post>"; -- -- Filename_Syntax : constant String := "<unitname> <delimiter> <extension>"; -- -- Option_Syntax : constant String := "<separator> <option> <gets> <value>."; -- -- Library_Syntax : constant String := "<lib_cmd> <separator> <library>"; -- -- Context_Syntax : constant String := "<dir_cmd> <separator> <directory>"; ---------------------- -- Associated Files -- ---------------------- type Associated_File_Info is private; Null_Associated_File_Info : constant Associated_File_Info; function Is_Null (The_File_Info : Associated_File_Info) return Boolean; function Build (The_File_Type : File_Type; The_Retrieve_Condition : Retrieve_Condition; Retrieve_Phase : Compilation_Phase; Option_Dependent : Boolean; Associated_Option_Switch : String; Host_Filename_Extension : String; Remote_Filename_Type : Filename_Type; Argument_Overrides_Fixed_Name : Boolean; Fixed_Remote_Filename : String; Remote_Filename_Extension : String; For_Target : String) return Associated_File_Info; ---------- Parameters for Build ---------- -- The_File_Type : File_Type; -- See file_type description -- The_Retrieve_Condition : Retrieve_Condition; -- After which command results is file retrieved -- Retrieve_Phase : Compilation_Phase; -- When is file retrieved -- Option_Dependent : Boolean; -- True if file retrieval is dependent on the presence of an -- option in the command line that creates the file -- Associated_Option_Switch : String; -- SWITCH name for the option on who's presence file retrieval -- depends -- Host_Filename_Extension : String; -- Unbracketed file name used in host file creation. -- eg. "ASM" => "unit.<ASM>" -- Remote_Filename_Type : Filename_Type; -- See filename_type description -- Argument_Overrides_Fixed_Name : Boolean; -- True if the name of the file to be retrieved is equal to the -- argument value except when it's empty. -- Fixed_Remote_Filename : String; -- Fixed filename prefix to be used when filename type is "fixed" and -- no overriding factors are present. When the filename type is -- anything other than "fixed", and the field is non-empty, it -- will be directly appended to the prefix. -- Remote_Filename_Extension : String; -- Portion of target file name that appears "after the dot". -- Null string implies no dot. -- -- function Get_File_Type (The_File_Info : Associated_File_Info) return File_Type; function Get_Retrieve_Condition (The_File_Info : Associated_File_Info) return Retrieve_Condition; function Get_Retrieve_Phase (The_File_Info : Associated_File_Info) return Compilation_Phase; function Option_Dependent (The_File_Info : Associated_File_Info) return Boolean; function Get_Associated_Option_Switch (The_File_Info : Associated_File_Info) return String; function Get_Host_Filename_Extension (The_File_Info : Associated_File_Info) return String; function Get_Remote_Filename_Type (The_File_Info : Associated_File_Info) return Filename_Type; function Argument_Overrides_Fixed_Name (The_File_Info : Associated_File_Info) return Boolean; function Get_Fixed_Remote_Filename (The_File_Info : Associated_File_Info) return String; function Get_Remote_Filename_Extension (The_File_Info : Associated_File_Info) return String; -- Alphabetized Associated_File_Info functions: -- -- Argument_Overrides_Fixed_Name -- Get_Associated_Option_Switch -- Get_Delete_Phase -- Get_File_Type -- Get_Host_Filename_Extension -- Get_Retrieve_Condition -- Get_Retrieve_Phase -- Get_Fixed_Remote_Filename -- Get_Remote_Filename_Type -- Get_Remote_Filename_Extension -- Is_Null -- Option_Dependent type Associated_File_List is array (Natural range <>) of Associated_File_Info; --------------------------- -- Customization Objects -- --------------------------- type Object is private; Null_Object : constant Object; function Is_Null (The_Object : Object) return Boolean; function Build (Properties : Compiler_Property_List; Max_Filename_Length : Natural; Full_Pathname_Length : Natural; Spec_Filename_Extension : String; -- Filename extension for files containing an ada spec Body_Filename_Extension : String; -- Filename extension for files containing an ada body Extension_Separator : String; -- File format is -- <filename><EXTENSION_SEPARATOR><appropriate_extension> Directory_Separator : String; Directory_Prefix : String; Directory_Suffix : String; Directory_Unit_Separator : String; -- Fully qualified filename would be of this format: -- <DPREF>dir_name1<DS>dir_name2<DS>dir_name2<DS>.... -- <DS>dir_name_n<DSUF><DUS>unit_name -- Where <DS> => directory_separator, -- <DPREF> => directory_prefix, -- <DSUF> => directory_suffix, -- <DUS> => directory_unit_separatory. -- eg. For the VMS file -- [DHR.TESTS.SUB]file, -- <DPREF> -> "[", -- <DS> -> ".", -- <DSUF> -> "]", -- <DUS> -> "" Case_Sensitive : Boolean; Command_Line_Case : Name_Case; Max_Command_Line_Length : Natural; Compiler_Command : String; Compiler_Pre_Command : String; -- Command to be executed before compile command Compiler_Post_Command : String; -- Command to be executed after compile command Linker_Command : String; Linker_Pre_Command : String; -- Command to be executed before link command Linker_Post_Command : String; -- Command to be executed after link command Executable_Option : String; -- Compiler option that names the executable file, -- (Leave empty if no such option exists) Executable_Option_Is_Pre_Option : Boolean; -- Option goes before or after unit name in command line Context_Command : String; -- Command to change remote context Library_Command : String; -- Command to change remote program library Default_Program_Library_Name : String; -- Simple name of program_library -- (Assumed to be contained in source directory) Parse_Standard_Output : Boolean; -- True if the rcf must look at standard output to -- determine remote command execution success/failure Parse_Standard_Error : Boolean; -- True if the rcf must look at standard error to -- determine remote command execution success/failure Error_Pattern : String; -- What text sequence indicates an error -- (Used when parsing standard error or standard output) Remote_Operating_System : Operating_System; The_Transfer_Type : Transfer_Type; -- *Option Information* Option_Separator : String; Option_Header : String; Option_Argument_Separator : String; -- Format of compile/link command is -- Command line => <Cmd> <OH>Opt1<OS><OH>Opt2<OS><OH>Opt3 ... -- Opt => option[<OAS>argument] -- Where -- <OH> -> Option_Header, -- <OS> -> Option_Prefix, -- <OAS> -> Option_Argument_Separator -- Note that an option may or may not take an argument. If -- it does, the option_argument_separator is used to -- separate the option and argument. Options : Option_List; -- The list of available compiler and linker options. -- *Associated File Information* Ada_Name_Subunit_Separator : String; -- Used in lieu of '.' in forming remote file names based -- on the ada name of subunits. -- eg, if Ada_Name_Subunit_Separator = "__", and the -- customizer has defined an associated file with -- filename_type ADA_NAME and extension, say, "TEST", -- then when subunit A.B.C is compiled/linked, -- the RCF will attempt to retrieve A__B__C.TEST from the -- remote machine. Ada_Name_Spec_Suffix : String; -- Similar to Ada_Name_Subunit_Separator, but is appended -- to the ada_name of specs. -- In the above example, if Ada_Name_Spec_Suffix is "_", -- then when A'SPEC is compiled/linked, the RCF will attempt -- to retrieve the file A_.TEST. Ada_Name_Body_Suffix : String; -- Similar to Ada_Name_Subunit_Separator, but is appended -- to the ada_name of bodies. -- In the above example, if Ada_Name_Body_Suffix is "_", -- then when A'BODY is compiled/linked, the RCF will attempt -- to retrieve the file A_.TEST. Associated_Files : Associated_File_List; -- The list of associated files to be retrieved For_Target : String) return Object; procedure Check (The_Object : Object; Status : in out Simple_Status.Condition); procedure Display (The_Object : Object); function Get_Properties (The_Object : Object) return Compiler_Property_List; function Get_Max_Filename_Length (The_Object : Object) return Natural; function Get_Full_Pathname_Length (The_Object : Object) return Natural; function Get_Spec_Filename_Extension (The_Object : Object) return String; function Get_Body_Filename_Extension (The_Object : Object) return String; function Get_Extension_Separator (The_Object : Object) return String; function Get_Option_Separator (The_Object : Object) return String; function Get_Option_Header (The_Object : Object) return String; function Get_Option_Argument_Separator (The_Object : Object) return String; function Get_Ada_Name_Subunit_Separator (The_Object : Object) return String; function Get_Ada_Name_Spec_Suffix (The_Object : Object) return String; function Get_Ada_Name_Body_Suffix (The_Object : Object) return String; function Get_Directory_Separator (The_Object : Object) return String; function Get_Directory_Prefix (The_Object : Object) return String; function Get_Directory_Suffix (The_Object : Object) return String; function Get_Directory_Unit_Separator (The_Object : Object) return String; function Case_Sensitive (The_Object : Object) return Boolean; function Get_Command_Line_Case (The_Object : Object) return Name_Case; function Get_Max_Command_Line_Length (The_Object : Object) return Natural; function Get_Compiler_Command (The_Object : Object) return String; function Get_Compiler_Pre_Command (The_Object : Object) return String; function Get_Compiler_Post_Command (The_Object : Object) return String; function Get_Linker_Command (The_Object : Object) return String; function Get_Linker_Pre_Command (The_Object : Object) return String; function Get_Linker_Post_Command (The_Object : Object) return String; function Get_Executable_Option (The_Object : Object) return String; function Executable_Option_Is_Pre_Option (The_Object : Object) return Boolean; function Get_Context_Command (The_Object : Object) return String; function Get_Library_Command (The_Object : Object) return String; function Get_Default_Program_Library_Name (The_Object : Object) return String; function Parse_Standard_Output (The_Object : Object) return Boolean; function Parse_Standard_Error (The_Object : Object) return Boolean; function Get_Error_Pattern (The_Object : Object) return String; function Get_Remote_Operating_System (The_Object : Object) return Operating_System; function Get_Transfer_Type (The_Object : Object) return Transfer_Type; function Get_Options (The_Object : Object) return Option_List; function Get_Associated_Files (The_Object : Object) return Associated_File_List; -- Alphabetized Object functions: -- -- Case_Sensitive -- Executable_Option_Is_Pre_Option -- Get_Associated_Files -- Get_Body_Filename_Extension -- Get_Command_Line_Case -- Get_Compiler_Command -- Get_Context_Command -- Get_Default_Program_Library_Name -- Get_Directory_Prefix -- Get_Directory_Separator -- Get_Directory_Suffix -- Get_Error_Pattern -- Get_Executable_Option -- Get_Full_Pathname_Length -- Get_Library_Command -- Get_Linker_Command -- Get_Max_Command_Line_Length -- Get_Max_Filename_Length -- Get_Options -- Get_Option_Argument_Separator -- Get_Option_Header -- Get_Option_Separator -- Get_Properties -- Get_Remote_Operating_System -- Get_Spec_Filename_Extension -- Get_Extension_Separator -- Is_Null -- Parse_Standard_Error -- Parse_Standard_Output pragma Module_Name (4, 4142); pragma Bias_Key (32); private type String_Ptr is access String; pragma Segmented_Heap (String_Ptr); pragma Short_Pointer (String_Ptr); type Command_Line_Info is record Case_Sensitive : Boolean := True; Command_Line_Case : Name_Case := Dont_Care; Max_Command_Line_Length : Natural; end record; Null_Command_Line_Info : constant Command_Line_Info := (Case_Sensitive => True, Command_Line_Case => Dont_Care, Max_Command_Line_Length => 0); -- Command_Info does NOT include options. type Command_Info is record The_Command : String_Ptr; Command_Syntax : String_Ptr; Use_Simple_Name : Boolean := False; Command_Required : Boolean := True; end record; Null_Command_Info : constant Command_Info := (The_Command => null, Command_Syntax => null, Use_Simple_Name => False, Command_Required => False); type Default_Option_Info is record Compiler_Option : String_Ptr; Linker_Option : String_Ptr; Context_Option : String_Ptr; Library_Option : String_Ptr; end record; Null_Default_Option_Info : constant Default_Option_Info := (Compiler_Option => null, Linker_Option => null, Context_Option => null, Library_Option => null); type Parse_Info is record Parse_Standard_Output : Boolean; Parse_Error_Output : Boolean; Error_Pattern : String_Ptr; end record; Null_Parse_Info : constant Parse_Info := (Parse_Standard_Output => False, Parse_Error_Output => False, Error_Pattern => null); type Option_Rec is record Option_Name : String_Ptr; Active_Phases : Phase_Map; Switch_Dependent : Boolean; Switch_Name : String_Ptr; Default_Value : String_Ptr; Option_Takes_Arg : Boolean; Is_Pre_Option : Boolean; Help : String_Ptr; end record; type Option_Info is access Option_Rec; pragma Segmented_Heap (Option_Info); Null_Option_Info : constant Option_Info := null; type Option_List_Ptr is access Option_List; pragma Segmented_Heap (Option_List_Ptr); pragma Short_Pointer (Option_List_Ptr); type Associated_File_Rec is record The_File_Type : File_Type; The_Retrieve_Condition : Retrieve_Condition; Retrieve_Phase : Compilation_Phase; Delete_Phase : Compilation_Phase; Option_Dependent : Boolean; Associated_Option_Switch : String_Ptr; Host_Filename_Extension : String_Ptr; Remote_Filename_Type : Filename_Type; Argument_Overrides_Fixed_Name : Boolean; Fixed_Remote_Filename : String_Ptr; Remote_Filename_Extension : String_Ptr; end record; type Associated_File_Info is access Associated_File_Rec; pragma Segmented_Heap (Associated_File_Info); Null_Associated_File_Info : constant Associated_File_Info := null; type Associated_File_List_Ptr is access Associated_File_List; pragma Segmented_Heap (Associated_File_List_Ptr); pragma Short_Pointer (Associated_File_List_Ptr); type Object_Rec is record The_Properties : Compiler_Property_List; The_Max_Filename_Length : Natural; The_Full_Pathname_Length : Natural; The_Spec_Filename_Extension : String_Ptr; The_Body_Filename_Extension : String_Ptr; The_Extension_Separator_Info : String_Ptr; The_Option_Separator_Info : String_Ptr; The_Option_Header_Info : String_Ptr; The_Option_Argument_Separator_Info : String_Ptr; Ada_Name_Subunit_Separator : String_Ptr; Ada_Name_Spec_Suffix : String_Ptr; Ada_Name_Body_Suffix : String_Ptr; The_Directory_Separator_Info : String_Ptr; The_Directory_Prefix_Info : String_Ptr; The_Directory_Suffix_Info : String_Ptr; Directory_Unit_Separator : String_Ptr; The_Command_Line_Info : Command_Line_Info; The_Compiler_Info : Command_Info; The_Linker_Info : Command_Info; The_Context_Info : Command_Info; The_Library_Info : Command_Info; Linker_Pre_Command : String_Ptr; Linker_Post_Command : String_Ptr; Executable_Option : String_Ptr; Executable_Option_Is_Pre_Option : Boolean; Compiler_Pre_Command : String_Ptr; Compiler_Post_Command : String_Ptr; The_Default_Program_Library_Name : String_Ptr; The_Parse_Info : Parse_Info; Remote_Operating_System : Operating_System; The_Transfer_Type : Transfer_Type; Options : Option_List_Ptr; Associated_Files : Associated_File_List_Ptr; end record; type Object is access Object_Rec; pragma Segmented_Heap (Object); Null_Object : constant Object := null; end Operational_Characteristics;
nblk1=1c nid=0 hdr6=38 [0x00] rec0=1c rec1=00 rec2=01 rec3=002 [0x01] rec0=1a rec1=00 rec2=02 rec3=072 [0x02] rec0=25 rec1=00 rec2=03 rec3=030 [0x03] rec0=17 rec1=00 rec2=04 rec3=02e [0x04] rec0=13 rec1=00 rec2=05 rec3=022 [0x05] rec0=16 rec1=00 rec2=06 rec3=01a [0x06] rec0=1b rec1=00 rec2=07 rec3=05a [0x07] rec0=19 rec1=00 rec2=08 rec3=036 [0x08] rec0=16 rec1=00 rec2=09 rec3=090 [0x09] rec0=14 rec1=00 rec2=0a rec3=010 [0x0a] rec0=16 rec1=00 rec2=0b rec3=014 [0x0b] rec0=20 rec1=00 rec2=0c rec3=02a [0x0c] rec0=19 rec1=00 rec2=0d rec3=048 [0x0d] rec0=15 rec1=00 rec2=0e rec3=036 [0x0e] rec0=15 rec1=00 rec2=0f rec3=01a [0x0f] rec0=1b rec1=00 rec2=10 rec3=010 [0x10] rec0=13 rec1=00 rec2=11 rec3=008 [0x11] rec0=16 rec1=00 rec2=12 rec3=014 [0x12] rec0=11 rec1=00 rec2=13 rec3=02c [0x13] rec0=13 rec1=00 rec2=14 rec3=05e [0x14] rec0=1a rec1=00 rec2=15 rec3=044 [0x15] rec0=22 rec1=00 rec2=16 rec3=06e [0x16] rec0=1c rec1=00 rec2=17 rec3=04e [0x17] rec0=1e rec1=00 rec2=18 rec3=026 [0x18] rec0=1a rec1=00 rec2=19 rec3=05e [0x19] rec0=1d rec1=00 rec2=1a rec3=00c [0x1a] rec0=1b rec1=00 rec2=1b rec3=04a [0x1b] rec0=0f rec1=00 rec2=1c rec3=000 tail 0x21707efda81f94868e935 0x42a00088462060003