DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦9cff1b17e⟧ TextFile

    Length: 168974 (0x2940e)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦dd137ea4c⟧ 
            └─⟦this⟧ 

TextFile

                                                       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