|
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: 26624 (0x6800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package Rcf, pragma Module_Name 4 4133, seg_00acf2
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Compilation; package Rcf is -- The following routines are RCF extensions to the Environment's -- compilation command set. --| NON-ADA OPERATIONS |-- -- The RCF supports the use of non-Ada text units as well as Ada units. -- These non-Ada units also known as secondary text files can be maintained -- on an R1000 and downloaded and built on a remote machine. Each such non- -- Ada unit is associated with an Ada unit, called a Primary through an -- associated file called the secondary referencer . A primary can have -- several secondary referencers and hence can be associated with several -- secondary text files. The RCF will use the Primary's dependencies to -- determine its compilation ordering for the secondary text files. -- -- Whenever a Primary which has a Secondary is promoted to the Coded state, -- the RCF will send the secondary text file to the remote machine, and -- the secondary will be built there using the build command string that is associated with the Secondary. -- is associated with it. The Primary will be downloaded and processed only -- if the process_primary flag associated with it is set to true. -- If the Secondary is subsequently edited (using the Edit_Secondary -- command ) on the R1000, the associated Primary will first be demoted -- to the installed state. This means that the changed secondary unit will -- be downloaded to the remote machine and compiled there as soon as the -- Primary is re-Coded. -- To make inadvertent changes to secondary text units more difficult, they -- will be frozen in the R1000 library whenever their Primary is promoted -- to the Coded state. -- All secondary commands operate on the secondary referencer file instead -- of the secondary text file -- -- The following restrictions apply :- -- . A secondary text file cannot be associated with more than one -- primary. -- . A primary unit cannot be an ADA sub unit -- procedure Create_Secondary (Primary_Unit : String := "<CURSOR>"; Command : String := ""; Secondary_Text : String := ""; Remote_Name : String := "<DEFAULT>"; Process_Primary : Boolean := False; Response : String := "<PROFILE>"); -- Create_Secondary associates a specified secondary text file -- with an ADA primary unit. The secondary text file will -- be created if does not already exist. -- -- The primary unit points to the secondary text file using -- a pointy file called the "secondary referencer". -- The secondary referencer will be of the form -- "primary_unit_name.<Secondary_text_file_name>". -- -- The secondary referencer file will contain the following information : -- 1. Name of the secondary text file that is to be associated with the -- primary -- 2. Remote command to be executed after downloading the secondary text -- 3. Remote name into which the secondary text unit is to be downloaded. -- 4. Download time of the secondary text unit on the remote machine. -- -- If Primary_Unit is in the coded state, it will be demoted to installed -- before it's secondary referencer is created. -- -- For eg: -- Create_Secondary (Primary_Unit => "tulip'body", -- command => "cc -c open.c", -- secondary_text => "open_c"; -- Remote_Name => "open.c"; -- Process_Primary => False; -- -- -- will result in :- -- -- Open_C : File (Text) -- Tulip'body : I Ada ==> Primary -- .<Secondary_Open_C> : File (Text) ==> Secondary referencer -- -- When Tulip'body is promoted to the coded state , the -- secondary text file Open_C will be download into "Open.c" on the -- remote and the command "cc -c open.c" will be executed on -- the remote -- procedure Remove_Secondary (Secondary_Referencer : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- Removes the specified secondary referencer thus breaking the association -- between the primary and a secondary unit. If the Primary_Unit is in -- the coded state, it will be demoted to installed before its secondary -- referencer is removed. The secondary text file that was associated by -- the secondary referencer will not be deleted. No changes will be made on the -- remote machine; in particular, the copy of the secondary unit will not -- be removed from the remote machine, so a recompilation of Primary_Unit -- will be necessary to make it consistent with its correct associated -- remote unit. procedure Show_Secondary (Primary_Unit : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- If an ada unit is primary, this command displays the information -- about the secondaries associated with it . The following information -- is displayed :- -- 1. Whether the primary will be processed - process_primary_flag -- 2. Name of the secondary text unit associated with the primary -- 3. Remote name of the secondary text file -- 4. Remote command associated with the secondary text file -- Primary_Unit can be a naming expression that refers to more than one -- unit in a view, so the display will include all of the named units -- (which must be Ada units). procedure Edit_Secondary (Secondary_Referencer : String := "<CURSOR>"; In_Place : Boolean := False; Visible : Boolean := True; Response : String := "<PROFILE>"); -- Allows the user to edit a secondary text file that is associated with -- a Primary_Unit. The secondary text file on the R1000 will be opened for -- editing and brought up in a window on the screen. -- -- If the Primary is coded, it will be demoted to Installed before the Edit -- begins. If so, the secondary text unit is expected to be in the frozen -- state, and it will be unfrozen so the Edit can proceed. When the -- Primary is promoted back to the Coded state, the RCF downloads -- the changed Secondary file to the remote machine, compiles it -- there, and then re-freezes its copy on the R1000. -- -- Note that a secondary text file is edited by selecting its -- referencer. procedure Set_Process_Primary (Primary_Unit : String := "<CURSOR>"; Value : Boolean := False; Response : String := "<PROFILE>"); -- Sets the process primary flag for the specified primary unit. -- Setting this flag will cause the primary to be downloaded -- and processed on the remote machine in addition to its secondaries. procedure Set_Secondary_Command (Command : String := ""; Secondary_Referencer : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- Associates the given command string with a secondary by specifying its -- secondary referencer. The command will be executed on the remote machine -- when the secondary text file is downloaded. --| CONSISTENCY MANAGEMENT OPERATIONS |-- -- The following operations provide minimal support for management of -- consistency between units in views on the R1000 host and the -- corresponding objects on remote targets. Users are allowed to make -- changes, at will, to remote source. Such changes are not, however, -- monitored by the RCF system, so it is the responsibility of the user to -- make sure that host and remote source remain consistent. -- -- Check_Consistency checks whether a unit has been edited remotely since -- it was last downloaded. -- -- Accept_Remote_Changes uploads changes made remotely, making host units -- consistent with their remote counterparts. Note that in order to -- overwrite changes made remotely, the user simply needs to recompile the -- corresponding host unit, which will cause a new copy of the host unit -- to be downloaded to the remote machine. -- -- Upload_Unit transfers a unit from the remote system to the host system. -- This is to be used on objects that don't currently reside in the host -- view. The purpose of this routine is to allow the migration of remotely -- maintained/created code to a Rational view. procedure Check_Consistency (Unit : String := "<CURSOR>"; Compare_Objects : Boolean := False; Response : String := "<PROFILE>"); -- Given a naming expression describing some number of units from a single -- view, or an entire view, this checks the consistency of these units -- against the corresponding units in the remote directory. -- -- Consistency checking between the host unit and the associated remote -- unit is governed by the Compare_Objects parameter. If this parameter -- is set to false , consistency is checked by comparing the host's -- download time with the edit time of the remote. If Compare_Objects -- is set to true the remote unit is uploaded and then compared with -- the host unit for consistency. -- -- Only ada units and secondary text files are checked for consistency. -- -- This routine does not check if the host unit has changed -- since it was last downloaded. procedure Accept_Remote_Changes (Unit : String := "<CURSOR>"; Allow_Demotion : Boolean := False; Compare_Objects : Boolean := False; Remake_Demoted_Units : Boolean := True; Goal : Compilation.Unit_State := Compilation.Coded; Response : String := "<PROFILE>"); -- Given a naming expression specifying some number of host units from a -- single RCF view, or an entire RCF view, this uploads any changes from -- the associated remote units into the host units (to make the host units -- consistent with their associated remote copies). Only units that have -- changed remotely since they were last downloaded will be uploaded. -- -- If Compare_Objects is true consistency is checked by comparing -- host and remote objects instead of comparing time stamps -- -- Host units must be checked out (by CMVC) in order for changes to be -- uploaded into them. They must also be demoted to source, and they will -- be demoted automatically unless Allow_Demotion is False. Uploaded units -- will be re-promoted to the specified Goal state if Remake_Demoted_Units -- is True. procedure Upload_Unit (Remote_Unit_Name : String := ">>REMOTE UNIT NAME<<"; Into_View : String := "<CURSOR>"; Upload_To_Text_File : Boolean := False; Host_Text_File_Name : String := ""; Response : String := "<PROFILE>"); -- Uploads a remote unit into a host view. This should only be used to -- upload new units, which were created on the remote machine and don't -- exist on the host, into the host view. -- -- If Upload_To_Text_File = False, the host unit name will be the name of -- the Ada compilation unit. If Upload_To_Text_File = True, a non-null -- Host_Text_File_Name must be supplied, and the remote unit will be -- uploaded to the given text unit, with no attempt being made to parse the -- remote object into an Ada unit. procedure Upload_Units (Upload_Specification_File : String := ""; Into_View : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- -- Uploads remote units into host units as specified by the -- upload specification file. This should only be used to -- upload new units, which were created on the remote machine and don't -- exist on the host, into the host view. -- Each line of the upload specification file must contain the following -- fields separated by blanks :- -- 1. Remote unit name (string) -- 2. Host text file name (string) -- -- If no host text file name is specified then an attempt is made to -- upload the remote unit into an ada unit on the host -- -- For eg a file containing the lines : -- x.c x_c -- y_s.ada -- -- specifies that the remote "x.c" be copied to a host text file "x_c" -- and "y.ada" be copied to host ada unit "y'spec" . --| UNIT OPERATIONS |-- procedure Link (Main_Unit : String := "<CURSOR>"; Make_Uncoded_Units : Boolean := False; Executable_Name : String := ""; Response : String := "<PROFILE>"); -- Links one or more Main_Units on the remote system. If -- Make_Uncoded_Units = True, all uncoded units that Main_Unit needs will -- be downloaded and promoted to the coded state before the link operation -- is executed. -- If Executable_Name specifies a non-null string, that name will be used -- as the name of the executable module on the remote machine, instead of -- the default name, which will be the name of Main_Unit. Only one -- Main_Unit may be specified if an Executable_Name is non-null. -- procedure Set_Remote_Unit_Name (Remote_Name : String := ">>REMOTE NAME<<"; Unit : String := "<CURSOR>"; Allow_Demotion : Boolean := True; Response : String := "<PROFILE>"); -- Unit must specify an ADA unit or a secondary referencer . -- Sets the remote unit name for the given ADA or secondary -- unit pointed to by the secondar referencer. In the case of the -- ADA unit , the unit will be downloaded into a remote unit with the -- specified remote unit name. -- For secondary referencers the secondary text file associated with the -- primary will be downloaded into the remote unit name procedure Show_Remote_Unit_Name (Unit : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- Shows the remote name of the host Unit. For ADA units the RCF -- assigns a unique default remote name to each host ADA unit, but the -- remote name can be changed if necessary. For secondary referencers -- the default remote name is the same as the name of the secondary -- text file . It is then the user's responsibility to make sure -- that the remote name is unique. -- -- If the host unit is in the coded state, it will normally be demoted to -- installed when its remote name is changed, but this demotion can be -- circumvented if Allow_Demotion is set to False. procedure Show_Units (Unit : String := "<CURSOR>"; Remote_Name : Boolean := True; Consistency : Boolean := False; Response : String := "<PROFILE>"); -- Given a naming expression describing some number of units in a single -- view, or an entire view, displays relevant information about the state -- or configuration of each specified unit. -- -- If Remote_Name = True, the remote name(s) of the unit(s) will be -- displayed. It a unit has a Secondary referencer, the displayed remote -- name will be that of the Secondary text file. -- -- If Consistency = True, checks whether each remote unit -- has changed since it was last downloaded. --| UNIT OPTIONS |-- -- The Rcf allows compiler options to be specified on a unit-by-unit -- basis, overriding for those units what appears in the switch file. procedure Set_Unit_Option (Option_Switch : String := ">>OPTION<<"; Switch_Value : Boolean; Units : String := "<CURSOR>"; Response : String := "<PROFILE>"); procedure Set_Unit_Option (Option_Switch : String := ">>OPTION<<"; Switch_Value : String; Units : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- For the given units, set the value of the specified option. -- The RCF will ignore the value in the switch-file for units that have -- that option set. The option value will stay "hard-wired" until it -- is removed with Remove_Unit_Option. procedure Display_Unit_Options (Units : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- For each unit specified, displays options that are "hard-wired" for -- that unit and don't depend on the switch-file value. procedure Remove_Unit_Option (Option_Switch : String := "<ALL>"; Units : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- For each unit specified, don't "hard-wire" the specified option, get -- it from the switch-file. (Undo Set_Unit_Option) --| LIBRARY OPERATIONS |-- procedure Refresh_View (View : String := "<CURSOR>"; Retain_History : Boolean := True; Response : String := "<PROFILE>"); -- The purpose of Refresh_View is to refresh RCF state information -- that is believed to be corrupted or inconsistent. This will -- result in errors if the view is not an RCF view. -- -- If Retain_History = True then -- all information about remote names, timestamps and unit options -- will be retained. The operation will fail if Retain_History = True -- and there is no existing state information. In this case, -- Retain_History must be set to False. -- -- If Retain_History = False then -- this operation destroys all of the local information about -- remote names, timestamps and unit options. procedure Refresh_Remote_Imports (View : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- Refreshes the remote imports to match the host imports. This directly -- calls Import_Preprocess and Import_Postprocess. procedure Build_Remote_Library (View : String := "<CURSOR>"; Remote_Machine : String := "<DEFAULT>"; Remote_Directory : String := "<DEFAULT>"; Response : String := "<PROFILE>"); -- Given an existing RCF view, build the remote library. The remote -- library consists of both the remote directory, where source will be -- stored, and the program library into which it will be compiled. -- -- If the defaults are given for the Remote_Machine and Remote_Directory, -- they will be be taken from the view's compiler switches. If these -- values do not exist in the view's compiler switches, they must -- be provided here. -- -- This routine assumes that the "Make_Path_Postprocess" RCF extension -- has been implemented. This extension may or may not be implemented -- from one RCF customization to another. procedure Rebuild_Remote_Library (View : String := "<CURSOR>"; Remake_Demoted_Units : Boolean := True; Remote_Machine : String := "<DEFAULT>"; Remote_Directory : String := "<DEFAULT>"; Response : String := "<PROFILE>"); -- In the event that a remote library becomes corrupt, this routine -- facilitates rebuilding it. It destroys the remote library specified -- by View, demoting all units in that view and their dependents. -- It then rebuilds the remote library. If Remake_Demoted_Units = True -- then all units and dependents will be recoded. procedure Destroy_Remote_Library (View : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- Destroy the remote library associated with the View. The effect -- is to destroy the remote program library, ada source and working -- directory. -- -- This routine assumes that the "Destroy_View_Postprocess" RCF extension -- has been implemented. This extension may or may not be implemented -- from one RCF customization to another. procedure Show_Remote_Information (View : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- Shows the remote machine name and remote directory associated with a -- host view. The same effect can be accomplished by displaying the -- Ftp.Remote_Machine and Ftp.Remote_Directory switches in the View's -- Compiler_Switches. procedure Execute_Remote_Command (Remote_Command : String := ""; Remote_Machine : String := "<DEFAULT>"; Remote_Username : String := "<DEFAULT>"; Remote_Password : String := "<DEFAULT>"; Remote_Directory : String := "<DEFAULT>"; The_Key : String := "<DEFAULT>"; Response : String := "<PROFILE>"); -- Executes the specified remote command on the specified target. -- If the defaults are specified for remote machine,remote username, -- remote password or remote directory the actual values are picked -- up from the switch file associated with the enclosing library -- If a default target key is specified then the target key of the -- enclosing world is used. The target key must be a valid -- RCF target key. The output of the remote command is displayed on a -- R1000 window. -- procedure Collapse_Secondary_Referencers (Directory : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- Collapses text files within specified directory and -- subdirectories below it to secondary referencer (pointy)files. -- Since "archive.copy" cannot copy secondary referencers -- 1.Convert secondary referencers to text files using -- "expand_secondary_referencers" -- 2.Archive.copy these text files. -- 3.Convert text files back to secondary referencers using this -- command procedure Expand_Secondary_Referencers (Directory : String := "<CURSOR>"; Response : String := "<PROFILE>"); -- Expands out secondary referencer (pointy) files to text files -- in the specified directory and all sub directories within it. -- Since "archive.copy" cannot copy secondary referencers -- 1.Convert secondary referencers to text files using -- this command -- 2.Archive.copy these text files. -- 3.Convert text files back to secondary referencers using -- "collapse_secondary_referencers" pragma Module_Name (4, 4133); pragma Bias_Key (32); end Rcf;
nblk1=19 nid=0 hdr6=32 [0x00] rec0=16 rec1=00 rec2=01 rec3=030 [0x01] rec0=0f rec1=00 rec2=02 rec3=088 [0x02] rec0=14 rec1=00 rec2=03 rec3=00a [0x03] rec0=15 rec1=00 rec2=04 rec3=004 [0x04] rec0=11 rec1=00 rec2=05 rec3=068 [0x05] rec0=15 rec1=00 rec2=06 rec3=018 [0x06] rec0=12 rec1=00 rec2=07 rec3=08a [0x07] rec0=19 rec1=00 rec2=08 rec3=030 [0x08] rec0=10 rec1=00 rec2=09 rec3=098 [0x09] rec0=14 rec1=00 rec2=0a rec3=006 [0x0a] rec0=15 rec1=00 rec2=0b rec3=042 [0x0b] rec0=13 rec1=00 rec2=0c rec3=08a [0x0c] rec0=15 rec1=00 rec2=0d rec3=01e [0x0d] rec0=1a rec1=00 rec2=0e rec3=024 [0x0e] rec0=15 rec1=00 rec2=0f rec3=03e [0x0f] rec0=14 rec1=00 rec2=10 rec3=028 [0x10] rec0=17 rec1=00 rec2=11 rec3=03a [0x11] rec0=14 rec1=00 rec2=12 rec3=01e [0x12] rec0=17 rec1=00 rec2=13 rec3=03c [0x13] rec0=15 rec1=00 rec2=14 rec3=094 [0x14] rec0=14 rec1=00 rec2=15 rec3=004 [0x15] rec0=19 rec1=00 rec2=16 rec3=000 [0x16] rec0=0e rec1=00 rec2=17 rec3=052 [0x17] rec0=13 rec1=00 rec2=18 rec3=02e [0x18] rec0=0c rec1=00 rec2=19 rec3=000 tail 0x21707effc81f9488c5415 0x42a00088462060003