|
|
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 - metrics - download
Length: 26624 (0x6800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Rcf, pragma Module_Name 4 4133, seg_014170
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦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 0x2150eed6a83127dee6949 0x42a00088462060003