|
|
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: 168974 (0x2940e)
Types: TextFile
Notes: R1k Text-file segment
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦dd137ea4c⟧
└─⟦this⟧
D_10_20_0 Release
(This release note can be viewed online or printed on a system
line printer using Queue.Print with Options => "raw".)
1. Overview
The main objectives of the D_10_20_0 release of the Rational
Environment are:
* To provide a production release of the Rational Environment
that will support production versions of the Cross-Development
Facility and Rational Design Facility products.
* To complete Delta features that were not implemented in the
D_9_25_1 release. For a complete list of new features, see
Section 4 of this document.
* To fix outstanding bugs discovered in the D_9_25_1 release.
2. Compatibility
An upgrade to the D_10_20_0 product will require the following
releases of the Design Facility, Cross-Development Facility,
Target Build Utility, and Rational Network Mail products. It
will not be possible to run older versions of these products with
D_10_20_0.
Upgrade of these products will be done in conjunction with the
D_10_20_0 Environment upgrade.
Release Required for Compatibility with Delta 1
R 10/17/88 1\f
Rational Environment Release Information
-------------------------
| Product | Revisio|
| | n |
-------------------------
| Design Facility| Rev6_0_|
| | x |
-------------------------
| MIL-STD-1750A | Rev3_0_|
| CDF | x |
-------------------------
| M68000 Family | Rev3_0_|
| CDF | x |
-------------------------
| MC68020/OS-2000| Rev3_0_|
| CDF | x |
-------------------------
| VAX/VMS CDF | Rev3_0_|
| | x |
-------------------------
| Target Build | Code9_4|
| Utility | _4 |
-------------------------
| Network Mail | Rev10_0|
| | _0 |
-------------------------
2.1. Interoperability
2.1.1. Archive
It will be possible to use Archive to move data between D_10_20_0
and earlier Delta systems. In some cases, moving subsystems
between D_10_20_0 and earlier Delta systems will not work:
2 10/17/88 R\f
D_10_20_0 Release
* It will not be possible to move subsystems or views of
subsystems on D_10_20_0 machines to primary subsystems on
earlier Delta machines.
* If you are moving a subsystem view from a primary subsystem on
a D_9_25_1 machine to a secondary subsystem on a D_10_20_0
machine, you may get a semantic error when trying to promote
Ada units. The error message will indicate that declaration
numbering failed because new declaration numbers cannot be
added to a secondary subsystem. This problem will occur if
there is a compilation-unit specification that contains a
generic instantiation in the view.
The workaround for this problem is to make the secondary
subsystem on the D_10_20_0 machine a primary subsystem using
Cmvc_Maintenance.Make_Primary(Moving_Primary =>True), make the
primary subsystem on the D_9_25_1 machine a secondary using
Cmvc_Maintenance.Make_Secondary, and then promote the Ada
units in the primary to the coded state.
If possible, you should continue development on the D_10_20_0
machine-that is, keep that subsystem as the primary. If
development must continue on the D_9_25_1 machine, you should
first fix the compatibility database on the D_9_25_1 secondary
by running the Cmvc_Maintenance.Update_Cdb command and then
remember to move your primary back to the D_9_25_1 machine.
If development continues on the D_9_25_1 machine, the problem
will recur the next time the spec of the generic being
instantiated changes.
You should not encounter this problem moving views from a
D_10_20_0 machine to a D_9_25_1 machine.
2.1.2. Mail
Rational Network Mail will work between machines running earlier
releases and those running D_10_20_0.
2.1.3. Network
Telnet, FTP, and RPC will work between machines running earlier
releases and those running D_10_20_0.
2.1.4. Target Build Utility
All Target Build Utility state will be preserved; that is, the
next invocation of Move_Via_Tape or Move_Via_Network will move
and recompile the same set of units it would have before the
upgrade to D_10_20_0.
R 10/17/88 3\f
Rational Environment Release Information
2.1.5. Package Remote
The operations in the new package Remote (see Section 4.7) will
work even if the remote machine is running an earlier release.
4 10/17/88 R\f
D_10_20_0 Release
2.2. Terminal Keymaps
In the D_9_25_1 release of the Environment, the names of keys for
different terminal types are defined in a single
Visible_Key_Names package
(!Machine.Editor_Data.Visible_Key_Names). In D_10_20_0, a key
name package that defines the key names for that terminal only is
included for each terminal type This will prevent having to
recompile all programs that depend on a single Visible_Key_Names
package every time a terminal type is added or a key name for a
specific terminal is changed.
After this release has been installed, all programs that are
compiled against Visible_Key_Names should be modified to use the
Key_Names enumeration type in the different key name packages for
each terminal type. These programs most likely will be
individual users' Terminal_Type_Commands procedures or any
programs that use the Window_Io.Raw package to read raw data from
a keyboard.
This change was released in D_9_25_1_2 and later releases.
3. Upgrade Impact
The D_9_25_1 to D_10_20_0 upgrade will not force customers to
Archive.Save and Restore or to recompile any of their programs.
Tools written against Directory_Tools, Cmvc, Work_Order,
Work_Order_Errors, and Work_Order_Implementation specs may need
to be modified.
The new D_10_20_0 compilation system will require running a
program (run automatically as part of the upgrade) to convert all
existing subsystem compatibility databases to a new format. The
time necessary to run this program will vary depending on the
number of subsystems on the machine. To convert 200 subsystems
takes about 1.5 hours.
CMVC history may be affected by changes to the pretty-printer to
implement alignment. If the new D_10_20_0 pretty-printer
capabilities are used (specified by modifying a library switch),
the image of a newly formatted program may be different even if
the differences are only in the format. Such changes will be
stored in the CMVC database. All differences caused by the new
pretty-printer will be shown with the
Cmvc.Show_History_By_Generation command, but the configuration
editor will attempt to minimize display of differences due to
changes in white space.
For the new compiler to pass certain validation tests, the
precision of Universal_Real was changed. This may cause
incompatibilities between subsystem spec and load views if
constants of this type are exported. Such an incompatibility
will appear after either view has been recompiled. One solution
is to recompile the other view. If the incompatibility occurs
R 10/17/88 5\f
Rational Environment Release Information
after the load view is recompiled, users may make a new spec view
and update the imports for clients instead.
Once a system is upgraded to D_10_20_0, it is not possible to
revert to a previous Environment release.
6 10/17/88 R\f
D_10_20_0 Release
3.1. Spec Changes
Some Environment specs have changed in D_10_20_0. The changes
mentioned below are changes with respect to D_9_25_1, and some
may have been introduced in the D_9_33_0 or D_10_9_10 release.
If a release number appears after the spec name, this indicates
that the changes first appeared in that release.
* !Commands.Ada
* !Commands.Cmvc (some changes appear in D_9_33_0)
* !Commands.Work_Order (D_9_33_0)
* !Commands.Debug (D_9_33_0)
* !Commands.Operator
* !Implementation.Cmvc_Implementation
* !Implementation.Work_Order_Implementation (D_10_9_10)
* !Implementation.Work_Order_Errors (D_10_9_10)
* !Tools.Networking.Transport
* !Tools.Compatibility.Revn_N_Spec.Units.Check
* !Commands.Archive (spec comments updated)
3.2. Keymaps
There are new versions of the standard Environment keymaps
located in !Machine.Editor_Data. These new versions contain no
modifications to the current key bindings, but they do contain
recommended standard key bindings for layered products such as
Network Mail or Design Facility. These recommendations are in
the form of comments that can be uncommented if applicable.
Installation of D_10_20_0 overwrites the existing keymaps in
Machine.Editor_Data. It is recommended that site-specific key
bindings be implemented via creation of user-specific keymaps.
If site-specific key bindings have been made to the system
default keymaps, part of the upgrade process is to save the old
keymap. It is recommended that these site-specific bindings be
merged into user keymaps.
4. New Features
4.1. New Specs
The following packages are new to the Environment in D_10_20_0:
R 10/17/88 7\f
Rational Environment Release Information
* !Commands.Cmvc_Hierarchy
* !Commands.Debug_Maintenance
* !Commands.Remote
* !Implementation.Compatibility
8 10/17/88 R\f
D_10_20_0 Release
This release also contains the specifications for Lrm_Interface
and Design tools, but these tools will not work unless they are
authorized. This authorization will be established for all
customers of the Rational Design Facility. Users who do not have
this authorization can compile programs against these
specifications, but the programs will not execute. These
specifications are in !Tools.Design and !Tools.Lrm.
4.2. CMVC Features
4.2.1. Support for Controlling Binary Objects
This new feature enables controlling of objects using
Cmvc.Make_Controlled without saving the object's image in the
CMVC database. This is the mechanism that must be used to
control objects that have no textual representation-that is,
objects other than text files and Ada units. For objects whose
source is not maintained:
* If an object is checked out, Cmvc.Abandon_Reservation will not
revert the object to its previous state.
* Cmvc.Check_Out will not cause the object to be updated to the
latest checked-in value if a later version does not exist in
another view.
* Cmvc.Accept_Changes will not cause the object to be updated if
the version being accepted does not exist in another view.
* Cmvc.Make_Controlled will not check that the new object being
controlled is equivalent to the last checked-in value.
A new function,
!Implementation.Cmvc_Implementation.Element_Operations.Saves_Sour
ce, can be used to determine whether the image of an object is
stored in the database.
4.2.2. Support for Non-R1000 Target Code
Spec/load subsystems are able to contain both spec/load and
combined views. There are still two types of subsystem:
spec/load and combined. Spec/load subsystems are able to contain
spec, load, and combined views, and hierarchical importing is
enforced. Combined subsystems can contain only combined views,
and circular imports are allowed.
If non-R1000 subsystems do not export any generic compilation
units, then spec/load subsystems still can be used. If they do,
then these subsystems must be implemented using combined views.
This new feature allows the combination of spec/load and combined
views within the same subsystems so that CMVC control of code for
multiple targets is possible by joining objects in the combined
R 10/17/88 9\f
Rational Environment Release Information
views for the target code with the load views for R1000 code.
4.2.3. Cmvc_Hierarchy Operations
The Cmvc_Hierarchy operations provide the capability of
constructing and managing the release of multisubsystem Ada
programs.
When an application consists of multiple subsystems, the
subsystems can be included in an Environment object called a
system. A subsystem is included in a system by establishing a
parent-child relationship between the system and subsystem
objects using the command Cmvc_Hierarchy.Add_Child. Automated
facilities are available to track the latest releases of the
children of a system object and to build activities that
reference these releases.
System objects have the same internal directory structure as
subsystems. Systems contain views called system views. Views in
systems contain the same subdirectories found in subsystem views
and an additional subdirectory called Paths.
10 10/17/88 R\f
D_10_20_0 Release
The initial system view is a working view. Within the state
directory of the working system view, you can build a release
activity. A release activity built in this directory, using the
Cmvc_Hierarchy.Build_Activity command, will automatically contain
entries that reference the latest release from each child
subsystem. If necessary, you can modify the activity after it
has been built using the Cmvc_Hierarchy.Build_Activity command.
The activity should not be modified directly using the activity
object editor. Once the activity is correct, a released system
view of the system can be spawned from the working view.
A system can contain multiple paths that correspond to the paths
in the child subsystems. The release activity in each system can
be made to reference releases from the corresponding paths in the
child subsystems by using path restrictions to limit the child
subsystem views to be included when the
Cmvc_Hierarchy.Build_Activity command is executed.
It is also possible for systems to be children of other systems.
If this is the case, the build command copies the contents of the
child system's activity into the parent system's activity.
4.2.4. Configuration Editor
The configuration editor (CMVC OE) allows the display and
manipulation of information in the CMVC database. For example,
the current contents of a configuration can be viewed, previous
generations can be displayed, and latest changes can be accepted.
The CMVC OE is entered by executing !Commands.Cmvc.Edit on a view
or a configuration. When applied to a view, the corresponding
configuration is displayed. The CMVC OE then shows all of the
objects in the configuration in a directory-like format.
Three types of images are managed by the CMVC OE: configuration
images contain the contents of configurations; generation images
contain the contents of particular generations of elements; and
history images contain the history and notes associated with
particular generations.
The CMVC editor does not redraw its image unless the user presses
the [Format] key. If you have a CMVC editor display on the
screen and perform CMVC operations that should affect the
display, it will become out of date. Press [Format] to make it
up to date again.
4.2.4.1. Configuration Images
Configuration images display the contents of a configuration in a
directory-like format. An elided configuration image lists the
generations selected by the configuration. An expanded
configuration image displays reservation information for each
element. This information specifies whether the element is
currently checked out or checked in, when the reservation
R 10/17/88 11\f
Rational Environment Release Information
operation occurred, and which view owns the reservation. When a
checkin time is displayed, it is the time when the latest
generation was checked in, and when a checkout time is displayed,
it is the time when the latest generation was checked out. The
configuration image also is used to provide access to generation
images and history images for the elements in the configuration.
Underlining is used in expanded configuration images to mark
items that are checked out or out of date. This allows [Next
Item] and [Previous Item] to move the cursor to elements of
interest.
Further expansion of a configuration image past the reservation
information displays the reservation token associated with each
item in the configuration. The next level of expansion displays
the token name and all working views that currently are joined to
this configuration for the particular element.
CMVC operations such as Check_In, Check_Out, and Accept_Changes
can be executed from configuration images by pressing the
[Promote], [Demote], and [Complete], respectively. The
configuration image is updated to reflect the results of these
operations.
4.2.4.2. Generation Images
Generation images contain the text of particular generations of
elements. These images are accessed through the [Definition] key
applied to elements in configuration images.
In an expanded form, a generation image contains additional
information specifying the differences between the current
generation and the previous generation. Differences are shown on
a line-by-line basis. A line beginning with a minus (-)
indicates that the line was deleted from the previous generation.
A line beginning with plus (+) indicates that a line was added to
the previous generation. The start of each difference region is
underlined to allow [Next Item] and [Previous Item] to move the
cursor between difference regions.
The generations of a particular element form a sequence from a
starting generation to the latest generation. It is possible to
iterate through the sequence of generations using Common.Undo and
Common.Redo. For example, Undo applied to a generation image
will display the image of the previous generation.
4.2.4.3. History Images
History images contain the history and notes that have been
entered for a particular generation. History images are accessed
through the Common.Explain command from either configuration
images or generation images. Note that if the cursor is
currently on an underline, Explain will produce an explanation of
the underline instead of displaying the history image, but in
such a case the history image can be displayed by moving the
12 10/17/88 R\f
D_10_20_0 Release
cursor off the underline.
History for a generation includes the checkout and checkin times
as well as the user who performed the operation. Notes include
the comments provided to CMVC commands as well as notes added by
editing the history image. New notes also may be appended to a
history image by editing the history image. This allows the
history to edited at any time that is convenient.
Common.Undo and Common.Redo can be used to iterate over the
history for differant generations of the same element.
History images also exist for the configurations themselves.
History images for configurations display the release history for
the configuration. The release history is displayed by using
Common.Explain when the cursor is on the header line of the
configuration image.
4.2.4.4. Associated Directory Objects
When a configuration is associated with a view, the view can be
considered the associated directory object of the configuration.
Similarly, each controlled object in the view is the associated
directory object for some element in the configuration.
Commands such as Check_In, Check_Out and Accept_Changes, when
applied to elements in a configuration, actually are applied to
the associated directory object in the associated view.
Commands also are provided to go between images managed by the
CMVC OE and associated objects in the directory system.
4.2.4.5. Configuration Image Commands
Configuration image commands from package !Commands.Common
include:
* Definition: Displays the generation image for the generation
of the element currently in the configuration when applied to
elements in the configuration image listing.
* Explain: Displays the history image for the generation of the
selected element. If the cursor is on the header line, then
release history for the configuration is displayed. If the
cursor in on an underline (other than the header), an
explanation of the underline is given.
* Expand: Shows verbose information for the element or entire
configuration. Each expansion displays information at the new
level. There are four levels of information. Level one shows
just the element and generation information. Level two shows
reservation information. Level three shows the reservation
token name. Level four shows the reservation token name and
the working views that are joined by that token.
R 10/17/88 13\f
Rational Environment Release Information
* Elide: Shows elided information for the element or entire
configuration. Each elision goes back one level as defined
above in Expand.
* Revert/Format: Redraw the configuration image with current
information from the CMVC database. Note that CMVC OE images
are updated automatically when Promote, Demote, or Complete
are executed but not when the CMVC database is changed by any
other command.
* Promote: Checks in objects that are checked out; can be
applied to the entire configuration or individual elements.
The configuration must have an associated view. Check_In is
performed with the default options for Cmvc.Check_In. The
image is updated to reflect the result of the operation.
* Demote: Checks out objects; can be applied to the entire
configuration or individual elements. The configuration must
have an associated view. Check_Out is performed with the
default options for Cmvc.Check_Out and with Allow_Demotion =>
True. The image is updated to reflect the result of the
operation.
* Edit: Checks out and then displays the associated object. The
configuration must have an associated view. The Check_Out is
performed with the same options as the Demote operation. The
cursor is left in the associated object if the Check_Out
succeeds.
* Complete: Accepts changes on objects; can be applied to the
entire configuration or individual elements. The
configuration must have an associated view. Accept_Changes is
performed with the default options for Cmvc.Accept_Changes and
with Allow_Demotion => True and Remake_Demoted_Units => False.
The image is updated to reflect the result of the operation.
* Enclosing_Object: Displays the enclosing subsystem.
4.2.4.6. Generation Image Commands
Generation image commands from package !Commands.Common include:
* Definition: Displays the associated directory object for this
generation.
* Explain: Displays the history image for the history associated
with the current generation. Note that if the cursor is on an
underline, an explanation of the underline is given.
* Expand: Shows differences between this generation and the
previous generation. Differences are shown on a line-by-line
basis. Lines beginning with a minus (-) indicate lines
deleted from the previous generation. Lines beginning with
plus (+) indicate lines added to the previous generation. The
start of each difference region is underlined.
14 10/17/88 R\f
D_10_20_0 Release
* Elide: Does not display differences.
* Undo: Displays the previous generation for the current
element. The Repeat_Count parameter controls which preceding
generation is displayed.
* Redo: Displays the next generation for the current element.
The Repeat_Count parameter controls which succeeding
generation is displayed.
* Enclosing_Object: Displays the configuration image for the
last configuration that was visited.
4.2.4.7. History Image Commands
History image commands from package !Commands.Common include:
* Definition: Displays the directory object associated with the
generation for which history is being displayed.
* Edit: Allows new notes to be added to the history image.
* Commit/Promote: Commit the additional history.
* Expand: Displays the cumulative history for previous
generations. The Repeat_Count parameter controls the range of
history that is shown.
* Elide: Reduces the cumulative history that is displayed. The
Repeat_Count parameter controls the range of history that is
shown.
* Revert/Format: Redraw the history image with current
information from the CMVC database.
* Enclosing_Object: Displays the generation image for the
generation associated with current history image.
* Undo: Displays the history image for a generation that
preceded the current generation. The Repeat_Count parameter
controls which preceding generation is displayed.
* Redo: Displays the history image for a generation that follows
the current generation. The Repeat_Count parameter controls
which succeeding generation is displayed.
4.2.4.8. Spec Commands
The following commands are executed directly from the
specification of !Commands.Cmvc:
* Edit: Displays a configuration image for the specified
configuration when applied to a configuration, view, or any
object within a view.
R 10/17/88 15\f
Rational Environment Release Information
* Def: Displays the associated directory object for the selected
element or configuration when executed from a configuration
image. This command is applicable only if the configuration
has an associated view.
* Notes: Displays the history image for the generation
associated with the directory object when applied to a
controlled directory object.
4.2.4.9. Other Commands
Other Cmvc and Compilation commands can be executed from
configuration images in the CMVC OE. These commands are
applicable only when the configuration has an associated view.
The commands are applied to the corresponding directory objects
in the associated view.
For example, Compilation.Make ("<CURSOR>") can be executed in a
CMVC OE configuration image and will compile the corresponding
object in the view associated with the current configuration.
Note that names in these commands must be either fully qualified
or special names such as "<CURSOR>", "<IMAGE>", "<SELECTION>", or
"<REGION>", which are interpreted by the CMVC OE to apply to
associated directory objects.
4.2.5. Clarifications of CMVC Functionality
Following paragraphs describe behavior of CMVC which have been
subject to misinterpretation.
The execution of
Cmvc.Join (What_Object => "X",
To_Which_View => "V")
is equivalent to:
Cmvc.Sever ("X");
Cmvc.Join ("X", "V");
That is, the result is that X is first removed from any join set
it is currently in and then it is placed in a join set with V.
This means that for views A and B each with an object X, then
Join (X, A) from B is not necessarily the same as Join (X, B)
from A. If a new unit is to be added to a join set, the command
should always join the new unit to an existing join set.
Otherwise two join sets will result: one with the new unit and
the one it was joined to, and one with all the other members of
the old join set. If wildcards are used to join objects in a
view and the wrong direction is used, large numbers of joined
objects can be (accidentally) severed.
16 10/17/88 R\f
D_10_20_0 Release
Cmvc.Join performs all join operations atomically. This means
that any error will result in none of the joins being done, even
if there are progress (+++) messages in the log. Most CMVC
operations behave this way.
Import restriction files may be named for the full pathname of a
view. For example, if you want to apply an import restriction to
subsystem !Subs.Sub1.Code, but not to !Other_Subs.Sub1.Code, then
you can create an import restriction file for your load view
named "Other_Subs_Sub1_Code", rather than naming it simply
"Code". If you describe an import restriction with the simple
name of a subsystem, the restriction will apply to all subsystems
with that simple name. This can result in units from other spec
views unexpectedly being absent from the importing view, or the
entire Cmvc.Import operation may fail. Rational recommends using
full pathnames in naming import restrictions.
If you try to control an element in a view without saving source,
and the CMVC database is already saving source for an element of
that name, Make_Controlled will fail. You must destroy all
configurations containing the old element, uncontrol the old
element in any existing views, and expunge the database before
you will be able to control the new element. There are
interfaces in Cmvc_Implementation which enable you to iterate
over all configurations and locate the ones containing a
particular element. !Implementation.Directory or
!Tools.Directory_Tools may be used to find which views contain
that element.
When a code view is made, the compatibility signature of each
imported spec view is recorded in that code view for later
checking. Since there are no semantic dependencies between code
views and imported specs, this is the only way to know if the
imported spec view changes. If the spec view is later modified,
the unit's signature and the signature in the code view will
differ, and the views will be incompatible. The code generator
checks the signatures at load time, when the code view is
referenced while running a command or while coding a main
procedure. If they are incompatible, the code generator issues
an error message and refuses to handle the code view.
Demotion of a checked in, controlled Ada unit with open insertion
points will fail with a message indicating that the unit must
first be checked out. Such units should be checked out and
checked back in manually. This affects Compilation.Demote as
well as the implicit demotions done by Archive when the Remake
option is specified. This behavior is necessary because, when
the unit is demoted, the system subsumes the insertion point into
the parent unit, making its image differ from that stored in the
CMVC database. To avoid the manual check out and check in
operations, units should not be checked in if they have open
insertion points.
When a spec view is spawned from another spec view that contains
controlled objects, objects in the new spec view will be
R 10/17/88 17\f
Rational Environment Release Information
controlled and joined to the source spec view. This result is
different from that when a spec view is spawned from a working
view or a release view that contains controlled objects, where
the objects in the new spec view are left uncontrolled.
Changes to the pretty printer (such as the new alignment
characteristics described in "Pretty Printer Changes") can result
in objects whose image does not match that recorded in the CMVC
database. Check_Consistency will report such mismatches. In
order to make the images recorded in the CMVC database consistent
with the reformatted images of objects, one can Check_Out and
then Check_In each object without modification. This creates a
new generation that has the image produced by the current pretty
printer, which matches the object in the view.
Note, however that the Check out operation also performs an
implicit "accept changes" operation if the object does not
correspond to the latest generation in its join set. This means
that the contents of the view may be changed by the procedure
outlined above. Rational recommends that before the explicit
check out and check in for pretty printer compatibility is done,
all joined paths and subpaths should be made consistent; that is,
all joined objects should be updated to the most recent
generation for that join set.
Note also that this procedure will not work for release views,
even if the release view is first unfrozen - because objects in
release views cannot be checked out.
4.2.6. Compatibility Checking
A new procedure and function for compatibility checking are
supplied in !Tools.Compatibility. These can be used to determine
whether units in spec and load views are compatible. See the
commented package spec for more details.
4.2.7. Compatibility Database Utilities
The new package !Implementation.Compatibility includes
programmatic interfaces that can be used to identify whether a
subsystem is a primary or secondary. One function returns the
subsystem_id for a specified subsystem; other functions return
Boolean values. See the online spec for details.
The new package Cdb_Maintenance has been added to
!Tools.Compatibility. The subprograms in this package are
designed to be used by Rational support personnel, for diagnosing
and addressing problems associated with the compatibility
database. See the commented spec for more details. These tools
replace the procedure !Commands.Cmvc_Maintenance.Repair_Cdb that
is documented in the Program Management volume of the Rational
Environment Reference Manual. The procedure Verify in the new
package replaces and improves on Repair_Cdb with Effort_Only =>
18 10/17/88 R\f
D_10_20_0 Release
True. There is no functionality equivalent to Repair_Cdb with
Effort_Only => False; instead, repair operations involve
recompilation of incompatible units.
4.3. Dependents Object Editor
The new dependents OE replaces the obsolescence, name resolution,
and show usage menus. The new output looks similar to the
D_9_25_1 display for these menus, and all of the D_9_25_1 menu
capabilities still exist. More information is available in
dependents/usage menus, and the capability to demote lists of
dependent declarations and statements, rather than entire
compilation units, has been added.
Four new session switches have been added to control menu
displays:
* The Dependents_Delta0_Compatibility switch controls two
features of the display. When true, the menus will look like
D_9_25_1 menus. When false, the first line of the menu may
look different to reflect some of the new capabilities. Also,
the names of objects will appear differently. The simple name
of the object will appear first, followed by the name of the
library containing the object. The default value is true.
* The Dependents_In_Order_Pathnames switch controls the display
of object names. When true, object names will appear as full
directory pathnames starting with !. When false, object names
will be displayed with the simple name of the object first,
followed by the name of the enclosing library. The
Dependents_Delta0_Compatibility switch must be false for this
switch to have an effect. The default value is false.
* The Dependents_Show_Library switch controls whether object
names will be displayed as simple names or as full pathnames.
For this switch to have an effect, the
Dependents_Delta0_Compatibility and
Dependents_In_Order_Pathnames switches must be false. The
default value is true.
* The Dependents_Show_Unit_State switch controls whether Ada
unit state information for each object is included in the
display. The default value is false.
4.3.1. Show Usage and Obsolescence Menus
Although the initial display gives the same information available
in earlier Environment releases, more information can be obtained
using commands from package Common. The following is a quick
overview of how to use some of these new commands. An
application note with more details is planned; availability will
be announced with the production release of the product.
R 10/17/88 19\f
Rational Environment Release Information
* The initial display will show a list of the immediate
dependents for a compilation unit or declaration. Press
[Complete] to get the demote closure of the dependents.
* The initial display will show a list of compilation units that
depend on a compilation unit or declaration. Use the
Common.Expand ([Object] - [!]) and Common.Elide ([Object] -
[.]) commands to control display information. The editor's
window banner will indicate the type of information being
displayed. The following terms are used in this banner:
* State: Indicates that the state of the item is being
displayed.
* Unit: Indicates that the name of the compilation unit
containing the dependency is being displayed.
* Parent: Indicates that the name of the enclosing Ada
construct is being displayed. When this construct is the
same as the compilation unit, *comp_unit* is displayed.
* Kind: Indicates that the type of usage is being displayed.
For instance, stmts means that the usage is in a statement,
decls means that the usage is in a declaration, and call
means that the usage is in a subprogram call.
* Item: Indicates that the items containing the usage are
being displayed. The item level can be expanded to show
the Ada source where the actual usage occurs. At this
level, all direct references to the subject of the
usage/obsolescence are underlined, and you can use the
Editor.Cursor.Next and Editor.Cursor.Previous commands to
traverse through the references.
* Region selection can be used to select a set of displayed
items. Once selected, [Demote] and [Promote] can be used to
demote and promote these items. This can be useful and save a
lot of compilation when you have a few dependencies within
each of the compilation units in the demote closure. If there
are many dependencies in a compilation unit, then the time
required to demote and promote them incrementally using the
dependents object editor may be longer than demoting and
repromoting the entire compilation unit.
4.4. System Management
4.4.1. Logoff on Disconnect
Implementation of this feature is included in D_10_20_0. If this
terminal characteristic is enabled, the user's session will be
terminated if a disconnect is detected on the terminal's port. A
disconnect on an RS232 port is detected by a drop in the DCD
signal; a disconnect on a Telnet port is detected by the
20 10/17/88 R\f
D_10_20_0 Release
termination of the Telnet session. In either case, uncommitted
buffers will be saved before the user's session is terminated.
By default, this feature is not enabled for all ports. To enable
the feature, use the Terminal.Set_Logoff_On_Disconnect procedure.
Any disconnect event on an RS232 port is passed to the program
reading from the port. That is, if the R1000 detects a
transition from ON to OFF on the DCD input (pin 8) of the RS232
interface, a disconnect status code will be returned to the
program. With previous releases, RS232 disconnect events were
often not reported; a bug in the input handling software caused
them to be lost.
In particular, if a port is at a login prompt (that is, the port
has been enabled for login, but no one is currently logged in)
and the R1000 sees DCD switch to OFF, the login manager issues
the error message "Unable to process input" immediately following
the login prompt. This message is not indicative of a fatal
condition; the ability to log in is not advsersely affected.
This condition can be avoided by making certain DCD does not
switch OFF for RS232 ports being used for logging in. The
Rational terminal cable (part no. 125-001808-003) is properly
wired to avoid this condition.
The DCD can switch OFF if it is connected to the R1000's DTR
output; this output is switched OFF by the R1000 to initiate a
disconnect. For example, if a port has been configured with
Disconnect_on_Logoff = True and DTR is connected to DCD, then
whenever anyone logs out the login manager will issue the "unable
to process input" message. DCD can also switch OFF if it is
connected to external equipment (such as a terminal server) that
switches this signal OFF.
4.4.2. Systemwide Login
A systemwide login has been implemented. If a coded
parameterless procedure called System_Login exists in !Machine,
it will be executed unconditionally. After this, the D_9_25_1
rules for login procedure execution will be used: a user's
searchlist is employed in an attempt to find a parameterless
procedure called Login.
4.4.3. Tape Log Entries
Entries logging tape mount requests, tape mounting, and tape
unloading are now written into the system error logs. Reports
generated by the tools in System_Availability generate reports
with this new information.
R 10/17/88 21\f
Rational Environment Release Information
4.4.4. Password Policies
The system manager can set system-wide policies for password
expiration and length. The new interfaces for setting policies
and getting information about these policies have been added to
package Operator. Changing these policies will require operator
capability.
4.4.4.1. Password Security
The system can ensure that the number of characters in a password
passed to the Operator.Create_User or Operator.Change_Password
procedures is more than a specified minimum. The default is zero.
The system allows the system manager to establish password
expiration periods. There are actually two periods: the first is
the duration a password can exist without changing before the
user is asked (at each login) to change the password; the second
is the duration a password can exist without being changed. When
this second interval expires, the user will not be able to login;
they will have to get the operator to change their password
before they will be able to login again.
The password minimum length and expiration periods are set using
the Set_Password_Policy procedure in !Commands.Operator. This
procedure has three parameters:
* Minimum_Length - Specifies the minimum acceptable length for a
password. All passwords must be at least this number of
characters long.
* Change_Warning - Specifies the number of days after which the
user will be notified at login that the account password
should be changed. The actual time that warnings will start
is midnight of the day that the warning period expires. This
period is measured from the day that the user last changed
their password.
* Change_Deadline - Specifies the number of days after which the
user will not be allowed to login without changing the
password. The actual time of expiration will be midnight of
the day that the deadline period expires. This period is
measured from the day that the user last changed their
password.
When a machine is booted, the Change_Warning and Change_Deadline
are set to Days'Last; call Set_Password_Policy in
Machine.Initialize to reset the policies.
The procedure Show_Password_Policy in !Commands.Operator can be
used to display the current password policies and the expiration
dates for specified users. This procedure takes one parameter:
* For_User - Specifies the users for which expiration dates will
be displayed. Wildcards can be used to specify more than one
22 10/17/88 R\f
D_10_20_0 Release
user. For example, "@" specifies all users on the machine.
If there is no Change_Warning or Change_Deadline set, the
For_User parameter is ignored.
Also provided in package !Commands.Operator are functions that
return the minimum password length, password warning period,
password expiration period, and the expiration dates for a
specific user.
4.4.5. Additional Diagnostic Support
Support for diagnostic communication using a PAD has been added.
Also, the R1000 system does not have to be constantly connected
to the telephone line to run the remote diagnostics/debuggers.
The R1000 will continue to retry outgoing calls instead of giving
up after three unsuccessful attempts.
To allow for automatic boot when power is restored to an
unattended R1000 Series 200, changes were made to allow a
two-minute delay for the disks to spin up. This delay is invoked
only if the keyswitch is in automatic mode and the
Boot/Crash/Maintenance settings for I/O Processor Auto Boot and
R1000 Auto Boot are set to YES. The delay may be terminated by
pressing any key. You will be prompted when the delay is invoked
with a message from the IOC:
2 minute delay for disks to load, hit any key to bypass
When a system is booted, the status of disk drives that are
online is displayed, as well the WRITE ENABLED / WRITE PROTECTED
status of the drive.
4.5. Keyboard Macro Editor
Keyboard macros can be saved in a clear text form that can be
edited. To save keyboard macros in this form, use the
Editor.Macro.Save procedure with Expanded => True. If Expanded
is false, the macros will be saved in binary form.
If the macros are saved in editable form, they will be reparsed
at each login, which can be time-consuming. In general, users
are advised to edit the macro file, make sure that it is correct,
and then save the macros in binary form.
If changes are made to the macro file, a user must run
Editor.Macro.Restore or log off and then on again for the changes
to have an effect.
The macros file is created in your home world, and it is called
Terminal_Type_Macros, where Terminal_Type can be Rational, Facit,
VT100, or a user-defined terminal type.
R 10/17/88 23\f
Rational Environment Release Information
The first line of each macro contains the macro number. Each
subsequent line describes the keystrokes and contains two
entries. The first entry indicates whether the command in that
line should be executed immediately (EXECUTE) or should be
brought up in a Command window (PROMPT). The next entry is the
command.
At the end of the file is a list of the key bindings that map
each macro number to a key.
4.6. Ada Completion
If the user requests semantic completion for an Ada fragment that
has multiple possible completions, the Environment will display a
Completion Menu with the possible choices. For D_10_20_0 this
Completion Menu will look exactly as it did in D_9_25_1; however,
now a user can select an entry in the menu and press [Complete]
and that selection will be used to complete the construct in the
Command window or Ada program where completion was originally
requested.
In addition, completion of an Ada fragment with a partial
parameter list will result in a full parameter profile expansion
that utilizes the partial parameter values where applicable.
4.7. Remote Execution
A new package called !Commands.Remote has been added. This
package contains two procedures that give a user the ability to
execute programs on other R1000s on the same network and to
display the image of an object from another R1000 (on the same
network) in a local I/O window.
The identity of the remote jobs (and therefore their access
rights) are identical with that for the Archive Server running on
the remote machine, unless the user's local session switch
Profile.Remote_Password has a value. See SJM-76 and following
pages in the Rational Environment Reference Manual for an
explanation of how remote user names and passwords are used with
Archive.Copy; use of the password with commands in package Remote
is identical.
Remote jobs will run with the user name of the remote archive
server, but the access rights for the jobs will be as documented
in SJM.
4.8. Debugger Maintenance
A new package called !Commands.Debug_Maintenance has been added.
This package contains a procedure called Wait_For_Job that can be
used to synchronize user programs with the debugger. When
called, this procedure pauses while the debugger has the running
24 10/17/88 R\f
D_10_20_0 Release
flag on and returns when the program stops in the debugger. This
can be useful for writing debugger script programs. For example:
Debug.Break (Location => "Test_Program.1s");
Debug.Execute;
Debug_Maintenance.Wait_For_Job;
Debug.Put (Variable => "Test_Variable");
4.9. Networking
A new optional feature has been added to Telnet_Server.
Associated with each Telnet port is a Boolean state variable
named Convert_Received_New_Line_To_Cr. When it is true, a
received Telnet New_Line signal (CR and LF) will be returned as
CR alone to the caller of Telnet_Server.Receive. When false,
such a signal will be returned as the sequence CR and LF. The
default value (assigned at system boot time) of this switch is
true. For existing applications, this has worked well: it
compensates for the behavior of Bridge and other Telnet clients
that send CRLF when the user typed only CR. For future
applications that need to transfer binary data, turning this
switch off (false) probably will work better. The Telnet_Server
exports operations to read and write the value of this switch.
4.10. Editor
In D_10_20_0, there is a notification in the Message window
banner indicating the number of unread mail messages.
4.11. Print Spooler
The print spooler will notify users of the device on which the
request is being printed when the request starts printing and in
the print completion message. It will also attempt to queue a
request to another device (associated with the specified class),
if the current device cannot be connected to successfully, before
trying again with the original device.
4.12. Debugger
The Break command now accepts a machine address and sets a break
at that address.
Run(Machine_Instruction) is implemented for CDF targets.
Task_Display with the Addresses flag set to true echoes the
current PC of stopped tasks for CDF targets.
The ability to make selections in debugger windows and pass
selections to debugger commands has been expanded. Certain lines
indicating a source location, exception name, or task name can be
R 10/17/88 25\f
Rational Environment Release Information
selected in a debugger ouptut window; the selection then can be
used as a parameter to debugger or other Environment commands.
The debugger commands will accept special names, such as
"<REGION>", "<SELECTION>", and so on.
The following debugger output is selectable:
* Reports of events (breakpoint reached, step completed, trace
output, exception handled, task stopped) can be selected. They
contain the location of the event, task involved, and
exception name (if applicable).
* Task display output can be selected and used to indicate a
task or its defining location.
* Stack display output indicates the task and location in the
frame.
* History display output indicates the task and location of the
history entry.
* Command echoing for Put and Modify commands can be selected
and, if you press [Put], the object will be redisplayed.
Selections are interpreted as follows:
* Locations: Whenever a location is required in a command,
"<SELECTION>" can be given and, if the selected line contains
an Ada location, that location will be used.
* Exceptions: The exception name for the Catch, Propagate, and
Forget commands will accept a selection. For example, if the
debugger catches an exception and displays:
Exception .FOO.BAR
caught at .BLAP.MUMBLE.3s [task %root_Task]
the first line can be selected and the [Propagate] key used to
propagate that exception.
* Tasks: Lines that indicate a location almost always contain a
task name. These lines can be selected. If the null string
is given for a task name to a debugger command and a task is
selected, that task will be used for the following commands:
Clear_Stepping, Execute, History_Display, Hold, Information,
Register_Display/Modify, Release, Run, Set_Task_Name, Stack,
Stop, Task_Display.
* If a command (such as the Break command) requires both a
location and a task, the selection is used to derive the
location and not the task name.
For example, after Task_Display is executed, a line of the
output can be selected, the stack command issued, and the
stack for the defining task will be displayed.
26 10/17/88 R\f
D_10_20_0 Release
As another example, if you were to indicate the Break command
on the same selection, a breakpoint will be set on the first
declaration of the task, but it will apply to all tasks.
4.13. Facit Keymappings
The following table summarizes the keymappings that have been
added to the D_9_25_1 Facit terminal keymap. These changes were
released in D_9_25_1_2 and subsequent releases.
Facit Keymappings
----------------------------------------
| Key Name | Command |
----------------------------------------
| ESC_TAB | Editor.Char.Tab_Forward |
----------------------------------------
| ESC_BACK_TAB| Editor.Char.Tab_Backward |
----------------------------------------
| ESC_RIGHT | Editor.Cursor.Next |
----------------------------------------
| ESC_LEFT | Editor.Cursor.Previous |
----------------------------------------
| ESC_EQUAL | Editor.Char.Insert_String|
| | (Value => "=>") |
----------------------------------------
| ESC_SEMICOLO| Editor.Char.Insert_String|
| N | (Value => ":=") |
----------------------------------------
4.14. Archive
An option called Different_Objects has been added to the (New,
Updated, Changed, Existing)_Objects group of package Archive.
Changing the Access Control List for an object modifies the
system update time. This can affect whether objects are restored
by operations from package Archive when options Update_Objects or
Changed_Objects are used. It is possible that some object which
should be restored (because newer contents were in the backup)
will not be restored (because the ACL for the older version was
changed). To avoid this problem, users should consider using the
new option Different_Objects with Archive operations.
There also is a new option called Goal_State on Archive.Copy and
Archive.Restore.
* If Goal_State = Installed or Coded, units will be promoted to
that state regardless of the state they were in when they were
saved/copied.
R 10/17/88 27\f
Rational Environment Release Information
* If Goal_State = Archived, units will be in the archived state
when the command is finished. No mechanisms exist within the
system to restore units directly to this state, so units are
still parsed and are demoted to archived at the end of the
archive process.
* If units in the archived state are copied onto the same
machine, they will be copied as archived. If Goal = Source,
they will be promoted to source after copying.
For network Copy or Restore operations that do not specify a
Goal_State option, units that were in the archived state when
saved will become source (or greater).
4.14.1. Archive Mappings
The names to which archived links and switches are restored can
be changed by use of the file !Machine.Archive_Mappings. This
file now can also specify changes to target key names. If the
string name of the target key saved on the archive is different
from the string name on the system, the old (archived) name can
be mapped to the new (system's) name.
The Archive_Mappings file contains up to three groups of name
pairs, with groups separated by two blank lines:
<link_name_on_archive>
<link_name_on_system>
...
<blank>
<blank>
<switch_name_on_archive>
<switch_name_on_system>
...
<blank>
<blank>
<target_key_name_on_archive>
<target_key_name_on_system>
When Archive.Restore notices a link name, switch name, or target
key name that is one of the <..._on_archive> names, it creates a
link, switch, or target key using the <..._on_system> name
instead of the archived name.
The file !Machine.Archive_Mappings must exist before the restore
is started; it cannot be read from the archive.
If package Archive attempts to restore a controlled Ada unit and
the information in the CMVC database does not match the text
being restored, an error will be reported. In this situation,
the database may not properly indicate which of the object(s)
were restored. As the associated message text indicates,
checking the object(s) out then back in again will force the
object to be stored in the database as a new generation; this
28 10/17/88 R\f
D_10_20_0 Release
will ensure that current database information is correct. Before
checking an object in again, it is wise to compare the object's
image with the images of other generations, using
Cmvc.Show_Image_Of_Generation. (This situation can arise when
the new unit is pretty printed differently from the way it is
represented in the database.)
When an entire view is restored but that view is not repesented
in the existing CMVC database and the database itself is not
restored, Archive operations leave the objects in the view
uncontrolled. One must explicitly control the objects if that is
desired.
For operations in package Archive as with other Environment
tools, when a response profile is specified as a string, any
option not specified in the string is set to its default value.
In particular, the default value for the Activity option is the
nil activity. When the <Profile> option is included in the
string, options not explicitly set are supplied from the current
Response_Profile. Thus,
Profile.Set (Profile.Value ("+++, ++*, ***"));
sets the current activity to nil, while
Profile.Set
(Profile.Value
("+++ ++*, ***,
Activity=>(!Machine.Release.Current.Activity)"));
and
Profile.Set (Profile.Value ("+++ ++*, ***, <Profile>"));
explicitly set the activity, and preserve its prior setting,
respectively.
One consequence of this is that if the Response parameter of many
Archive commands is set to <Raise>, or if the Error_Reaction
value is set to Propagate, operations may terminate ungracefully,
leaving things in an indeterminate state. The purpose of the
Error_Reaction value Propagate is to raise an exception (or
propagate one) as soon as an error occurs. The string profile
<Raise> includes Propagate. The Response parameter should be set
to "Raise, <Profile>" to set the Error_Reaction to
Raise_Exception, but take the remaining profile parameter items
from the current profile. This is mentioned in the spec for the
Profile package.
4.15. Code Generator
The precision with which compile time float or universal real
literals were computed is greater in this release than in the
previous release. This means that literals of 14 or more digits
R 10/17/88 29\f
Rational Environment Release Information
are now represented more precisely than before. It also means
that, if a spec view and corresponding load view containing
visible compile time float or universal real literals were not
installed with the same version of the compiler, they may be
compatible (and they may not execute properly). In many cases,
the source in the load view can be changed to yield an internal
representation for the literal which is the same as that in the
spec view. If you require assistance with this, please contact
the Response Center.
4.16. Miscellaneous New Features
Most semantic error messages now include LRM references.
There are new semantic switches:
* Reject_Bad_Lrm_Pragmas: Causes warnings in Ada pragmas to be
given as errors (and thus prevents installation of the unit
with the error).
* Reject_Bad_Rational_Pragmas: Causes warnings in Rational
pragmas to be given as errors.
* Reject_Undefined_Pragmas: Causes any undefined pragmas to be
marked as errors.
* Flag_Inevitable_Exceptions: Checks for statically determinable
situations that surely raise an exception when executed and
flags them with a warning.
* Reject_Inevitable_Exceptions: Changes the severity of the
message above from a warning to an error.
Common.Object.Sort has been implemented for the Window Directory.
You now can sort on any of the fields in the display. Sort takes
a numeric parameter (typically through a prefix key). The values
are:
1 By Usage By order of most recent usage
2 By Mode By modified (*), committed ( ), read only (=)
3 By Size By size of image, increasing
4 By Type By object type, (library), (text), and so on
5 By Name By image name
Negative numbers reverse the order of the sort. For example,
this could be useful if you want to identify all modified buffers
or all the text windows.
30 10/17/88 R\f
D_10_20_0 Release
5. Changes from D_9_25_1
5.1. Spec Changes
Some Environment specifications change in D_10_20_0. The changes
listed below are changes with respect to D_9_25_1, and some may
have been introduced in the D_9_33_0 or D_10_9_10 release. If a
release number appears after the spec name, this indicates that
the changes first appeared in that release.
* !Commands.Ada
* !Commands.Cmvc (some changes appear in D_9_33_0)
* !Commands.Work_Order (D_9_33_0)
* !Commands.Debug (D_9_33_0)
* !Commands.Operator
* !Implementation.Work_Order_Implementation (D_10_9_10)
* !Implementation.Work_Order_Errors (D_10_9_10)
* !Tools.Compatibility.Revn_N_Spec.Units.Check
* !Tools.Networking.Transport
* !Commands.Archive (functional changes; spec comments updated)
Significant changes are noted in the following tables.
Changes in Package Ada
-----------------------------------------------------------------
|Declaration | Type of | Description |
| | Change | |
-----------------------------------------------------------------
|procedure |New |procedure Expand_Names |
|Expand_Names |subprogram| (Name : String := "<SELECTION>"; |
| | | Prefix_Standard : Boolean := False;|
| | | Prefix_Unit : Boolean := False; |
| | | Expand_Operators : Boolean := |
| | |False); |
| | |Prepends identifier names from package|
| | |Standard, from the current unit, and |
| | |for operators (such as +), as |
| | |specified. |
-----------------------------------------------------------------
R 10/17/88 31\f
Rational Environment Release Information
Changes in Package Cmvc
32 10/17/88 R\f
D_10_20_0 Release
-----------------------------------------------------------------
|Declaration | Type of | Description |
| | Change | |
-----------------------------------------------------------------
|procedure |New |Allow_Demotion : Boolean := False; |
|Abandon_Reserva|parameters|Controls whether reverting back to |
|tion | |previous generation will cause |
| | |demotion of dependent units. |
| | | |
| | |Remake_Demoted_Units : Boolean := |
| | |True; |
| | |Causes units that were demoted by |
| | |implicit accept changes to be |
| | |repromoted. |
| | | |
| | |Goal : Compilation_Unit_State := |
| | | Compilation.Coded;|
| | |Remakes demotions caused by the |
| | |implicit accept changes to this state.|
-----------------------------------------------------------------
|procedure |New |Remake_Demoted_Units : Boolean := |
|Accept_Changes |parameters|True; |
| | |Causes units that were demoted by |
| | |implicit accept changes to be |
| | |repromoted. |
| | | |
| | |Goal : Compilation_Unit_State := |
| | | Compilation.Coded;|
| | |Remakes demotions caused by the |
| | |implicit accept changes to this state.|
-----------------------------------------------------------------
|procedure Build|Changed |View_To_Import : String := |
| |defaults | "<INHERIT_IMPORTS>";|
| | |Behaves like old default, which is to |
| | |use imports information from |
| | |configuration. |
| | | |
| | |Model : String := "<INHERIT_MODEL>"; |
| | |Uses model information from |
| | |configuration; old default was |
| | |"R1000". |
-----------------------------------------------------------------
|procedure |New |Remake_Demoted_Units : Boolean := |
|Check_Out |parameters|True; |
| | |Causes units that were demoted by |
| | |implicit accept changes to be |
| | |repromoted. |
| | | |
| | |Goal : Compilation_Unit_State := |
| | | Compilation.Coded;|
| | |Remakes demotions caused by the |
| | |implicit accept changes to this state.|
-----------------------------------------------------------------
R 10/17/88 33\f
Rational Environment Release Information
-----------------------------------------------------------------
|procedure Copy |Changed |Reservation_Token_Name : String := |
| |default | "<AUTO_GENERATE>";|
| |and new |Behaves like old default, which was " |
| |parameters|". |
| | | |
| | |Create_Load_View : Boolean := False; |
| | |Allows creation of a load view from a |
| | |combined view. |
| | | |
| | |Create_Combined_View : Boolean := |
| | |False; |
| | |Allows creation of a combined view |
| | |from a load view. |
-----------------------------------------------------------------
34 10/17/88 R\f
D_10_20_0 Release
Changes in Package Cmvc (continued)
R 10/17/88 35\f
Rational Environment Release Information
-----------------------------------------------------------------
|Declaration | Type of | Description |
| | Change | |
-----------------------------------------------------------------
|procedure Def |New |procedure Def |
| |subprogram| (What_Object : String := "<CURSOR>";|
| | | In_Place : Boolean := False); |
| | |Displays the corresponding directory |
| | |system objects for an image in the |
| | |CMVC object editor and vice versa. |
-----------------------------------------------------------------
|procedure Edit |New |procedure Edit |
| |subprogram| (View_Or_Config : String := |
| | |"CURSOR>"; |
| | | In_Place : Boolean := False; |
| | | Allow_Check_Out : Boolean := True; |
| | | Allow_Check_In : Boolean := True; |
| | | Allow Accept_Changes : Boolean := |
| | |True); |
| | |Calls up the CMVC object editor for a |
| | |configuration associated with a view; |
| | |the editor displays reservation state,|
| | |history, and notes; parameters can be |
| | |used to limit the CMVC operations that|
| | |can be accomplished using the object |
| | |editor. |
-----------------------------------------------------------------
|procedure |Renamed |System_Object : String := |
|Initial |and added | ">>SYSTEM OBJECT NAME<<";|
| |parameters|Renames parameter from Subsystem, in |
| | |keeping with new type. |
| | | |
| | |System_Object_Type : |
| | |System_Object_Enum := |
| | | Cmvc.Spec_Load_Subsystem;|
| | |Replaces Subsystem_Type parameter. |
| | | |
| | |Create_Load_View : Boolean := True; |
| | |Allows creation of a load view; |
| | |otherwise creates a combined view when|
| | |System_Object_Type is |
| | |Spec_Load_Subsystem. |
-----------------------------------------------------------------
|procedure Join |New |Reservation_Token_Name : String := "";|
| |parameter |Allows specification of a token name. |
-----------------------------------------------------------------
|procedure |New |Save_Source : Boolean := True; |
|Make_Controlled|parameter |Specifies whether source will be saved|
| | |in the CMVC database for all objects |
| | |with the same name. |
-----------------------------------------------------------------
36 10/17/88 R\f
D_10_20_0 Release
-----------------------------------------------------------------
|procedure |New |Create_Load_View : Boolean := False; |
|Make_Path |parameters|Allows creation of a load view from a |
| | |combined view. |
| | | |
| | |Create_Combined_View : Boolean := |
| | |False; |
| | |Allows creation of a combined view |
| | |from a load view. |
-----------------------------------------------------------------
|procedure Notes|New |procedure Notes |
| |subprogram| (What_Object : String := "<CURSOR>";|
| | | In_Place : Boolean := False); |
| | |Displays notes for a controlled object|
| | |and allows appending new notes. |
-----------------------------------------------------------------
R 10/17/88 37\f
Rational Environment Release Information
Changes in Package Cmvc (continued)
-----------------------------------------------------------------
|Declaration | Type of | Description |
| | Change | |
-----------------------------------------------------------------
|procedure |New |Allow_Demotion : Boolean := False; |
|Revert |parameters|Controls whether reverting back to |
| | |previous generation will cause |
| | |demotion of dependent units. |
| | | |
| | |Remake_Demoted_Units : Boolean := |
| | |True; |
| | |Causes units that were demoted by |
| | |implicit accept changes to be |
| | |repromoted. |
| | | |
| | |Goal : Compilation_Unit_State := |
| | | Compilation.Coded;|
| | |Remakes demotions caused by the |
| | |implicit accept changes to this state.|
-----------------------------------------------------------------
|procedure Sever|Parameter |Renames What_Objects to What_Object. |
| |name | |
| |change | |
-----------------------------------------------------------------
|procedure |Changed |procedure Show_All_Uncontrolled |
|Show_All_Uncont|parameter | (In_View : String := "<CURSOR>"; |
|rolled | | Response : String := "<PROFILE>"); |
| | |Lists objects that are uncontrolled. |
-----------------------------------------------------------------
|type |New |type System_Object_Enum is |
|System_Object_E|enumeratio| (Spec_Load_Subsystem, |
|num |n type |Combined_Subsystem, |
| | | System);|
| | |Replaces Subsystem_Type_Enum. |
-----------------------------------------------------------------
38 10/17/88 R\f
D_10_20_0 Release
Changes in Package Operator
R 10/17/88 39\f
Rational Environment Release Information
-----------------------------------------------------------------
|Declaration | Type of | Description |
| | Change | |
-----------------------------------------------------------------
|subtype Days |New |subtype Days is positive; |
| |subtype | |
-----------------------------------------------------------------
|function |New |function Get_Minimum_Password_Length |
|Get_Minimum_ |subprogram| return Natural;|
|Password_Length| |Returns the value set by |
| | |Set_Password_Policy. |
-----------------------------------------------------------------
|function |New |function Get_Password_Deadline return |
|Get_Password_De|subprogram|Days; |
|adline | |Returns the value set by |
| | |Set_Password_Policy. |
-----------------------------------------------------------------
|function |New |function Get_Password_Warning return |
|Get_Password_Wa|subprogram|Days; |
|rning | |Returns the value set by |
| | |Set_Password_Policy. |
-----------------------------------------------------------------
|function |New |function Get_User_Deadline |
|Get_User_Deadli|subprogram| (For_User : String := |
|ne | | System_Utilities.User_Name) return |
| | |String; |
| | |Returns the image of the date |
| | |(mm/dd/yy) that is the deadline for |
| | |changing the password; passes this to |
| | |Time_Utilities for a numeric value. |
-----------------------------------------------------------------
|function |New |function Get_User_Warning |
|Get_User_Warnin|subprogram| (For_User : String := |
|g | | System_Utilities.User_Name) return |
| | |String; |
| | |Returns the image of the date |
| | |(mm/dd/yy) when user is warned to |
| | |change the password; passes it to |
| | |Time_Utilities for a numeric value. |
-----------------------------------------------------------------
40 10/17/88 R\f
D_10_20_0 Release
-----------------------------------------------------------------
|procedure |New |Set_Password_Policy |
|Set_Password_Po|subprogram| (Minimum_Length : Natural := 0; |
|licy | | Change_Warning : Days := |
| | | Operator.Days'Last;|
| | | Change_Deadline : Days := |
| | | Operator.Days'Last);|
| | |Sets systemwide password policies: |
| | |minimum length in characters; number |
| | |of days from last change when user is |
| | |warned upon login to change password; |
| | |number of days without change until |
| | |user cannot log in without changing |
| | |password; requires operator |
| | |capability. |
-----------------------------------------------------------------
|procedure |New |procedure Show_Password_Policy |
|Show_Password_P|subprogram| (For_User : String := |
|olicy | | System_Utilities.User_Name);|
| | |Displays the current policy, warning, |
| | |and deadline date for the user. |
-----------------------------------------------------------------
R 10/17/88 41\f
Rational Environment Release Information
Changes in !Tools.System_Availability.RevX_X_Spec.Units
42 10/17/88 R\f
D_10_20_0 Release
-----------------------------------------------------------------
|Declaration | Type of | Description |
| | Change | |
-----------------------------------------------------------------
|procedure |New |procedure Load_Logs |
|Log_Reader.Load|subprogram| (Start_Time : Calendar_Time; |
|_Logs | | Stop_Time : Calendar_Time; |
| | | From_Directory : String := |
| | | "!Machine.Error_Logs");|
| | |Builds a map of all log files, using |
| | |start and stop times as interval |
| | |bounds if provided. |
-----------------------------------------------------------------
|function |New |function Done (I : Mount_Iterator) |
|System_Informat|subprogram|return |
|ion.Done | | Boolean;|
-----------------------------------------------------------------
|procedure |New |procedure Next (I : in out |
|System_Informat|subprogram|Mount_Iterator); |
|ion.Next | | |
-----------------------------------------------------------------
|procedure |New |procedure Initialize (I : out |
|System |subprogram| Mount_Iterator);|
| | | |
|_Information.In| | |
|itialize | | |
-----------------------------------------------------------------
|type |New type |type Mount_Information is record |
|System_Informat| | Request_Time : Time_Utilities.Time; |
|ion. | | Volume : |
|Mount_Informati| |Bounded_String.Variable_String |
|on | | (40);|
| | | Mount_Time : Time_Utilities.Time; |
| | | Unload_Time : Time_Utilities.Time; |
| | | Density : |
| | |Bounded_String.Variable_String |
| | | (20);|
| | | end record; |
| | |Maintains data about tape activity; |
| | |the value of the density field is not |
| | |trustworthy because of hardware |
| | |limitations. |
-----------------------------------------------------------------
|type |New type |type Mount_Iterator is private; |
|System_Informat| |Retrieves information about tape mount|
|ion. | |requests. |
|Mount_Iterator | | |
-----------------------------------------------------------------
|function |New |function Value (I : Mount_Iterator) |
|System_Informat|subprogram| return Mount_Information;|
|ion.Value | | |
-----------------------------------------------------------------
R 10/17/88 43\f
Rational Environment Release Information
-----------------------------------------------------------------
|type |New |Adds new Tape_Mounts class for use |
|System_Report. |enumeratio|with System_Report.Generate; tape |
|Report_Class |n |mount information is also included |
| | |when Everything is used for the report|
| | |class. |
-----------------------------------------------------------------
44 10/17/88 R\f
D_10_20_0 Release
Changes in Package Transport
-----------------------------------------------------------------
|Declaration | Type of | Description |
| | Change | |
-----------------------------------------------------------------
|function |New |function Get_Options |
|Get_Options |subprogram| (Network : |
| | |Transport_Defs.Network_Name; |
| | | Context : String := "") return |
| | |String; |
| | |Returns current options (i.e., |
| | |protocol parameters) and their values |
| | |for the network-context pair; a null |
| | |string returned indicates an undefined|
| | |pair or no options. |
-----------------------------------------------------------------
|function |New |function Get_Statistics |
|Get_Statistics |subprogram| (Network : |
| | |Transport_Defs.Network_Name; |
| | | Context : String := "") return |
| | |String; |
| | |Returns statistics with which to |
| | |monitor the performance of the named |
| | |network-context pair; the form of the |
| | |output is similar to that for |
| | |Set_Options.Options. |
-----------------------------------------------------------------
|function |New |function Set_Options |
|Set_Options |subprogram| (Network : |
| | |Transport_Defs.Network_Name; |
| | | Context : String := ""; |
| | | Options : String := "") return |
| | |String; |
| | |Returns a null string if the set |
| | |operation is successful; otherwise, it|
| | |returns an error message that may |
| | |include embedded ascii.lf characters; |
| | |the Options string is a sequence of |
| | |"<name>=<value>" pairs. |
-----------------------------------------------------------------
R 10/17/88 45\f
Rational Environment Release Information
Changes in Package Work_Order
-----------------------------------------------------------------
|Declaration | Type of | Description |
| | Change | |
-----------------------------------------------------------------
|procedure |New |Renumber_Fields : Boolean := True |
|Create_Field |parameter |Causes the display position for the |
| |and |new field to be interpreted as an |
| |changed |ordinal position, with consequent |
| |default |renumbering of existing fields. |
| | | |
| | |Display_Position : Natural := |
| | |Natural'Last |
| | |Causes the new field to be placed at |
| | |the end of the venture (new default |
| | |value). |
-----------------------------------------------------------------
|function |New |Ignore_Garbage : Boolean := True |
|Default |parameter |Causes the function to return Nil if |
| | |the default work order has been |
| | |deleted or corrupted. |
-----------------------------------------------------------------
|function |New |Ignore_Garbage : Boolean := True |
|Default_List |parameter |Causes the function to return Nil if |
| | |the default work-order list has been |
| | |deleted or corrupted. |
-----------------------------------------------------------------
|function |New |Ignore_Garbage : Boolean := True |
|Default_Venture|parameter |Causes the function to return Nil if |
| | |the default venture has been deleted |
| | |or corrupted. |
-----------------------------------------------------------------
|procedure |New |procedure Delete_Field |
|Delete_Field |subprogram| (Field_Name : String := ">>FIELD |
| | |NAME<<"; |
| | | Venture_Name : String :="<VENTURE>";|
| | | Even_If_Data_Present : Boolean := |
| | |False; |
| | | Response : String := "<PROFILE>"); |
| | |Deletes the named field from a |
| | |venture; if work orders have data in |
| | |this field, the operation fails unless|
| | |Even_If_Data_Present is true. |
-----------------------------------------------------------------
5.2. CMVC Changes
The Copy, Make_Path, and Initial procedures take additional
parameters to allow combined views to be made in spec/load
subsystems. The Make_Controlled procedure accepts an additional
parameter to control whether source is saved in the CMVC
46 10/17/88 R\f
D_10_20_0 Release
database.
Bug fixes were made in Accept_Changes to allow changes to be
accepted between different targets.
Cmvc.Initial now will copy directory structure from the model.
Controlled objects no longer can be withdrawn.
There is now support for longer lines in CMVC, which can be about
1000 characters long. Leading blanks are not counted.
R 10/17/88 47\f
Rational Environment Release Information
Changes in Cmvc_Implementation have been made to set the
usernames when an object is first controlled and to provide
better error messages when objects cannot be checked in because
of locking or access-control problems.
No controlled objects except the Release_History file will be
allowed in a view's state directory. This is to prevent
accidental controlling of switch files, target builder state, and
so on.
In the D_9_25_0 release, CMVC permitted users to control
compiler-generated files whose names appear in library displays
enclosed with "<" and ">". These include assembly listing files,
object code files, and so on. In this release, the undesirable
operation is not allowed. Files of this sort that were controlled
will remain controlled after the Environment upgrade. If any of
these objects exist, they should be made uncontrolled with
Cmvc.Make_Uncontrolled to facilitate normal compiler operation.
5.3. Changes in Work Orders
The specs for Work_Order, Work_Order_Implementation, and
Work_Order_Errors have been changed in minor ways to accommodate
two changes:
* There is now a Renumber_Fields parameter in
Work_Order.Create_Field that causes Display_Position to be
interpreted as would be expected.
* The Get_Default procedures now turn any nonexistent object ID
into Nil (by default) when returning a result.
5.4. Naming Changes
5.4.1. Target Attribute
A new attribute, 'T, has been added to specify targets in a
naming expression. This will allow selectively naming objects
based on target keys. For example, assume that within the
subsystem !Projects.My_Project are two paths, one for the R1000
and one for a MIL-STD-1750A target. The naming expression:
!Projects.My_Project.@'C(Load_View)'T(Mil_Std_1750a)
will resolve to all load views of the subsystem in the
Mil_Std_1750a target path. Note that the target key associated
with an object is the target key of the object's nearest
enclosing world.
To obtain a list of possible target keys, execute the
Compilation.Set_Target_Key procedure with its default parameters.
48 10/17/88 R\f
D_10_20_0 Release
5.4.2. Directory Naming
Resolution of names ending with 'Spec will no longer match
subprogram bodies that have no corresponding specification.
The functions that return unique names in packages
!Implementation.Directory.Naming and
!Tools.Directory_Tools.Naming will now return
Unit_Name'Spec'V(XX) for all specifications, instead of
Unit_Name'V(XX).
R 10/17/88 49\f
Rational Environment Release Information
5.4.3. View Attributes
Two new attributes have been added to naming that use an activity
to transform a subsystem reference into a view reference.
The 'View attribute yields a load view, and the 'Spec_View
attribute yields a spec view.
Both attributes take an optional argument, which is a naming
expression that should resolve to one or more activities.
'C(Activity) is appended to the argument before it is resolved.
The initial context for the resolution of the argument is the
context of the 'View or 'Spec_View attribute itself. If the name
resolves to no activity file, the naming (sub)expression using
the attribute is undefined.
If no argument is given, the value of
Activity.The_Current_Activity is used. It is an error if no such
activity is defined for the job at the time of resolution.
The meaning of the 'View attribute is described below. The
'Spec_View attribute has an analogous definition, with "spec
view" substituted for each reference to "load view."
Consider the naming expression "<context>'View(<activity>)",
where "<context>" is an arbitrary naming expression yielding a
set of objects and "<context><activity>" is a naming expression
yielding a set of activity files. The resolution of this naming
expression is the set of objects obtained by resolving each
object in the <context> set against each activity in the
<activity> set. If C is an object in <context> and A is an
activity in <activity>, then C'View(A) is defined as follows:
* If C is a subsystem that has a load-view entry in A, the
result is this load view. If C has no load-view entry in A,
the result is undefined.
* If C is an object properly contained in subsystem S, and S has
a load-view entry in A, then the result is the object in this
load view whose full name is the same as C's except for the
name segment that denotes the view that contains C. (For
example, !Foo.SS.Rev1.Units. Mumble'View is
!Foo.SS.Rev2.Units.Mumble if the load view in the default
activity for subsystem SS is Rev2.) If such an object does not
exist or S has no load-view entry in A, the result is
undefined.
* If C is not in a subsystem, the result is undefined.
5.5. Pretty-Printer Changes
The D_10_20_0 Ada editor has been changed to implement the
alignment of structures in its pretty-printing algorithms. This
feature can be enabled on a library-by-library basis using the
50 10/17/88 R\f
D_10_20_0 Release
Format.Alignment_Threshold library switch. This switch controls
alignment of lexical constructs by specifying the amount of extra
white space one is willing to endure for the sake of aligning the
components of consecutive statements. The default value for this
switch is zero. If it is changed to a nonzero value, alignment
of constructs will be attempted. Units created after the switch
value is modified will have the new alignment characteristics.
R 10/17/88 51\f
Rational Environment Release Information
It is now possible to reformat existing programs regardless of
unit state using the Library.Reformat_Image procedure. Note that
any changes to controlled objects using Reformat_Image will cause
the CMVC database to be updated when the unit is checked out and
then checked back in again. If you use the
Cmvc.Show_History_By_Generation command, all textual differences
will be displayed, but the configuration editor will attempt to
minimize display of white space differences in generation images.
5.6. Editor Changes
The behavior of Image.End_Of has been modified. If the actual end
of the image is not in column 1, this operation will take the
cursor to the first column of the next line after the end of the
image. However, if the cursor is already there, it will go to
the real end of the image. Thus, if End_Of is iterated, it will
toggle rather like Line.Beginning_Of. This makes it possible to
distinguish files that have an empty line at the end from those
that do not.
The rules have changed for interpreting characters for some types
of patterns used in regular expression searching:
* To negate a character class, the negation sign (~) can be
placed either outside or as the first character inside the
class.
* Contiguous negation signs cancel each other out.
* Wildcard characters %, &, and ? are interpreted as wildcards
even if they appear within a character class.
* The % wildcard character matches any legal Ada character as
well as beginning and end of line, except when it appears
within a character class. When it appears in a character
class, it matches only legal Ada characters.
5.7. Changes to Help Files
This release includes the most up-to-date help files for all of
Rational's production products. It includes help on session
switches.
5.8. Changes to Terminal Keymaps
The files !Machine.Editor_Data.Facit_Commands and
...Rational_Commands are overwritten when D_10_20_0 is installed.
Standard Environment key bindings are not changed, but the new
file includes recommended key bindings associated with the Design
Facility, Mail, and CMVC, as shown in the following table; these
key bindings are commented out.
52 10/17/88 R\f
D_10_20_0 Release
If a site uses a customized keymap, customization details are
saved in a separate file before the upgrade and reapplied after
the upgrade by the Rational technical representative.
R 10/17/88 53\f
Rational Environment Release Information
Recommended New Key Bindings
54 10/17/88 R\f
D_10_20_0 Release
----------------------------------------------------------
| Logical Key | Facit | Rational | Command |
| Name | | | |
----------------------------------------------------------
|DESIGN | | | |
|FACILITY | | | |
----------------------------------------------------------
|PDL |Esc_Numeric|F4 |Design_Implementation|
|Definition |_1 | |.Definition |
----------------------------------------------------------
|PDL Show |Esc_Numeric|S_F4 |Design_Implementation|
|Usage |_2 | |.Show_Usage |
----------------------------------------------------------
|PDL Explain |Esc_Numeric|C_F4 |Design_Implementation|
| |_3 | |.Explain |
----------------------------------------------------------
|PDL Enclosing|Esc_Numeric|CS_F4 |Design_Implementation|
| |_4 | |.Enclosing |
----------------------------------------------------------
|PDL Complete |Esc_Complt |M_Complt |Design_Implementation|
| | | |.Complete |
----------------------------------------------------------
|PDL Format |Esc_Format |M_Format |Design_Implementation|
| | | |.Format |
----------------------------------------------------------
|"--| " |Esc_Bar |M_Bar |Editor.Char.Insert_St|
| | | |ring("--|") |
----------------------------------------------------------
|"--| @" |Esc_At_Sign|M_At_Sign |Editor.Char.Insert_St|
| | | |ring("--| @") |
----------------------------------------------------------
|"--| @" |Esc_2 |M_2 |Editor.Char.Insert_St|
| | | |ring("--| @") |
----------------------------------------------------------
|SPELLING | | | |
|CHECKER | | | |
----------------------------------------------------------
|Check Text |Word.? |Word.? |Speller.Check_Text |
----------------------------------------------------------
|Learn Word |Word.Promot|Word.Promo|Speller.Learn_Word |
| | |t | |
----------------------------------------------------------
|Learn |Word.R |Word.R |Speller.Learn_Replace|
|Replacement | | |ment |
----------------------------------------------------------
|Check Image |Word.M |Word.M |Speller.Check_Image |
----------------------------------------------------------
|Explain Next |Word.N |Word.N |Speller.Explain_Next |
----------------------------------------------------------
|Speller |Word.w |Word.w |Speller.Window |
|Window | | | |
----------------------------------------------------------
R 10/17/88 55\f
Rational Environment Release Information
----------------------------------------------------------
|Speller |Word.W |Word.W |Speller.Window(In_Pla|
|Window(In | | |ce=>True) |
|place) | | | |
----------------------------------------------------------
|Explain Next |Word.down |Word.Down |Speller.Explain.Next |
----------------------------------------------------------
|Exchange |Word.Numeri|Word.Numer|Speller.Exchange_Word|
|Word(1) |c_1 |ic_1 |(Choice => 1) |
----------------------------------------------------------
| ... | | | ...|
| |... |... | |
----------------------------------------------------------
|Exchange |Word.Numeri|Word.Numer|Speller.Exchange_Word|
|Word(9) |c_9 |ic_9 |(Choice => 9) |
----------------------------------------------------------
|DOCUMENT | | | |
|FORMATTER | | | |
----------------------------------------------------------
|Compose |Esc_5 |CM_F4 |Formatter.Compose |
|Document | | | |
----------------------------------------------------------
|CMVC | | | |
----------------------------------------------------------
|Check In |Esc_3 |On overlay|Cmvc.Check_In |
----------------------------------------------------------
|Check Out |Esc_4 |On overlay|Cmvc.Check_Out |
----------------------------------------------------------
|MAIL | | | |
----------------------------------------------------------
|Main Mailbox |Esc_Enter |C_F1 |Mail.Edit |
----------------------------------------------------------
|Send Message |Esc_Dot |M_F1 |Mail.Send |
----------------------------------------------------------
|Reply Message|Esc_Numeric|CS_F1 |Mail.Reply |
| |_Comma | | |
----------------------------------------------------------
|Forward |Esc_Dash |MS_F1 |Mail.Forward |
|Message | | | |
----------------------------------------------------------
56 10/17/88 R\f
D_10_20_0 Release
5.9. Compilation Changes
To conform to LRM library semantics, Compilation.Compile now
views external links in a library such that all linked units
appear as if they are physically in the library. If an external
link exists with the same simple Ada name as a unit being
compiled into the library, then the external unit is demoted to
source before Compilation.Compile creates the new unit in the
library and replaces the external link with an internal link. If
the demotion fails, the new unit will not be placed into the
library.
5.10. Changes in Editing Ada Units
When editing Ada units, syntactic completion of:
procedure p is
will result in:
procedure P is
[declaration]
begin
[statement]
end P;
but syntactic completion of:
procedure P is begin
will result in:
procedure P is
begin
[statement]
end P;
5.11. Miscellaneous Changes
When an insertion point is opened at the end of a package body
that has no initialization code, this is now a statement
insertion point, rather than an exception handler.
Non-R1000 target spec units have open private parts.
Definition now works from searchlists.
The precision for compile-time float or universal real literals
has been increased. (There is a potential for incompatibilities
between newly compiled bodies and previously compiled specs. In
this situation, users should recompile all elements for
consistent type definitions.)
R 10/17/88 57\f
Rational Environment Release Information
The standard definitions for type Float and type Duration have
changed. For the correct new upper and lower bounds on these
types, use (for example):
Io.Put_Line(Float'Last); -- for the upper bound of type
Float
Io.Put_Line(Float(Duration'First)); -- for the lower bound
of type Duration
The range values in package Standard for type Float and type
Duration are displayed incorrectly by the editor.
58 10/17/88 R\f
D_10_20_0 Release
6. Bug Fixes
6.1. Network
Fixed Transport_Name to permit the booting of a system that has a
name map file (!Machine.Transport_Name_Map) that does not exist
or cannot be read.
Fixed the following bugs in package Transport_Stream:
* If a task was aborted in the middle of allocating a stream, it
was possible for the stream to be left allocated, with an
underlying open transport connection. This is undesirable
from a resource-utilization point of view.
* Depending on timing, the two tasks Transport_Stream.Worker and
.Scavenger could become deadlocked on each other, with the
result that all subsequent Allocate and Deallocate operations
would also be deadlocked.
Improved Interchange.Convert'Body so that, when converting from
an Interchange.Duration to a Standard.Duration, the returned
value is rounded to the nearest model number, rather than the
next-lowest model number. Previous releases always rounded down,
resulting in values that were off by almost as much as
Standard.Duration'Delta (30.5 microseconds).
Changed the Telnet_Server so that, if a task is waiting for an
incoming connection (for example, receiving when the port is not
connected) and it is unregistered (for example, some other task
closes its file handle), the waiting task is unblocked. In
previous releases, the task remained blocked until a connection
arrived and only then discovered that it was no longer
registered.
Fixed a bug in the Telnet_Protocol implementation: sometimes,
when receiving data quickly, Constraint_Error was erroneously
raised in Receive.
Fixed a bug in Telnet_Protocol.Receive: if the port was not
connected, and Max_Wait expired, Receive would erroneously return
Kind = Disconnect. Now it returns Kind = Data, Count = 0.
Fixed a bug where, if Ftp.(Put, Get) failed because the target
machine was down, no exception was raised even if requested in
the Response profile. This now works correctly.
Fixed a bug in which Ftp.(Get_Set, Retrieve_Set, List) left
undeleted files containing lists of filenames in
!Machine.Temporary. In this release, these temporary files are
deleted.
Fixed a bug in FTP client software: when an IBM FTP server (part
of the "IBM TCP/IP for VM" program offering) returned a reply
R 10/17/88 59\f
Rational Environment Release Information
code 332, the Rational FTP client did not automatically send an
ACCT command.
Fixed a bug in the Telnet interface that lost the terminal
identification sequence, resulting in an incorrect terminal type
being used during login.
In package Ftp_Name_Map, the case of Local_Roof => "!" is now
handled correctly.
Support for the AX25 protocol used by the MC68020 Bare CDF is
included. See the CDF 2.0.0 release note for more information.
In this release, an R1000 will transmit an ARP query on the
Ethernet whenever its Ethernet controller is rebooted (usually at
the time the Environment is booted). All other machines on the
Ethernet will receive this packet and update their ARP tables to
contain the correct Ethernet address of the sender (the R1000
that was just booted). The implications are that, if you swap the
Ethernet controller in an R1000 that is running D_10_20_0, other
machines on the Ethernet will learn the Ethernet address of the
new controller automatically; no manual action is needed to
update their ARP tables.
With the D_10_20_0 release, the R1000 transmits an ARP query on
the Ethernet whenever its Ethernet controller is rebooted, which
is usually at the time the Environment is booted. All other
machines on the Ethernet will receive this packet and update
their ARP tables to contain the correct Ethernet address of the
sender.
One consequence of this is that if you swap the Ethernet
controller in an R1000 running D_10_20_0, other machines on the
Ethernet will learn the Ethernet address of the new controller
automatically; no manual action is needed to update their ARP
tables.
6.2. Ada Units
If the parser encounters a malformed numeric literal (for
example, one whose value exceeds Long_Integer'Last), it
underlines it and puts a message on it, rather than converting it
to zero.
An integer literal with an exponent of negative zero (for
example, 4e-0) is now diagnosed as an error.
If you type a based literal using colons (for example, 16:FFF:),
the parser will convert the colons to the preferred pound signs.
If "X : Integer;" appears in a statement list, it is now
diagnosed as an error rather than being turned into a labeled
begin block.
60 10/17/88 R\f
D_10_20_0 Release
The parser now deletes a right parenthesis only if it is preceded
by another right parenthesis.
The wrong DIANA was being generated for expressions such as:
A (A'Range) (1 .. 10)
resulting in incorrect operation.
Incremental operations now check to prevent insertion of
alternatives after a when others clause.
Fixed a problem of record types with limited components (declared
in a package spec that declares the limited component type) not
being assignable within the package.
Intermediate results no longer cause Numeric_Error (Overflow).
All integer expressions are evaluated as Long_Integer, and
Numeric_Error will be raised only if the final result is outside
the base type for the expression.
Conversions now raise only Constraint_Error (Type Range). If the
argument of a conversion was outside the base type of the target
type, Numeric_Error (Overflow) was raised. The LRM permits only
Constraint_Error to be raised.
The values of some fixed-point attributes ('Mantissa,
'Safe_Large, and 'Safe_Small) were formerly computed incorrectly
for some fixed/floating-point subtypes-most notably in the case
of a subtype that imposed a coarser delta or digits constraint
than its parent type.
Ada.Create_Body_Part now deals with overloads. In previous
releases, if a package specification included a procedure named P
with a corresponding body in the package body, and a new
overloaded procedure P was added to the specification, then
Ada.Create_Body_Part would fail because it seemed that the body
already existed. In this release, the overloaded procedure body
is created correctly.
Create_Body and Create_Private now perform the correct completion
of incomplete types.
6.3. CMVC
A problem with the compatibility database has been fixed. This
problem occurred when declarations in a subunit of a generic
package were modified after the generic formal part was changed;
the usual symptom was an Illegal_Reference exception during
elaboration of the subunit.
Fixed bug in Cmvc.Destroy_View that, after destroying a code
view, prevented a new code view with the same name from being
created.
R 10/17/88 61\f
Rational Environment Release Information
Added checks for circular importing for views in spec/load
subsystems. This will prevent spec views from being in their own
import closure.
Fixed bug in Cmvc.Accept_Changes that caused the checked-out
version to be copied when Accept_Changes was performed from
object to object and the source was checked out. The correct
behavior is for the last checked-in generation to be copied to
the destination.
Cmvc.Remove_Import and Cmvc.Remove_Unused_Imports do not do
anything for code views.
Cmvc.Make_Code_View was fixed to completely destroy the skeletal
view when the code archive could not be made because all of the
units in the source view were not coded.
Cmvc_Maintenance.Check_Consistency was improved. For example,
running Library.Destroy and then Check_Consistency on a subsystem
leaves the subsystem in a state that can be destroyed by CMVC.
To avoid incompatibilities, Cmvc_Maintenance.Make_Primary will
now succeed only if the subsystem contains no non-R1000 target
views with coded units.
Cmvc.Make_Uncontrolled may now be applied to spec views.
State directories in the configuration directory are created for
working and spec views when the views are destroyed (and
configurations are kept). This helps the later build operation
to be successful.
Cmvc.Release applied to system views creates a release
information directory that contains files describing the release
activity. These files can be used to rebuild the component views
of the system view. Futhermore, Cmvc_Hierarchy.Build_Activity
tries to rebuild the activity in a release based on the files in
Release_Information if a system view has been destroyed and then
rebuilt.
Compilation.Destroy and Library.Destroy will no longer destroy
objects of the subsystem or view subclasses.
Cmvc.Destroy_View/Subsystem changes the subclass to World before
doing a destroy.
Fixed bug in Cmvc.Build that would sometimes cause a view to be
built with a different name than the configuration.
Check_Consistency will check for switch file existence.
Cmvc.Sever will no longer loop if applied to an uncontrolled
object; if it is applied to a view, it will sever all objects in
the view.
62 10/17/88 R\f
D_10_20_0 Release
Abandon_Reservation will now obey the Allow_Demotion switch.
Replace_Model allows changing the model only to one with a
compatible target key.
Changed Cmvc.Copy so that specifying View_To_Import = " " causes
no imports for the new view, regardless of any other switch
settings.
Fixed bug that caused Destroy_View to fail if the model is
deleted.
Fixed bug that caused Check_Consistency to fail if a view
contained units that did not save source.
Fixed bug in Cmvc.Build that resulted in text files not being
recreated properly.
For a package spec in a spec view with a closed private part, if
the package spec was joined to a package spec in a load view with
an open private part, then Cmvc.Accept_Changes would not work
properly on these units. Accept_Changes will now properly handle
such units.
Binding the model world to a library switch file no longer causes
a Subsystem Spec Look-Through error to be reported later.
The Default file mechanism in the export directory of a spec view
now works as described in the training courses and as documented
in the PM Volume of the Environment Reference Manual.
Cmvc.Build applied to a configuration object name will correctly
compute the view name. The <Inherit_Imports> parameter string
will work correctly.
Many CMVC operations would not do anything (and would supply no
message to the user) if the naming expression given them did not
resolve to anything. They will now provide a message.
6.4. Code Generator
Fewer intermediate results will now cause NUMERIC_ERROR
(Overflow). All integer expressions are evaluated as
Long_Integer and NUMERIC_ERROR will be raised only if the final
result is outside of the range of the base type for the
expression. This substantially reduces the number of explicit
overflow checks the code generator must emit. If an intermediate
result is outside of the range of Long_Integer, NUMERIC_ERROR
(Overflow) is raised.
If the argument of a conversion was outside the base type of the
target type, the Code Generator formerly raised NUMERIC_ERROR
(Overflow). Conversions now raise only CONSTRAINT_ERROR (Type
Range), as required by the LRM.
R 10/17/88 63\f
Rational Environment Release Information
In previous Environment releases, values of the fixed point
attributes 'Mantissa, 'Safe_Large, and 'Safe_Small were computed
incorrectly for some fixed/floating point subtypes (most notably
in the case of a subtype that imposed a coarser delta or digits
constraint than its parent type). These are now computed
correctly.
A bug having to do with two-part type declarations completed by
derivation is fixed, so the following construct is handled
correctly:
type T is private;
...
private
...
type T is new Foo;
A bug causing Operand_Class_Error to be raised at runtime for
certain source constructs is fixed.
A bug is fixed which had resulted in a failure at code generation
time with the error message "attempt to reference above TOS" or
with an Illegal_Reference exception at runtime.
6.5. Work Orders
Set_Field will correctly update the screen for nonstring fields
and complain for fields that have already been set. Explain on
the blank line after the Notes in a venture will no longer loop.
Fixed bug that caused doing [Object] - [G] on a locked venture to
leave the venture locked.
Prompting for [Object] - [I] in ventures is now more verbose.
Fixed a bug that caused characters to be dropped from work order
fields when the data was restored from an Archive (either via
Archive.Restore or Archive.Copy).
6.6. Editor
If you made a deleted Command window visible via a prompt-for or
a mark operation, it would overlap the window below. Now it takes
space away from the parent window, as it should. Also,
Window.Expand has been fixed so that it will not overlap windows
or allow a window to extend past the end of the screen.
Fixed a problem where the editor would become confused after a
Window.Transpose involving an empty frame that had formerly held
a promoted frame.
64 10/17/88 R\f
D_10_20_0 Release
What.Load correctly uses the Verbose parameter when bound to a
key.
If Editor.Region.Move is attempted with the destination point in
a protected (elided) area, the editor would delete the selection
from the source, place it on the hold stack, and then give the
error message. Now it does nothing but display the error message.
Fixed a problem where keymaps would not distinguish uppercase and
lowercase names in keystrings (for example, Image.U, and
Image.u).
Fixed several problems with window management. Two of particular
interest:
* If a minor window is deleted ([Window] - [X]), the major
window is resized, and then the minor window is brought back,
the minor window is now resized to be in proper proportion to
the major window.
* If the session switch Window_Frames_Startup is greater than
Window_Frames, the latter value will be used for the initial
number of frames.
Region.Format now preserves extra spaces after a sentence
terminator.
R 10/17/88 65\f
Rational Environment Release Information
6.7. Debugger
Debugger.Put on constants returns results in more cases.
Commands attempt to give more meaningful error messages when
units have been demoted or recoded.
A check was added to Special_Type_Display to prevent a machine
crash when the Image function is declared in a frame that has
been popped. A user-supplied Image function must remain
elaborated to be callable. It should be declared in a package,
not in a procedure frame.
Cleaned up the printing of array bounds on the Put command.
Common.Enclosing now handles the In_Place parameter correctly.
6.8. Miscellaneous
Completion with partially supplied parameters now works, giving
fully named notation completion with the parameters substituted
where appropriate.
Corrected a bug in the Facit terminal handler that caused an
incorrect control sequence to be sent by Shift-F12.
Corrected a bug that caused some horizontal border lines to be
processed incorrectly for overlapping windows.
Corrected a bug that caused blank lines to be handled incorrectly
after they were scrolled horizontally.
Corrected a bug where multiple scrolling requests were combined
into a single operation to scroll more lines than there were in a
window. This could happen when a macro that caused scrolling was
executed repeatedly. This usually left the window unchanged (and
incorrect), but then it lost track of the cursor, yielding
exceptions until a [Control] - [L] repaired the damage.
Fixed a problem in which the editor could become deadlocked if a
user was editing one version of a screen dump and attempted to
overwrite it via Editor.Screen.Dump.
Fixed bug in Time_Utility.Day_Of_Week around Leap day.
Fixed bug where Time_Utility.Value accepts nonexistent days: for
example, 2/29/87.
Changed ANSI tape handler to convert invalid dates in labels to
ANSI unspecified dates. Formerly this raised Time_Error
exceptions.
Fixed problem of having a comma (,) before a linefeed in an
indirect file.
66 10/17/88 R\f
D_10_20_0 Release
Fixed searchlist problem where a nonexistent library name existed
in the searchlist.
Window_Io.Open now causes the window to be made visible if the
job is attached.
The Window Directory will not redraw the display after a job
completes if there is a selection in the Window Directory window.
R 10/17/88 67\f
Rational Environment Release Information
Package Queue now produces better messages in Remove and Disable
procedures with immediate Flag => True; now it can handle the
"%%" trailer for PostScript and Reversed => True.
Fixed File_Utilities.Difference (Subobjects => True) so that now
it will do all subobjects.
Print spooler fixes :
* Prevent using up all transport connections when spooler cannot
connect to the device.
* Prevent hanging the spooler when display requests are aborted.
Terminal.Settings now shows the current state of
Logoff_on_Disconnect.
Fixed a bug that caused Terminal_Specific.Output.Disconnect to
raise the Constraint_Error (Overflow) exception.
Fixed a problem in which Library.Copy (From => "Lib1.?", To =>
"Lib2", Recursive => False) would not work correctly if there
were sublibraries in the source.
Changed Compilation.Parse (and Archive.Restore, Archive.Copy) to
copy the format switches from the switch file of the library into
which units are being parsed to the image objects that are
created.
Changed activity editor display to deal with subsystems whose
parent library is a directory.
Changed Archive.Save to deal correctly with case of saving a
subsystem that does not contain a code database.
Changed Replace option in package Archive to look for frozen
installed dependents of Ada units being restored and unfreeze
them.
Fixed problem in which package Archive would sometimes save the
wrong parentage information for a world.
Changed package Archive to always copy the code database if a
view or subsystem is processed, even if the view is skipped
because of the Updated_Objects switch.
Fixed problem in which package Archive would lose data from
user-defined fields in work orders.
This release of the help files fixes all known bugs relating to
help, including [Help On Help] causing two menu items to show up
instead of displaying information on how to use the help system.
Fixed a bug that caused the machine to crash when a job that was
displaying a large file was killed.
68 10/17/88 R\f
D_10_20_0 Release
Fixed a problem with fill mode and very long lines with no word
breaks.
Fixed a bug in !Commands.Abbreviations.Do_Backup where, if a
starting time was specified (using the Starting_At parameter),
the delay was computed incorrectly.
Fixed a bug in the Environment clock that caused the system time
to drift.
Fixed a bug in the D_10_18_1 release (the beta test release of
D1) where Archive would fail to restore any links in a world if
any one link could not be restored because of access violations.
Several bugs in microcode which could lead to deadly embraces
between jobs or tasks during aborts or job termination were
fixed.
R 10/17/88 69\f
Rational Environment Release Information
7. Documentation Updates
Along with the D_10_20_0 Rational Environment, there are updates
to the Rational Environment Reference Manual. These will include
a full set of replacement pages for the Project Management volume
and for the Master Index section of Volume 1.
The new Project Management book will contain an expanded Key
Concepts section, more complete chapter introductions and
reference entries, and documentation for new package
Cmvc_Hierarchy. The material also will be updated to reflect the
changes to this material from D_9_25_1.
The Master Index will be updated to contain index entries for the
Project Management book.
The online help information will be updated to include
information from the new Project Management book.
The following information corrects and updates the Project
Management volume revision for D_10_20_0:
* Most Cmvc operations operate on multiple objects atomically.
This means that any error will result in no objects being
affected, even if there are progress (+++) messages in the
log. For example, if you specify multiple objects to be
joined, and one of them cannot be joined for some reason, none
of the objects are joined.
* As noted in section 4.2.7 of this document, Repair_Cdb in
package Cmvc_Maintenance does not perform the documented
operations.
* For many of the documented procedures in package Check, there
are equivalent functions which are not documented. See the
package spec !Tools.Compatibility.Revn.Units.Check for
details.
70 10/17/88 R\f
D_10_20_0 Release
Appendix A
Changes in Rational Network Mail
For those customers who have installed Rational Network Mail on
their R1000, the following changes have been made under the
D_10_20_0 Environment release. Rational sites that do not have
Mail installed are unaffected by these changes.
* There are a number of new session switches:
* Mail_Cc_Sender : Boolean := False. When true, sender is
added to the initial cc list.
* Mail_Retain_Deleted_Messages : Boolean := True. When false,
Object.Delete expunges messages rather than marking them as
deleted.
* Mail_Position_Cursor_Unread : Boolean := True. When true,
positions cursor on first unread message when mailbox
window is redrawn or reformatted.
* Mail_Send_Empty_Messages : Boolean := True. When false,
refuses to send messages whose message field is empty or
just the initial prompt appears.
* Mail_Include_Text_In_Reply : Boolean := False. When true,
contents of original message are inserted at the end of the
reply.
* Mail_Cursor_On_Text_In_Reply : Boolean := False. When true,
cursor is initially positioned on the message field in a
reply; when false, it is positioned on the To field.
* Mail_Move_Cursor_On_Delete : Boolean := True. When true,
moves cursor to next undeleted message on message delete.
* Prompts use brackets [ ] rather than angle brackets < >.
* You can select the header line in a mailbox (the one that says
STATUS FROM ...). Object.Delete with this selection causes an
expunge of the mailbox.
* Object.Delete marks an unread message as if it were read.
* Object.Undo marks an undeleted message as unread.
* The text of the forwarded message is inserted into the bottom
of the forward window when the window is displayed, rather
than when it is sent. It can be edited (if, for example, you
just want to excerpt it). Note this means if someone forwards
something to you, you cannot trust the contents of the
ostensible forwarded message.
* You can edit the contents of the To and Subject fields on a
reply.
R 10/17/88 71\f
Rational Environment Release Information
* The repainting code for mailboxes has been revamped. It should
be much faster and cause less screen redraw.
* Mailbox names (at the beginning of mailbox windows) can be
selected using the object selection operations (Object.Parent
and so on). A selected mailbox can be deleted (if it is
empty) via Object.Delete.
* Object.Delete in a transmit window is the same as Abandon.
* Message windows use text object editor style of selections.
* Mail.Notify: There is a new procedure that causes the number
of unread mail messages to appear in the Message window
banner. You may want to use this in your login procedure.
This is an addition to the mail spec in !Commands. To use this
procedure, you will need to add this procedure as the last one
in !Commands.Mail.
72 10/17/88 R\f
D_10_20_0 Release
* Object.Redo: This still maps to Reply but, if you provide any
numeric argument other than the default (1), it will map to
Reply_All.
Bug Fixes
Fixed a bug in which the Mail.New_Messages function returned the
wrong number if messages were copied or moved into the main
mailbox.
The mail OE no longer gets rid of the mailbox window if a locking
collision occurs while trying to read a message. It now just
reports an error.
Mail.Reload_Name_Map now handles an empty name map file.
R 10/17/88 73\f
Rational Environment Release Information
74 10/17/88 R\f
D_10_20_0 Release
Appendix B
Training Courses
Courses Included in D_10_20_0
* Fundamentals
* Advanced Topics
* Subsystems and CMVC
* System Management
* Project Development Methods
* Networking
* Target Build Utility
* MIL-STD-1750A CDF
* MC68020 Bare CDF
* Design Facility User Training
Changes Since the Last Release
* New training software has been released for all courses. The
latest release is named Delta1_Rev1 for both old and new
courses.
* System Management, Project Development Methods, and the DF and
CDF courses are newly added with this release. Fundamentals,
Subsystems and CMVC, Networking, and Target Build Utility have
changed very little. Advanced Topics has changed a lot, with
many new exercises added and several bugs fixed.
* New script tools have been released. The script window should
appear on the screen automatically when users invoke the
scripts. Users no longer will have to go to the Window
Directory to find the script window.
* Because of a conflict with key bindings for the Design
Facility, the Next and Previous operations that were
previously bound to F4 and F3 on the Rational Terminal have
been switched. They are now bound to F3 and F4, respectively.
Also, the highest-performance operation is the Next operation
([F3]). All other operations have slightly lower performance.
Replacement pages describing the script tool changes for the
Rational version of Fundamentals will be distributed to the
field.
R 10/17/88 75\f
Rational Environment Release Information
* Facit key bindings for the scripts have not changed. Online
scripts are not supported for the VT100 or Sun terminals.
* A new training user is now available. Its name is
Basic_Product_Training and it contains all exercise software
from Fundamentals, Advanced Topics, and Subsystems and CMVC.
This was created to support training classes that combined a
variety of material from each course into one class. Students
will be able to perform any exercise from the basic product
training series within the single user login.
* Software for all CDF products will be distributed to all sites
even though that site does not have all CDFs running.
76 10/17/88 R\f
D_10_20_0 Release
Appendix C
Target Build Utility
For those customers who have installed the Target Build Utility
on their R1000, the installation of D_10_20_0 will result in the
installation of a bug fix release of the Target_Build_Utility,
Code9_4_4. Rational sites that do not have the Target Build
Utility will not be affected by these changes.
The following bugs are fixed in Code9_4_4:
* The Code9_3_6 release of the Target_Build_Utility did not
generate the correct compilation order for combined views.
This problem has been fixed, and the fix has resulted in a
change to the order in which commands will be called in the
recompilation script. Previously the following commands were
called for each view:
Put_Context_Setup_Command
Put_Compile_Command, once for each obsolete unit in the
view
This sequence has been changed to:
Put_Context_Setup_Command, each time the unit to be
compiled is from a different view than the last unit
compiled
Put_Compile_Command, once for each unit to be recompiled
This change applies to Move_Via_Network, Move_Via_Tape, and
Move_To_Directory.
* Fixed a bug that reported Other_Error when executing
Make_Consistent; this was due to unexpunged, archived units in
the dependency_database.
* Fixed a bug that resulted in consumption of action_ids when
opening the Target_Builder state file.
* Fixed a bug that caused Constraint_Error (Array_Index) to be
raised when calling Make_Consistent with a Libraries parameter
string with a lower index other than 1.
Known Bugs and Workarounds:
Consider the case where you have three subsystems called A, B,
and C. Views in A import spec views in B, and views in B
import spec views in C. The Target Builder may fail if the
working view of B is downloaded independently from A and C,
and then at some later time you attempt to download all three
subsystems with one Make_Consistent command. You will not
have this problem if you always use the Target Builder to move
views to the target from the bottom up, or if you always move
R 10/17/88 77\f
Rational Environment Release Information
all of the subsystems with a single Make_Consistent command.
78 10/17/88 R\f
D_10_20_0 Release
Contents
1. Overview 1
2. Compatibility 1
2.1. Interoperability 2
2.1.1. Archive 2
2.1.2. Mail 3
2.1.3. Network 3
2.1.4. Target Build Utility 3
2.1.5. Package Remote 4
2.2. Terminal Keymaps 5
3. Upgrade Impact 5
3.1. Spec Changes 7
3.2. Keymaps 7
4. New Features 7
4.1. New Specs 7
4.2. CMVC Features 9
4.2.1. Support for Controlling Binary Objects 9
4.2.2. Support for Non-R1000 Target Code 9
4.2.3. Cmvc_Hierarchy Operations 10
4.2.4. Configuration Editor 11
4.2.4.1. Configuration Images 11
4.2.4.2. Generation Images 12
4.2.4.3. History Images 12
4.2.4.4. Associated Directory Objects 13
4.2.4.5. Configuration Image Commands 13
4.2.4.6. Generation Image Commands 14
4.2.4.7. History Image Commands 15
4.2.4.8. Spec Commands 15
4.2.4.9. Other Commands 16
4.2.5. Clarifications of CMVC Functionality 16
4.2.6. Compatibility Checking 18
4.2.7. Compatibility Database Utilities 18
4.3. Dependents Object Editor 19
4.3.1. Show Usage and Obsolescence Menus 19
4.4. System Management 20
4.4.1. Logoff on Disconnect 20
4.4.2. Systemwide Login 21
4.4.3. Tape Log Entries 21
4.4.4. Password Policies 22
4.4.4.1. Password Security 22
4.4.5. Additional Diagnostic Support 23
4.5. Keyboard Macro Editor 23
4.6. Ada Completion 24
4.7. Remote Execution 24
4.8. Debugger Maintenance 24
4.9. Networking 25
4.10. Editor 25
4.11. Print Spooler 25
4.12. Debugger 25
4.13. Facit Keymappings 27
4.14. Archive 27
4.14.1. Archive Mappings 28
4.15. Code Generator 29
R 10/17/88 iii\f
Rational Environment Release Information
4.16. Miscellaneous New Features 30
5. Changes from D_9_25_1 31
5.1. Spec Changes 31
5.2. CMVC Changes 46
5.3. Changes in Work Orders 48
5.4. Naming Changes 48
5.4.1. Target Attribute 48
5.4.2. Directory Naming 49
5.4.3. View Attributes 50
5.5. Pretty-Printer Changes 50
5.6. Editor Changes 52
5.7. Changes to Help Files 52
5.8. Changes to Terminal Keymaps 52
5.9. Compilation Changes 57
5.10. Changes in Editing Ada Units 57
5.11. Miscellaneous Changes 57
6. Bug Fixes 59
6.1. Network 59
6.2. Ada Units 60
6.3. CMVC 61
6.4. Code Generator 63
6.5. Work Orders 64
6.6. Editor 64
6.7. Debugger 66
6.8. Miscellaneous 66
7. Documentation Updates 70
A Changes in Rational Network Mail 71
B Training Courses 75
C Target Build Utility 77
iv 10/17/88 R