CXUX_Languages Products are:
ada_7.1.1 ada_rts_7.1.1 axi_88k_6.2 hc_7.1 hf77_7.2
ada_88k_6.2 axi_7.1.1 hc_6.3.1 hf77_6.3.2
================================================================================
CX/UX HAPSEO -
VERSION 7.1.1
RELEASE NOTES
Harris Computer Systems Corporation
1. Introduction
The Harris Ada Programming Support Environment (HAPSE) is a
tool set for the development of Ada programs on Harris
Computer Systems computers under the CX/UX, CX/RT, and CX/SX
environments. The derivation of the validation under
version 1.11 of the Ada Compiler Validation Capability
(ACVC) suite is currently in progress at the time of this
writing. HAPSE version 7.1.1 (v7.1.1) applies to both
Series 4000 and Series 5000 systems. HAPSE v7.1.1 contains
two distinct Ada run-time environments: the Basic Ada Run-
time and the Ada Real-time Multiprocessor System (ARMS)
(TM).
HAPSE v7.1.1 contains not only a complete release of the
HAPSE product, but also a skeleton HAPSE environment that
makes it possible for more than one version (installation)
of HAPSE to be configured on your system at a given time.
Details of this multiple HAPSE capability are outlined in
Chapter 2 of the HAPSE Reference Manual.
In addition, HAPSE v7.1.1 includes HAPSE POSIX 1003.5, a
complete implementation of the Institute of Electrical and
Electronic Engineers (IEEE) standard IEEE-Std-1003.5-1992.
POSIX 1003.5 is an abstract Ada binding to items covered by
POSIX 1003.1. This implementation is fully compliant with
the standard and allows users to create fully compliant
applications. It includes source code for the specification
of all POSIX 1003.5 packages as well as the pre-compiled
form of the source for the specifications and bodies of
those packages, located under
hapse_location/bindings/posix_1003.5.
__________
- These release notes cover the following products: ada
- 1 -
CX/UX HAPSE 7.1.1 Release Notes
Optional Harris Ada products that are not bundled with the
HAPSE product are available as stand-alone products that
must be obtained separately. For more information about
optional Ada products and support tools, contact the Harris
Software Support Center at the number listed in the
"Documentation" section.
Optional products that complement HAPSE include the
following:
o Harris AXI (TM) (an Ada X Window Systems (TM) Interface
to Xlib, Xt, and Motif (TM))
o Harris ID Tools (Ada and C cross-referencing tools)
o Harris NightView (TM) (a graphical real-time debugger)
o Harris NightTrace (TM) (a graphical real-time trace and
analysis tool)
2. Trademark Acknowledgements
ARMS is a trademark of Harris Computer Systems Corporation.
AXI is a trademark of Sente Corporation.
HAPSE is a registered trademark of Harris Computer Systems Corporation.
Motif is a trademark of the Open Software Foundation.
NightTrace is a trademark of Harris Computer Systems Corporation.
NightView is a trademark of Harris Computer Systems Corporation.
X Window System is a trademark of the X Consortium, Inc.
3. Documentation
The following documentation is included with this release:
_______________________________________________________________
| Manual Name Pub. Number |
|______________________________________________|_______________|
| HAPSE Reference Manual | 0890288-070 |
| CX/UX HAPSE Runtime Shared Lib. Ver. 7.1.1 RN| 0890449-7.1.1|
| HAPSE a.db Debugging Manual | 0890450-000 |
| CX/UX HAPSE 7.1.1 Release Notes | 0890288-7.1.1|
| HAPSE POSIX 1003.5 Conformance Guide | 0890404-020 |
| AXI Reference Manual | 0890418-000 |
|______________________________________________|_______________|
- 2 -
Release Notes 7.1.1 CX/UX HAPSE
|______________________________________________|_______________|
Additional copies may be ordered by contacting the Harris
Software Support Center. The toll-free number is 1-800-
245-6453. For calls outside the continental United States
the number is 1-305-971-6248.
The HAPSE POSIX 1003.5 Conformance Guide describes in detail
the compliance of the implementation with the standard.
Specification of the actual POSIX 1003.5 standard is
available directly from IEEE, the Institute of Electrical
and Electronic Engineers (1-800-678-IEEE).
4. Prerequisites
Prerequisites for CX/UX HAPSE Version 7.1.1 are as follows:
4.1 Hardware
o Any Series 4000 or Series 5000 system
o 32MB physical memory (minimum configuration)
o Total of 8MB physical memory per HAPSE user (minimum
configuration)
4.2 Software
o CX/UX 7.1 (CX/RT 7.1 or CX/SX 7.1 are acceptable)
5. Cautions
o The compiled form of HAPSE v7.1.1 Ada libraries is
incompatible with those of all previous releases.
Therefore, all Ada source code contained in user HAPSE
libraries must be recompiled after the installation of
HAPSE v7.1.1 (except for libraries that will continue
to use a previous release as their HAPSE version of
choice). The HAPSE tool a.cleanlib should be used to
clean out user HAPSE libraries before recompilation
begins.
- 3 -
CX/UX HAPSE 7.1.1 Release Notes
o Harris-defined defaults for all system-wide
configurable HAPSE parameters are in effect when v7.1.1
is installed. If non-default parameters were used
before the installation of this release, please make
the necessary adjustments to the configurable
parameters to obtain the desired limits using the HAPSE
tool a.config.
o The interface to the a.config tool has been
significantly enhanced. The new interface to the
a.config tool encompasses all the functionality in
a.sharelib and the old a.config tool's interface.
However, many old options to a.config are now obsolete.
a.config still accepts many of the old a.config options
for compatibility purposes for this release only.
These options will not be accepted in subsequent
releases. Obsolete options that affected the HAPSE-
wide configuration were not retained in this release as
they interfered with the new interface. System
administrators must use the new interface when
modifying HAPSE-wide configuration parameters.
o The a.sharelib tool is now obsolete. It has been
replaced by a.config. a.sharelib remains functional by
being a link to a.config, which accepts the obsolete
a.sharelib interface, for this release only. The link
will be removed in subsequent releases.
o The semantics of a.config have changed. In the old
model, a library was not required to have a
configuration. If it did not, it would use the HAPSE-
wide configuration. Any changes to the HAPSE-wide
configuration had an immediate effect in all libraries
without configurations. In the new model, a library
always has a configuration. It inherits the HAPSE-wide
configuration at the time the library is created. If
the HAPSE-wide configuration is later changed, that
change will impact only libraries that are created
after that change. If a user wishes the change to
effect a library that already exists, the change must
be made to the library separately.
o The a.target tool is now obsolete. It is supported for
compatibility in this release only. It will be removed
in subsequent releases.
o The names of the a.analyze88 and a.report88 tools have
been changed to a.analyze and a.report, respectively.
Likewise, the names of the analyze88 and report88 tools
- 4 -
Release Notes 7.1.1 CX/UX HAPSE
have been changed to analyze and report, respectively.
As in the last release, users should not invoke the
analyze, report, analyze88, or report88 tools directly.
They should invoke the a.analyze and a.report tools
instead, which ensures that correct options are passed
to the analyze and report tools. The tools
a.analyze88, a.report88, analyze88, and report88 are
included in this release only for compatibility. They
will be removed in subsequent releases.
o HAPSE tools no longer create the .target_88K file in
each user library. Some users utilize this file in
their makefiles. A similar effect can be created by
using the .HAPSE file in user makefiles instead.
o Several packages have been removed from the HAPSE
standard library. For compatibility, the compiled form
of the old packages have been moved to publiclib.
These packages will be removed from publiclib in
subsequent releases.
o Generation of full debug information (the -g option)
will increase compilation times by approximately 5 to
15 percent. Similarly, the use of the -g option will
increase the size of generated object files and
executables by approximately 35 to 45 percent.
6. Installation
Installation instructions are contained solely within
Chapter 2 of the HAPSE Reference Manual and are not included
in these release notes. Please consult the manual for
configuration options and specific installation procedures
to use with the multiple HAPSE capability.
7. Fixes in This Release
o All fixes and enhancements from HAPSE v6.2 and HAPSE
v7.1 patches, including:
- a.ld no longer requires write access to the HAPSE
library containing the main program unit.
- 5 -
CX/UX HAPSE 7.1.1 Release Notes
- The ARMS run-time system has been corrected to
allow programs linked with it to be profiled using
a.analyze with the -P option.
- The HAPSE-supplied function
current_exception.exception now returns a non-null
string describing the cause of the current
exception, if one has been raised.
- Type conversions are now allowed as parameters
when the corresponding formal parameters are
declared with mode out.
- The parameter profile to sockets.setsockopt has
been corrected.
- The performance of a.ls when executed on large
libraries has been improved.
- Length clauses for fixed-point types which specify
values for 'small which are equal to the specified
'delta but are not even powers of two are now
accepted.
- the a_strings.substitute routine no longer raises
constraint_error when the size of the original
substring does not match the size of the
replacement substring.
o Additional Fixes in This Release:
- The a.db -attach option no longer kills the
program being attached if the attach fails.
- The a.ld tool can now deal with large numbers of
Ada shared objects in a single link.
- The a.path tool no longer requires write
permission to a library when it is only displaying
the path for that library.
8. Features in This Release
o Compliance with ACVC validation suite version 1.11.
o Full support of Ada R.M. Chapter 13.
- 6 -
Release Notes 7.1.1 CX/UX HAPSE
o Compliance with IEEE-Std-1003.5-1992.
o The CX/UX HAPSE POSIX 1003.5 implementation is fully
compliant when the Basic Ada run-time system is
selected by the user at link time. (This is the
default.) The CX/UX HAPSE POSIX 1003.5 implementation
is not fully compliant when the ARMS run-time is
selected at link time (-arms option to the HAPSE tool
a.ld). See the HAPSE POSIX 1003.5 Conformance Guide
for more details.
o All enhancements from HAPSE v6.2 and HAPSE v7.1
patches, including:
- The HAPSE-supplied library harrislib was enhanced.
It now includes partial support for 32-bit
unsigned integers via the unsigned_support
package.
- .ada is now accepted as a source file suffix in
all places where .a and .pp were accepted.
- The a_strings.free routine has been implemented.
- The a.ld prelinker was modified to accept the -a
and -al options to force ARMS programs to share
the specified object file and libraries.
- The posix_1003.1 library now includes thin/direct
bindings to IEEE-Std-1003.1b (POSIX 1003.1b, also
previously known as POSIX 1003.4) as well as
IEEE-Std-1003.1 (POSIX 1003.1).
- Several changes have been made to a.db to improve
the total size of the debugger and the speed of
the debugger during initialization.
o New Development in This Release:
- Support for producing DWARF Debug Information:
* HAPSE-supplied libraries (standard,
harrislib, etc.) are built with DWARF debug
information.
* It is possible to compile only certain units
in a program with debug information and to
omit the debug information on others. This
is controlled by the debug level. The debug
- 7 -
CX/UX HAPSE 7.1.1 Release Notes
level can be set for a compilation via the -g
option to a.mklib, a.cleanlib, a.config, ada,
and a.make.
* Pragma DEBUG is provided to allow users to
set the debug_level for a compilation unit
from within the Ada source code. The format
is: pragma DEBUG(unit_name, debug_level),
where unit_name is an Ada unit name, and
debug_level is either A.DB or FULL.
- Advantages of DWARF Debug Information:
* Allows debugging with the NightView graphical
real-time debugger.
* The library in which a program was built is
no longer necessary for debugging when using
NightView with DWARF debug information, as it
was with a.db. So, a program can be debugged
on a target system that lacks a HAPSE
environment.
* DWARF debug information is capable of
describing almost all languages features.
- Compilation Size and Speed Improvements:
* The size and speed of compilations is
improved for the following situation: The
compilation includes complex expressions that
involve overload resolution where there are
large numbers of functions whose parameter
profiles must be checked. This is most
common where an operator such as "+" is
overloaded hundreds of times and then used in
complex expressions.
- Optimizations and Performance:
* Exception handling speed is improved when an
exception is raised and is propagated through
frames that handle other exceptions, but that
do not handle the exception which was raised.
This case is now handled by the internal
exception handling code, rather than by
implicit raise statements in the generated
code.
- 8 -
Release Notes 7.1.1 CX/UX HAPSE
- Optimizations and Program Size:
* The selective linking feature of a.ld (-c) is
now functional for ELF programs. It is not
available for shared object programs.
- Tools:
* The following tools now support the -g[n]
(debug level) option: ada, a.make, a.mklib,
a.cleanlib, and a.config.
* The interface to the a.config tool has been
significantly enhanced. See the manual for
more information.
* The a.make tool now handles commands such as:
a.make unit_name. If it is not aware of the
unit named unit_name, it attempts to locate a
source file with the name of the unit
suffixed with .a, .pp, or .ada. If found, it
will compile that source file, assuming that
the unit is contained therein.
* The a.ld prelinker was modified to accept the
-a and -al options to force ARMS programs to
share the specified object file and
libraries.
* The a.sharelib tool is now obsolete.
* The a.target tool is now obsolete.
* The a.mklib and a.cleanlib tools no longer
accept the -t option. It is obsolete.
* The names of the a.analyze88 and a.report88
tools have been changed to a.analyze and
a.report, respectively. Likewise, the names
of the analyze88 and report88 tools have been
changed to analyze and report, respectively.
* The a.ls tool now supports the -U option to
display uncompiled units and the -n option to
display the total numbers of uncompiled and
compiled units in the library.
- Ada Debugger (a.db) Enhancements and Features:
- 9 -
CX/UX HAPSE 7.1.1 Release Notes
* a.db was modified from a ucb universe
application to an att universe program. This
has no effect on the user, but does affect
such subtleties as output formats and
possibly screen behavior.
* If a breakpoint was disabled immediately
after it was hit, then a.db could hang the
next time the break address was crossed,
unless the program was restarted. a.db no
longer hangs when an improperly disabled
breakpoint is encountered.
* Several bugs related to displaying values of
expressions containing C variables and/or
function calls were repaired.
* A nuisance warning about not locating DWARF
information in libc.so.1 was removed.
* Performance was improved by adding a cache to
tdesc lookup routines. This is especially
noticeable when single stepping.
* The stack trace capabilities for a.db were
improved, so that a.db is able to walk back
through more complex stack frames correctly.
* The cs command now works correctly when
issued from the entry address of a called
subprogram before the allocation of the
subprogram's stack frame.
* Several bugs in disassembly were fixed.
These generally resulted in the debugger
going into a tight loop complaining about
segmentation faults, bad reads, or assertion
errors whenever a key was pressed.
* Several performance issues were addressed in
the single step I/O polling algorithm. a.db
will perform more blocking waits than it used
to. This results in better performance for
the debugged process because more CPU time is
available.
- The following HAPSE-supplied library packages were
modified:
- 10 -
Release Notes 7.1.1 CX/UX HAPSE
* The posix_1003.1 library now includes
thin/direct bindings to IEEE-Std-1003.1b
(POSIX 1003.1b, also previously known as
POSIX 1003.4) as well as IEEE-Std-1003.1
(POSIX 1003.1).
The following packages have been removed from the
HAPSE standard library:
* close_all
* file_names
* ioctl
* ioctl_fmt
* memory
* strlen
* strncpy
* text_supprt
* tty
* unix
* unix_status_buffer
Those packages provided non-standard bindings
which were used internally by the language-defined
package bodies.
Rather than using these packages, we recommend use
of IEEE-Std-1003.5-1992, an abstract/thick binding
to operating system services. An implementation
of this binding can be found in
/usr/hapse/88k_7.1.1/bindings/posix_1003.5. A
non-standard, direct/thin binding to the same
operating system services can be found in
/usr/hapse/88k_7.1.1/bindings/posix_1003.1.
For compatibility, the compiled form of the old
packages have been moved to publiclib. These
packages will be removed from publiclib in
subsequent releases.
- 11 -
CX/UX HAPSE 7.1.1 Release Notes
- Optional Products:
* Ada bindings to the X Window System
(including Xlib, Xt, and Motif) may be
purchased for any system running this release
of HAPSE.
* Harris ID tools may be used for performing
cross-referencing over Ada source files.
* Harris NightView is a graphical real-time
debugger capable of debugging programs
created with this HAPSE.
* Harris NightTrace is a graphical real-time
tracing tool which is capable of tracing
programs created with this HAPSE.
- 12 -
Release Notes 7.1.1 CX/UX HAPSE
9. Changes From Previous Releases
o The dr_interface package will not be released with the
next version of HAPSE. Please use the
real_time_data_monitoring package instead.
o The structure of the internal representation of
previously compiled information (DIANA) has changed in
this release. Therefore, libraries previously compiled
with different versions of HAPSE must be cleaned and/or
removed if this version of HAPSE is to be used in such
libraries.
o The interface to the a.config tool has been
significantly enhanced. The new interface to the
a.config tool encompasses all the functionality in
a.sharelib and the old a.config tool's interface.
However, many old options to a.config are now obsolete.
a.config still accepts many of the old a.config options
for compatibility purposes for this release only.
These options will not be accepted in subsequent
releases. Obsolete options that affected the HAPSE-
wide configuration were not retained in this release,
as they interfered with the new interface. System
administrators must use the new interface when
modifying HAPSE-wide configuration parameters.
o The a.sharelib tool is now obsolete. It has been
replaced by a.config. a.sharelib remains functional by
being a link to a.config, which accepts the obsolete
a.sharelib interface, for this release only. The link
will be removed in subsequent releases.
o The semantics of a.config have changed. In the old
model, a library was not required to have a
configuration. If it did not, it would use the HAPSE-
wide configuration. Any changes to the HAPSE-wide
configuration had an immediate effect in all libraries
without configurations. In the new model, a library
always has a configuration. It inherits the HAPSE-wide
configuration at the time the library is created. If
the HAPSE-wide configuration is later changed, that
change will impact only libraries that are created
after that change. If a user wishes the change to
effect a library that already exists, the change must
be made to the library separately.
o The a.target tool is now obsolete. It is supported for
compatibility in this release only. It will be removed
- 13 -
CX/UX HAPSE 7.1.1 Release Notes
in subsequent releases.
o The a.mklib and a.cleanlib tools no longer accept the
-t option. It is obsolete.
o The names of the a.analyze88 and a.report88 tools have
been changed to a.analyze and a.report, respectively.
Likewise, the names of the analyze88 and report88 tools
have been changed to analyze and report, respectively.
As in the last release, users should not invoke the
analyze, report, analyze88, or report88 tools directly.
Instead, they should invoke the a.analyze and a.report
tools, which ensure that correct options are passed to
the analyze and report tools. The tools a.analyze88,
a.report88, analyze88, and report88 are included in
this release only for compatibility. They will be
removed in subsequent releases.
o HAPSE tools no longer create the .target_88K file in
each user library. Some users utilize this file in
their makefiles. A similar effect can be created by
using the .HAPSE file in user makefiles instead.
o The tools fe.88k, cg.88k, reorder.88k, a.ld.88k, and
std.88k have changed their names to fe, cg, reorder,
a.ld, and std, respectively. These tools should never
be executed by the user, so this change should not have
any adverse effects on the user.
o Several packages have been removed from the HAPSE
standard library. For compatibility, the compiled form
of the old packages have been moved to publiclib.
These packages will be removed from publiclib in
subsequent releases.
10. Known Problems with HAPSE v7.1.1
In the HAPSE POSIX 1003.5 Conformance Guide, page 2-4, for
Section 2.4.1.2.1 Configurable System Limits, change
Open_Stream_Maxima to Stream_Maxima.
Problems with HAPSE version 7.1.1 will be individually
resolved in patches to v7.1.1, or in subsequent releases.
- 14 -
Release Notes 7.1.1 CX/UX HAPSE
11. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 15 -
CONTENTS
1. Introduction............................................ 1
2. Trademark Acknowledgements.............................. 2
3. Documentation........................................... 2
4. Prerequisites........................................... 3
4.1 Hardware........................................... 3
4.2 Software........................................... 3
5. Cautions................................................ 3
6. Installation............................................ 5
7. Fixes in This Release................................... 5
8. Features in This Release................................ 6
9. Changes From Previous Releases.......................... 13
10. Known Problems with HAPSE v7.1.1........................ 14
11. Direct Software Support................................. 15
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX HAPSEO
VERSION 7.1.1
RELEASE NOTES
0890288-7.1.1
October 1994
_________________________________________________________________
return to index
================================================================================
Power UNIX HAPSEO -
VERSION 7.1.1
RELEASE NOTES
Harris Computer Systems Corporation
1. Introduction
The Harris Ada Programming Support Environment (HAPSE) is a
tool set for the development of Ada programs on RS/6000
computers under the Power UNIX environment. HAPSE v7.1.1
uses the Basic Ada Run-time System, which implements Ada
tasks as states of execution contained within a single
process (the user program).
HAPSE v7.1.1 contains not only a complete release of the
HAPSE product, but also a skeleton HAPSE environment that
makes it possible for more than one version (installation)
of HAPSE to be configured on your system at a given time.
Details of this multiple HAPSE capability are outlined in
Chapter 2 of the HAPSE Reference Manual.
In addition, HAPSE v7.1.1 includes HAPSE POSIX 1003.5, a
complete implementation of the Institute of Electrical and
Electronic Engineers (IEEE) standard IEEE-Std-1003.5-1992.
POSIX 1003.5 is an abstract Ada binding to items covered by
POSIX 1003.1. This implementation is fully compliant with
the standard and allows users to create fully compliant
applications. It includes source code for the specification
of all POSIX 1003.5 packages as well as the pre-compiled
form of the source for the specifications and bodies of
those packages, located under
hapse_location/bindings/posix_1003.5.
For more information about packages and support tools,
contact the Harris Software Support Center at the number
listed in the Documentation section.
__________
- These release notes cover the following products: ada
- 1 -
Power UNIX HAPSE 7.1.1 Release Notes
2. Trademark Acknowledgements
HAPSE is a registered trademark of Harris Corporation.
3. Documentation
The following documentation is included with this release:
______________________________________________________
| Manual Name Pub. Number |
|_____________________________________|_______________|
| HAPSE Reference Manual | 0890288-070 |
| HAPSE a.db Debugging Manual | 0890450-010 *|
| Power UNIX HAPSE 7.1.1 Release Notes| 0890288-7.1.1|
| HAPSE POSIX 1003.5 Conformance Guide| 0890404-020 *|
|_____________________________________|_______________|
Additional copies may be ordered by contacting the Harris
Software Support Center. The toll-free number is 1-800-
245-6453. For calls outside the continental United States
the number is 1-305-971-6248.
The HAPSE POSIX 1003.5 Conformance Guide describes in detail
the compliance of the implementation with the standard.
Specification of the actual POSIX 1003.5 standard is
available directly from IEEE, the Institute of Electrical
and Electronic Engineers (1-800-678-IEEE).
4. Prerequisites
Prerequisites for Power UNIX HAPSE Version 7.1.1 are as
follows:
4.1 Hardware
o Any IBM RS/6000 system
o 32MB physical memory (minimum configuration)
o Total of 8MB physical memory per HAPSE user (minimum
configuration)
- 2 -
Release Notes 7.1.1 Power UNIX HAPSE
4.2 Software
o Power UNIX 1.1, patch level base-007. If NFS is
installed, patch level nfs-001.
5. Cautions
o Harris-defined defaults for all system-wide
configurable HAPSE parameters are in effect when v7.1.1
is installed. If non-default parameters were utilized
prior to the installation of this release, please make
the necessary adjustments to the configurable
parameters to obtain the desired limits using the HAPSE
tool a.config.
o HAPSE v7.1.1 produces executable images using the ELF
object file format, which includes DWARF debug
information. Shared-Objects and dynamic linking are not
supported in this release. For in-depth discussions
about object format and linking under Power UNIX 1.1,
refer to the Compilation Systems Volume 2 (Concepts)
manual, "Executable and Linking Format (ELF)" chapter.
o Single and double precision floating point entities
must be aligned on word boundaries. The compiler will
issue an error when it finds a misaligned float.
6. Installation
HAPSE is installed as an optional package to the operating
system. Installation instructions for loading packages are
contained in the Secure/Power UNIX Version 1.1 Release
Notes. For a better understanding of the multiple HAPSE
capability which is being installed on your system, see
Chapter 2 of the HAPSE Reference Manual.
7. Features in this Release
o Compliance with ACVC validation suite version 1.11.
o Full support of Ada R.M. Chapter 13.
- 3 -
Power UNIX HAPSE 7.1.1 Release Notes
o Compliance with IEEE-Std-1003.5-1992. The HAPSE POSIX
1003.5 implementation is fully compliant when using the
Basic Ada Run-time system. (This is the default.) See
the HAPSE POSIX 1003.5 Conformance Guide for more
details.
o Two profiling tools, a.analyze and a.report are
available for compile-time analysis. When an
executable is linked with the HAPSE tracing run-time
library, the tool a.trace prints a run-time analysis.
See the HAPSE Reference Manual for more details.
8. Known Problems with HAPSE v7.1.1
Problems with HAPSE version 7.1.1 will be individually
resolved in patches to v7.1.1 or in subsequent releases.
9. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 4 -
Release Notes 7.1.1 Power UNIX HAPSE
- 5 -
CONTENTS
1. Introduction.............................................. 1
2. Trademark Acknowledgements................................ 2
3. Documentation............................................. 2
4. Prerequisites............................................. 2
4.1 Hardware............................................. 2
4.2 Software............................................. 3
5. Cautions.................................................. 3
6. Installation.............................................. 3
7. Features in this Release.................................. 3
8. Known Problems with HAPSE v7.1.1.......................... 4
9. Direct Software Support................................... 4
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
Power UNIX HAPSEO
VERSION 7.1.1
RELEASE NOTES
0890288-7.1.1
October 1994
_________________________________________________________________
return to index
================================================================================
CX/UX HAPSEO -
VERSION 6.2
RELEASE NOTES
Harris Computer Systems Division
1. Introduction
The Harris Ada Programming Support Environment (HAPSE) is a
tool set for the development of Ada programs on Harris
computers under the CX/UX, CX/RT, and CX/SX environments.
This release has been validated under version 1.11 of the
Ada Compiler Validation Capability (ACVC) suite. HAPSE
version 6.2 (v6.2) applies to both Harris Series-4000 and
Harris Series-5000 systems. HAPSE v6.2 contains two
distinct Ada run-time environments: the Basic Ada Run-time
and the Ada Real-time Multiprocessor System (ARMS) (TM).
HAPSE v6.2 contains not only a complete release of the HAPSE
product, but also a skeleton HAPSE environment that makes it
possible for more than one version (installation) of HAPSE
to be configured on your system at a given time. Details of
this multiple HAPSE capability are outlined in Chapter 2 of
the CX/UX HAPSE Reference Manual.
In addition, HAPSE v6.2 includes CX/UX HAPSE POSIX 1003.5, a
complete implementation of the Institute of Electrical and
Electronic Engineers (IEEE) standard IEEE-Std-1003.5-1992.
POSIX 1003.5 is an abstract Ada binding to items covered by
POSIX 1003.1. This implementation is fully compliant with
the standard and allows users to create fully compliant
applications. It includes source code for the specification
of all POSIX 1003.5 packages as well as the pre-compiled
form of the source for the specifications and bodies of
those packages, located under
hapse_location/bindings/posix_1003.5.
__________
- These release notes cover the following products:
ada_88k
- 1 -
CX/UX HAPSE 6.2 Release Notes
Optional Harris Ada products that are not bundled with the
HAPSE product are available as stand-alone products that
must be obtained separately. For more information about
optional Ada products and support tools, contact the Harris
Software Support Center at the number listed in the next
section.
Optional products that complement HAPSE include the
following:
o Harris AXI (an Ada X Window Systems (TM) Interface to
Xlib, Xt, and Motif (TM))
o Harris ID Tools (Ada and C cross-referencing tools)
o Harris NightTrace (TM) (a graphical real-time trace and
analysis tool)
2. Trademark Acknowledgements
ARMS is a trademark of Harris Corporation.
HAPSE is a registered trademark of Harris Corporation.
Motif is a trademark of the Open Software Foundation.
NightTrace is a trademark of Harris Corporation.
X Window System is a trademark of the Massachusetts Institute of Technology.
3. Documentation
The following documentation is included with this release:
__________________________________________________________
| Manual Name Pub. Number|
|___________________________________________|_____________|
| CX/UX HAPSE Reference Manual | 0890288-050|
| CX/UX HAPSE 6.2 Release Notes | 0890288-6.2|
| CX/UX HAPSE POSIX 1003.5 Conformance Guide| 0890404-010|
| HAPSE a.db Debugging Manual | 0890450-000|
|___________________________________________|_____________|
Additional copies may be ordered by contacting the Harris
Software Support Center. The toll-free number is 1-800-
245-6453. For calls outside the continental United States
the number is 1-305-971-6248.
- 2 -
Release Notes 6.2 CX/UX HAPSE
The CX/UX HAPSE POSIX 1003.5 Conformance Guide describes in
detail the compliance of the implementation with the
standard. Specification of the actual POSIX 1003.5 standard
is available directly from IEEE, the Institute of Electrical
and Electronic Engineers (1-800-678-IEEE).
4. Prerequisites
Prerequisites for CX/UX HAPSE Version 6.2 are as follows:
- 3 -
CX/UX HAPSE 6.2 Release Notes
4.1 Hardware
o Any Harris Series-4000 or Series-5000 system
o 32MB physical memory (minimum configuration)
o Total of 8MB physical memory per HAPSE user (minimum
configuration)
4.2 Software
o CX/UX 6.2 (CX/RT 6.2 or CX/SX 6.2 are acceptable)
5. Cautions
o The compiled form of HAPSE v5.2 and HAPSE v6.2 Ada
libraries are incompatible. Therefore, all Ada source
code contained in user HAPSE libraries must be
recompiled after the installation of HAPSE v6.2 (except
for libraries that continue to use HAPSE v5.2 as their
HAPSE version of choice). The HAPSE tool, a.cleanlib,
should be used to clean out user HAPSE libraries before
recompilation begins.
o Harris-defined defaults for all system-wide
configurable HAPSE parameters are in effect when v6.2
is installed. If non-default parameters were utilized
prior to the installation of this release, please make
the necessary adjustments to the configurable
parameters to obtain the desired limits using the HAPSE
tool a.config.
6. Installation
Installation instructions are contained solely within
Chapter 2 of the CX/UX HAPSE Reference Manual and are not
included in these release notes. Please consult the manual
for configuration options and specific installation
procedures to use with the multiple HAPSE capability.
- 4 -
Release Notes 6.2 CX/UX HAPSE
7. Fixes in this Release
o All fixes and enhancements from HAPSE v5.2 patches.
- A patched assembler has been provided which does
not corrupt object files produced from large Ada
source files.
- In the Basic Ada run-time model, the a.db tool no
longer disables breakpoints between one execution
of a program and the next in the same session.
- a.ld now correctly links programs that use the AXI
(X Window System) bindings.
- The performance of a.ld was significantly
improved.
- a.slinker now removes dead routines which were
previously considered as "live" only because they
had explicit exception handlers.
- a.slinker now removes dead routines from programs
which utilize C object that was compiled for the
88110 architecture (Series 5000).
- The code generator now correctly sizes
uninitialized package allocation bases that are
marked with pragma MEMORY_POOL (data, pkg, ...);
this corrects the bus error or segmentation fault
sometimes seen during program startup.
- The run-time startup code now migrates to the
correct CPU board before creating the physical
local memory pool as specified by the user via
pragma MEMORY_POOL (data, pkg, local, ...).
- The a.make tool now correctly compiles source
files after failed compilations of subunits when
their source files contain other, unrelated units,
and when the error is actually in a parent unit.
- The a.make tool was not prepared for the
circumstance that the same PID may be reused at
different times in extremely long compilations.
It now correctly handles this situation.
- The implementation of a.make's -All option has
been corrected to compile source files of out-of-
- 5 -
CX/UX HAPSE 6.2 Release Notes
date units in other libraries in those other
libraries.
- A new option, a.make -import, compiles all out-
of-date units into the current library or library
specified by -lib.
- The a.make tool now correctly handles the case
where large numbers of error messages occur in its
dependency-analysis phase.
- The performance of a.make was significantly
improved.
- a.monitor's permissions were corrected and
fast_interrupt_task tasks are now displayed even
in the absence of "ghost" mode.
- The a.rm tool has been extensively modified and
will no longer corrupt ada.lib files.
- The a.rm utility now accepts a new option, -U. It
permits a user to place units in the UNCOMPILED
state, instead of physically removing them. The
use of this option works correctly with the a.make
utility, whereas the physical removal of units
without the -U option can confuse it.
- The requirement for the Data_Rec_Array_Index_Limit
to be greater than 1 in order to data record or
monitor complex array components was lifted for
the tool a.rtm and the real_time_data_monitoring
package. This tool and package now are able to do
lookups on arbitrarily complex array components as
long as Data_Array_Index is 1 (or greater.)
Please note that the system utility rtutil(1) was
not modified and its requirements have not
changed.
- A bug in the internal symbol table management for
a.rtm and the real_time_data_monitoring package
was corrected such that simple name collisions are
handled correctly; two variables in different
packages that have the same simple name can now be
monitored.
- The a.target tool no longer fails when executed.
- 6 -
Release Notes 6.2 CX/UX HAPSE
- Automatic packing of arrays will not pack an array
such that the elements will be smaller than
specified by the user in a 'size representation
clause on the element type. Explicit packing with
pragma PACK, of course, can still force complete
packing.
- Packed-record assignment involving bit extraction
now works correctly.
- The -dr option no longer causes the compiler to
abort with a signal 11.
- Compilation involving nested records where the
outer record is declared private no longer cause
internal assertion errors.
- Compilations of units containing fixed-point types
with dynamic bounds used as the elements of packed
types now compile without internal errors.
- Multiple executions of the fe.88k processor no
longer deadlock.
- The fe.88k processor has been modified to store
correct source file names where there was a
previous compilation of a foreign source file
which contained generic instantiations. (A
foreign source file is a source file that exists
in a library other than the library in which it is
compiled; compiling with the -lib option allows
this.)
- The compilation speed of very large array
aggregates specified with positional notation has
been considerably improved. As an additional
consequence of this, the "TN count exceeded" error
does not occur in relation to them.
- The compilation of non-local source files
containing separate subunits of separate subunits
no longer produces linker errors.
- Bit moves involving objects overlaid with a "for x
use y.z'address" clause, where the base address of
the two objects was not identical, now works
correctly.
- 7 -
CX/UX HAPSE 6.2 Release Notes
- The front end of the compiler was corrected to
elaborate task interrupt entry addresses in the
presence of high levels of optimization.
- The abortion of tasks in select statements with
"terminate" alternatives under the ARMS model no
longer causes the task master to terminate
prematurely.
- On Series 5000 systems, the non-volatile x
registers are saved in all appropriate cases.
- Text_io.new_page raises STATUS_ERROR if the file
is null.
- The standard library contains a new package called
address_clauses. The package contains the
elaboration code for address clauses. If users
wish to modify this code, they can simply make a
copy of the file locally, change the code and add
a with clause on their copy of the address_clauses
package to one of the units in their program.
- A new package, task_synchronization, which
provides the equivalent of a counting semaphore,
was added to the arms HAPSE library. This
provides an extremely efficient real-time
mechanism for synchronizing "n" ARMS tasks.
- Ada tasking programs that use the AXI bindings no
longer experience STORAGE_ERRORS while in the
Xt.AppMainLoop routine.
o Additional Fixes in this Release:
- Generic instantiations now compile correctly in
child libraries, even when the same units exist in
parent libraries, thus eliminating link errors.
- Recompilation of units, when those same units
exist in other libraries on the ADAPATH now work
correctly.
- a.make -p recovers gracefully from failed fork()
calls and when it exhausts both pipes and file
descriptors. It continues after reducing the
degree of parallelism.
- 8 -
Release Notes 6.2 CX/UX HAPSE
- a.rm -U was corrected to remove .objects files.
8. Features in this Release
o Compliance with ACVC validation suite version 1.11.
o Full support of Ada R.M. Chapter 13.
o Compliance with IEEE-Std-1003.5-1992. The CX/UX HAPSE
POSIX 1003.5 implementation is fully compliant when the
Basic Ada Run-time system is selected by the user at
link time. (This is the default.) The CX/UX HAPSE
POSIX 1003.5 implementation is not fully compliant when
the ARMS Run-time is selected at link time (-arms
option to the HAPSE tool a.ld). See the CX/UX HAPSE
POSIX 1003.5 Conformance Guide for more details.
o All enhancements from v5.2 patches, including:
- A new option, a.rm -U, places a unit in an
UNCOMPILED state.
- A new option, a.make -import, compiles all out-
of-date units into the current library or library
specified by -lib.
- 9 -
CX/UX HAPSE 6.2 Release Notes
o New Development in this Release:
- ARMS Enhancements:
* Pragma MEMORY_POOL. The implementation
requires less physical memory and less CPU
time during elaboration. The memory pool
configuration can be stored in a dynamic
MAP_FILE, which may be altered without
relinking the program. Use the new a.ld -mp
option for this.
* Pragma PASSIVE_TASK enhancements include the
addition of GENERAL passive tasks, which have
fewer restrictions on the form of a task
body, and IPL_SERVER passive tasks (system
Interrupt Priority Level control for use with
FAST_INTERRUPT_TASKs).
* Pragma FAST_INTERRUPT_TASK enhancements
include support for the IPL_SERVER passive
task mechanism. Also, conditional entry
calls to passive and non-passive tasks are
now allowed.
- Optimizations and Program Size:
* Enhanced instruction scheduling.
* Reduced compilation size and time for large
programs.
* More opportunities for a.analyze88
optimizations.
* General code quality improvements.
* Internal symbol name-space changes
significantly reduce the size of linked
programs.
- Tools:
* Automatic translation of raw symbol names to
Ada expanded names is output from the tools
a.analyze88 and a.report88. Use the new
option -Zraw_names, to preserve the raw form.
Other new options include -hapse, -lib, and
-V (very verbose). See the help screens or
- 10 -
Release Notes 6.2 CX/UX HAPSE
man pages for a list of all options.
* a.demangle is a new tool which filters names
into a human-readable form.
* The new a.ld -mp option creates a memory-pool
map file that describes the layout of memory
pools defined by the user via pragma
MEMORY_POOL, as well as default heap and
stack sizes. At post-link time, the user may
modify entries in this file, which affect
physical location, cache mode, and size. The
values are read at program startup and used
during program execution by the ARMS
executive. No relinking is needed.
* Enhancements were made to a.make -Z (zoom),
which ignores non-local libraries to reduce
recompilation time.
* The a.make tool was enhanced to handle this
situation: a.make is given a target in a
library that has no such object available,
yet a source file exists with the name
{object}.a or {object}.pp. Instead of
getting a fatal error, a.make finds
dependents of that source file and attempts
to compile the target again, in case {object}
is in that source file.
* Enhancements to a.monitor include
initialization-time performance improvements
and an automatic rescan if a program is not
currently running.
* Enhancements to a.rtm include the ability to
define a display format for a particular item
(e.g., base, fore, aft, exp), the ability to
define a default display format for discrete
types and real types (e.g., base, fore, aft,
exp), a fast modify mode from the command
window, and improved handling of long
expanded names in the display.
- Ada Debugger (a.db) Enhancements and Features:
* a.db displays array slices.
- 11 -
CX/UX HAPSE 6.2 Release Notes
- The following HAPSE-supplied library packages were
added or modified:
* Package: interrupt_entry, arms. File:
interrupt_entry.a. Description: New
subprogram specifications were added to allow
for blocking and unblocking of interrupts
using real-time-clock and eti IDs from the
rtc_control and eti_control packages.
* Package: task_synchronization, arms. File:
task_synchronization.a,
task_synchronization_b.a. Description: New
package added for low-overhead, real-time
synchronization of "n" tasks.
* Packages: real_time_data_monitoring, usermap,
dr_interface, harrislib. Files: rtm.a,
rtm_b.a, rtm_image.a, rtm_value.a, usermap.a,
usermap_b.a, dr_interface.a,
dr_interface_b.a. Description: Real-time
debug enhancements were added which
significantly improve the package. Changes
include support for intermixed use of
multiple programs, a generic read/write
subpackage, enhanced list and search
capabilities, and a more generalized
interface. The old interfaces are still
provided for compatibility, but will be
removed in the next release. Please see the
specification of real_time_data_monitoring in
harrislib for more information.
* Package: generic_math, harrislib. File:
generic_math.a. Description: Remove abs
function, use standard.abs instead.
* Package: interval_timer, harrislib. File:
interval_timer.a. Description: Function "+"
returns the result, not "l".
* Package: math, harrislib. File: math_b.a.
Description: Replace /lib/libM.a with the
new -alM link option.
- 12 -
Release Notes 6.2 CX/UX HAPSE
* Package: rt_interface, harrislib. Files:
rt_interface.a, rt_interface_b.a.
Description: Change slot parameter to OUT
for sched_pgm_add.
* Package: address_clauses, standard. File:
address_clauses.a. Description: New package
added with elaboration code for address
clauses.
* Package: a_strings, standard. File:
a_strings_b.a. Description: Added check for
null string to function to_c.
* Package: machine_code, standard. File:
machine_code.a. Description: Added support
for Series-5000 (MC88110) to the package.
* Package: unix_prcs, standard. File:
unix_prcs_b.a. Description: Deleted function
cx_system which interfaced to CX/UX system.
- Optional Products:
* Ada bindings to the X Window System
(including Xlib, Xt, and Motif) may be
purchased for any system running this release
of HAPSE.
* Harris ID tools may be used for performing
cross-referencing over Ada source files.
9. Changes From Previous Releases
o The dr_interface package no longer operates on FORTRAN
data.
o The dr_interface package will not be released with the
next version of HAPSE. Please use the
real_time_data_monitoring package instead.
o The structure of the internal representation of
previously compiled information (DIANA) has changed in
this release. Therefore, libraries previously compiled
with different versions of HAPSE must be cleaned and/or
removed if this version of HAPSE is to be used in such
libraries.
- 13 -
CX/UX HAPSE 6.2 Release Notes
o The run-time library names in the lib directory
changed. For example, the Basic runtime is now called
libbart.a, rather than lib88k.rts.a, and the ARMS
runtime is called libarms.a, rather than libarms.rts.a.
This should be transparent to the user.
10. Known Problems with HAPSE v6.2
Problems with HAPSE version 6.2 will be individually
resolved in patches to v6.2, or in subsequent releases.
11. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 14 -
CONTENTS
1. Introduction............................................ 1
2. Trademark Acknowledgements.............................. 2
3. Documentation........................................... 2
4. Prerequisites........................................... 3
4.1 Hardware........................................... 4
4.2 Software........................................... 4
5. Cautions................................................ 4
6. Installation............................................ 4
7. Fixes in this Release................................... 5
8. Features in this Release................................ 9
9. Changes From Previous Releases.......................... 13
10. Known Problems with HAPSE v6.2.......................... 14
11. Direct Software Support................................. 14
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX HAPSEO
VERSION 6.2
RELEASE NOTES
0890288-6.2
December 1993
_________________________________________________________________
return to index
================================================================================
CX/UX HAPSEO Runtime Shared Libraries -
VERSION 7.1.1
RELEASE NOTES
Harris Computer Systems Corporation
1. Introduction
The Harris Ada Programming Support Environment (HAPSE)
Runtime Shared Libraries are a set of compiled and linked
Ada packages for use with Ada applications which explicitly
utilize shared libraries.
These libraries are required to exist in a specific location
on all Series 4000 and Series 5000 systems that run Ada
applications that utilize HAPSE Runtime Shared Libraries.
These libraries are included in the full HAPSE product tape;
therefore, this product tape is necessary only for Series
4000 and Series 5000 systems that do not include the full
HAPSE product.
These libraries include:
o HAPSE libraries (standard, harrislib,
bindings/posix_1003.5, etc.)
o HAPSE runtime systems (ARMS (TM), basic Ada runtime)
o HAPSE I/O subsystem libraries (those that support
text_io, etc.)
o HAPSE real-time support library
__________
- These release notes cover the following products:
ada_rts
- 1 -
CX/UX HAPSE Runtime Shared L7.1.1ies Release Notes
2. Trademark Acknowledgements
HAPSE is a registered trademark of Harris Computer Systems Corporation.
ARMS is a trademark of Harris Computer Systems Corporation.
3. Documentation
The following documentation is included with this release:
_______________________________________________________________
| Manual Name Pub. Number |
|______________________________________________|_______________|
| CX/UX HAPSE Runtime Shared Libraries 7.1.1 RN| 0890449-7.1.1|
|______________________________________________|_______________|
Additional copies may be ordered by contacting the Harris
Software Support Center. The toll-free number is 1-800-
245-6453. For calls outside the continental United States
the number is 1-305-971-6248.
The HAPSE Reference Manual (Publication Number 0890288)
contains related documentation but is not included with this
product.
4. Prerequisites
Prerequisites for CX/UX HAPSE Runtime Shared Libraries
Version 7.1.1 are as follows:
4.1 Hardware
o Any Series 4000 or Series 5000 system
4.2 Software
o CX/UX 7.1 (CX/RT 7.1 or CX/SX 7.1 are acceptable)
- 2 -
Release Notes CX/UX1HAPSE Runtime Shared Libraries
5. Cautions
None.
6. Installation
The ada_rts installation tape contains the ada_rts
libraries. Please refer to the CX/UX System Administration
Manual, Chapter 3, for instructions on software
installation.
7. Known Problems
None.
8. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 3 -
CX/UX HAPSE Runtime Shared L7.1.1ies Release Notes
- 4 -
CONTENTS
1. Introduction.............................................. 1
2. Trademark Acknowledgements................................ 2
3. Documentation............................................. 2
4. Prerequisites............................................. 2
4.1 Hardware............................................. 2
4.2 Software............................................. 2
5. Cautions.................................................. 3
6. Installation.............................................. 3
7. Known Problems............................................ 3
8. Direct Software Support................................... 3
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX HAPSEO Runtime Shared Libraries
VERSION 7.1.1
RELEASE NOTES
0890449-7.1.1
October 1994
_________________________________________________________________
return to index
================================================================================
CX/UX AXI -
VERSION 7.1.1
RELEASE NOTES
Harris Computer Systems Corporation
1. Introduction
The Ada X Interface (AXI)1 is an abstract Ada binding to the
XO2 Library (Xlib), the X Toolkit (Xt) and Motif3 (Xm).
Using this interface, applications written in Ada may take
full advantage of the X library, the X Toolkit, and Motif.
Installation of this software assumes that the actual C
libraries to which the AXI product "binds" are present on
the system. This product also assumes that the Harris Ada
Programming Support Environment (HAPSEO)4 is installed. The
specifics of these requirements are outlined later in this
document.
The documentation contained with this product assumes that
users are familiar with X and programming with X. It also
assumes a working knowledge of the Ada language and the
HAPSE environment. The documentation provided with the AXI
product does not substitute for documentation about X,
Motif, HAPSE, or the Ada language.
The AXI documentation contains the specifications that
comprise the Ada X Interface. No Ada source modules for the
__________
- These release notes cover the following products: axi
1. AXI is a trademark of Sente Corporation.
2. X is a registered trademark of the X Consortium, Inc.
3. Motif is a trademark of the Open Software Foundation.
4. HAPSE is a registered trademark of Harris Computer
Systems Corporation.
- 1 -
CX/UX AXI 7.1.1 Release Notes
package bodies that make up the AXI interface are shipped
with the AXI product; however, source for the package
specifications are available. These source files may be
useful as a point of reference in addition to the AXI
manual.
- 2 -
Release Notes 7.1.1 CX/UX AXI
2. Documentation
The following documentation is included with this release:
_______________________________________
| Manual Name Pub. Number |
|______________________|_______________|
| AXI Reference Manual | 0890418-000 |
| AXI 7.1 Release Notes| 0890418-7.1.1|
|______________________|_______________|
Additional copies may be ordered by contacting the Harris
Software Support Center. The toll-free number is 1-800-
245-6453. For calls outside the continental United States
the number is 1-305-971-6248.
3. Prerequisites
Prerequisites for CX/UX AXI Version 7.1.1 are as follows:
3.1 Hardware
o Any Series 4000 or Series 5000 system
o 32MB physical memory (minimum configuration)
o Total of 8MB physical memory per AXI user
o An X Terminal
3.2 Software
o CX/UX 7.1 or CX/RT 7.1.
o HAPSE version 7.1.1 installed.
o X Window System Version 11, Release 5 (X11R5).
- 3 -
CX/UX AXI 7.1.1 Release Notes
4. Cautions
AXI version 7.1.1 supports only systems that are running
X11R5 and HAPSE v7.1.1. In order to use the AXI bindings,
X11R5 must be installed.
In order to figure out which version of the X Window System
your system is running, use the xdpyinfo(1) command.
No Ada package body source files are shipped with the AXI
product; therefore, it is not possible to debug Ada programs
through X library calls at the source level. The a.db or
optional NightView TM 5 debuggers may still be used to debug
Ada programs; however, routines within the AXI bindings may
be debugged only at the assembly level.
The 7.1.1 release of AXI is identical to the 7.1 and 3.0.1
releases of AXI, but is compiled for use with HAPSE v7.1.1.
It is compiled with full DWARF debug information.
5. Installation
The installation tape is in cpio format. It contains the
source for all AXI package specifications as well as the
pre-compiled versions of the package specifications and
bodies.
To install CX/UX AXI, follow these steps:
o Sign on as root, or use the "su" program to become
root.
o CX/UX AXI should be installed after the HAPSE product
has been installed. It is intended that this product
be installed under the root partition, since its
default placement is under
"usr/hapse_88k_7.1.1/bindings", and because the HAPSE
product is usually read from tape at the root
directory.
__________
5. NightView is a trademark of Harris Computer Systems
Corporation.
- 4 -
Release Notes 7.1.1 CX/UX AXI
o IT IS REQUIRED THAT AXI BE INSTALLED AT THE SAME
LOCATION AS THE HAPSE PRODUCT! If the axi product was
read from some location other than the root directory,
then the AXI product must also be read in from that
same location.
o Execute "cd /" to position yourself under the root
directory.
o Mount the CX/UX AXI installation tape.
o Issue the command "cpio -iBcvdum < /dev/rmt/0mn" to
read in the first two files setup and tape_list (Note:
the installation tape is assumed to be loaded on drive
0.)
o Issue the command "./setup" to run a menu-driven
program that installs the new CX/UX AXI product.
o The setup program displays a prompt similar to: "Enter
the name of the running kernel or if /unix".
Press the carriage return key. The following message
is displayed: "Non-generic boot. Assuming System
Generation not to be done."
o The next message displayed is: "Reel 1 of the product
tape(s) must be loaded on device /dev/rmt/0mn. Is this
the case? (y|n)". Type "y".
o Expect a pause, then a menu will prompt: "Enter the
numbers of the actions you would like to perform."
Select the number corresponding to "All".
o You will see a message similar to: "Loading object
files" as files come onto the system under the
directory usr/hapse_88k_7.1.1/bindings.
o When the menu returns, select "Exit", and remove the
tape from the drive.
o Installation is now complete.
- 5 -
CX/UX AXI 7.1.1 Release Notes
6. Using the AXI Bindings
Once installed, the AXI bindings may be used in Ada
applications. This section describes the steps required in
order to compile, link, execute, and debug programs that use
the AXI bindings.
6.1 Compilation
In order to compile applications that reference any part of
the AXI bindings (e.g., Xlib, Xt, Motif), a user must first
include the appropriate library pathname(s) on the ADAPATH
search list in the HAPSE library where the application is to
be compiled.
Assuming that the HAPSE installation you are using is
installed in what we will refer to as $hapse_location, then
it is necessary to include either one or both of the
following HAPSE libraries on the ADAPATH:
$hapse_location/bindings/xlibxt
$hapse_location/bindings/motif
The first is necessary for all programs that use the Xlib
and/or Xt interfaces. If these are used exclusively, then
this is the only additional library required on a HAPSE
library's ADAPATH. If Motif is also to be used, then both
libraries shown above must be included on the library path.
The HAPSE library tool a.path recognizes the AXI library
directory names as keywords (regardless of the value of
$hapse_location); therefore, it is possible to configure a
HAPSE library to reference the Xlib and Xt interface by
typing the following command:
a.path -A xlibxt
If Motif will be used, then the additional command should
also be issued:
a.path -A motif
Note that for applications that utilize the Motif interface,
both supplied libraries must be included on the ADAPATH in
the library where compilations will be performed. The
- 6 -
Release Notes 7.1.1 CX/UX AXI
Motif-specific library path is not sufficient for Ada Motif
applications as the Motif interface depends upon both Xlib
and Xt, making the presence of both supplied-libraries
necessary.
Aside from including the appropriate libraries on the
ADAPATH, nothing special needs to be done in order to
compile applications that use the AXI interface. Compile
source code that contains AXI calls in the same manner as
you would any other Ada source file by invoking the HAPSE
compiler, ada. For example:
ada helloworld.a
compiles the Ada source file helloworld.a which contains a
simple Motif "helloworld" program that utilizes the AXI
bindings. The source for this program is provided in these
release notes.
6.2 Linking
Linking AXI programs does not require any special steps
other than the presence of the appropriate AXI libraries on
the ADAPATH of the target HAPSE library. The AXI interface
internally links in the C libraries required (e.g.,
libX11.a, libXt.a, libXm.a) when applications use any AXI-
specific features that would require these C libraries to be
linked. In order to link any AXI program, invoke the a.ld
prelinker as you would any Ada program. For example, to
link the program helloworld, simply issue the command:
a.ld helloworld
Note that the AXI interface only supports X11R5 versions of
the C libraries and that AXI programs will not link unless
the R5 versions are installed on your system. If R4
versions are installed, attempts to link AXI applications
will probably result in errors due to undefined externals.
AXI version 7.1.1 contains Ada shared objects for each
supplied AXI library. Therefore, Ada programs that utilize
any AXI library may choose to link AXI libraries either
statically or dynamically. For more information regarding
Ada shared objects and shared libraries, refer to the 7.1.1
version of the HAPSE Reference Manual.
- 7 -
CX/UX AXI 7.1.1 Release Notes
6.3 Executing
Executing a program that utilizes the AXI interface only
requires that you run the program on an X Terminal with an
appropriate DISPLAY variable setting.
6.4 Debugging
Ada programs that use the AXI interface may be debugged
using the a.db or optional NightView debuggers just like any
other Ada programs. However, since no source is supplied for
the bodies of the packages that make up the AXI interface,
debugging through any AXI functions and procedures may be
done only at the assembly level. Because most AXI calls
access C libraries, these would have to be debugged at the
assembly level anyway.
Both the a.db and NightView debuggers trap most CX/UX
signals by default, stopping the program being debugged in
the process. Because X programs rely heavily on the use of
SIGIO, neither debugger stops (by default) when the
application being debugged encounters SIGIO. This default
behavior may be modified using the a.db or NightView command
handle. All other CX/UX signals are trapped and handled by
the debugger as documented in the CX/UX HAPSE a.db Debugging
Manual and CX/UX NightView User's Guide.
7. Programming Hints
7.1 Setting and Getting Widget Resources
The X Toolkit and Motif widget-creation convenience
functions expect you to identify widget resources in a
static array. This array is passed as an argument to the
convenience function along with an argument specifying the
number of resources in the list.
For example, the often-used Xt function
CreateManagedWidget() accepts as its arguments: the name of
the widget to create; the class of the widget; the widget's
parent; and, as its last two arguments, an array of resource
pairs and an integer specifying the number of resource pairs
in the array.
When using the AXI bindings, Motif and Xt resources may
easily be constructed by creating argument lists using the
- 8 -
Release Notes 7.1.1 CX/UX AXI
SetArg procedure that is defined in the Xt package. An
argument list that is created using this technique may then
be passed to the Ada version of the convenience function
along with the number of resources defined in the list.
The following Ada code fragments demonstrate how you may
specify a horizontal orientation when creating a simple
Motif RowColumn widget. You first creates an argument list
of widget resources. Then you pass this list as an argument
to the CreateManagedWidget function found in the Xt package.
In this example, only one resource pair is specified in the
list (to specify the orientation of the widget):
with Xt;
with Xm;
with Xmdef;
...
arglist : Xt.arglist(1..1);
rowcol_w, toplevel : Xt.Widget;
...
Xt.SetArg (arglist(1), Xmdef.Norientation, Xt.Argval(Xm.HORIZONTAL));
rowcol_w := Xt.CreateManagedWidget("Row", Xm.RowColumnWidgetClass,
toplevel, arglist, 1);
...
A few things are important to note regarding resource lists:
o The resource list is of the AXI-defined type Xt.arglist
and is an array type. The SetArg procedure may be
called repetitively to set as many resource pairs in
the argument list array as necessary.
o The Motif resource names are defined in the Xmdef
package and parallel the names of the resources as they
appear in the C language header files with a similar
notation. (In this case Norientation appears as it
would in C without the "Xt" or "Xm" prefix that the C
language uses. For Ada, these resource names MUST BE
prefixed by "Xmdef.", UNLESS a "use" clause is given
for this package, as all resource names are defined in
the Xmdef package).
o Constants for resource values are defined within either
the Xt or Xm packages, depending upon whether the value
- 9 -
CX/UX AXI 7.1.1 Release Notes
is an X Toolkit or Motif resource value. The names for
these constants also mimic the C language definitions
in the C header files (Xm.HORIZONTAL in this case
parallels the C value XmHORIZONTAL).
o Resource values may either be simple integer values or
must be converted to the AXI-defined type Xt.Argval as
shown in the preceding example. The SetArg procedure
is overloaded to accept either type as a resource
value.
7.2 Callbacks
Callback routines are an integral part of X Toolkit
programming. To register a callback routine in an Ada
program using Xt or Motif is quite similar to the C
language; however, certain programming techniques should be
used when programming Ada callbacks in order to minimize
errors.
A callback may be registered in Ada by using the AddCallback
procedure found in the Xt package. Its arguments are
similar to the C function XtAddCallback(). Be aware when
programming Ada callbacks that all callback routines must be
defined in library-level packages. Because the Harris
Computer Systems C compiler and the HAPSE Ada compiler use
similar calling conventions, nothing further needs to be
done in order to register an Ada callback routine with the
Xt toolkit. The requirement that Ada callbacks be defined
at the library level eliminates confusion introduced by
uplevel references.
An example of an Ada callback routine and a code fragment
demonstrating how to register the callback are shown below:
--
-- A simple Ada callback routine in a library-level package body.
--
with text_io;
package body callback is
--
procedure call_me (w : in Xt.Widget;
client_data : in Xt.Pointer;
call_data : in Xt.Pointer) is
begin
text_io.put_line ("Callback was called");
- 10 -
Release Notes 7.1.1 CX/UX AXI
end call_me;
--
end callback;
--
-- This callback can then be registered with the X Toolkit
-- for an AXI application where "some_widget" is defined.
--
with callback;
procedure test is
--
...
Xt.AddCallback(some_widget, Xtdef.NactivateCallback,
callback.call_me'address, Xt.XtNULL);
...
--
end test;
Full debugging of Ada callbacks is supported when using
either the a.db or optional NightView symbolic debuggers;
however, traversing the call stack backwards from a callback
routine into C code found within the Xt library can be
debugged only at the assembly level from within the
debugger.
7.3 Ada Tasking in AXI Applications
The AXI bindings support Ada tasking features that make it
easy to integrate X programming with applications that
utilize Ada tasking constructs. Normally, any Ada task (in
the Basic Ada Run-time System) that blocks to wait for input
will block all other tasks, including those which are
runable. AXI contains an internal tasking implementation
whereby all X calls that block to wait for input will block
through an internal event handler mechanism (implemented
using Ada tasking). This mechanism allows all other tasks
in the application to proceed normally without blocking when
another task is blocked in an X call.
Without this internal mechanism, all tasks in a given
application would not be able to execute, even if runable,
when any other task is blocked in an X call. The task that
makes the X call would be blocked in a CX/UX system call
(waiting for input), prohibiting all other tasks from
- 11 -
CX/UX AXI 7.1.1 Release Notes
executing until the blocked task has exited the system call.
This kind of behavior is evident in some Ada/X binding
implementations available from other vendors. The AXI
implementation eliminates this problem for programs linked
with the Basic Ada Run-time.
In ARMS TM 6 applications, Ada tasks are mapped to CX/UX
processes. This implementation does not introduce the
problems outlined above that exist in the Basic Ada Run-
time. It is important to note; however, that only one ARMS
task in a given application can operate on an open
connection to the server. That is, it is not possible to
establish a connection to the server from one ARMS task and
attempt to make X calls on the same connection from another
ARMS task. Because ARMS tasks are implemented as CX/UX
processes, only one ARMS task in an application may perform
X calls, because within the X toolkit, only one connection
to the server per process is allowed.
7.4 Optimizations
The HAPSE compiler supports three levels of optimization.
The details of these levels of optimization are outlined in
the HAPSE Reference Manual. Ada programs that use the AXI
interface may be fully optimized.
Additionally, link-time optimizations may be performed to
enhance execution speed and reduce program size. The a.ld
prelinker supports a selective linking capability that may
reduce the size of a linked Ada program. Other link-time
optimizations are available and may be performed to improve
the execution speed of a program (See a.ld(1)).
AXI imposes no restrictions on using any of the optimization
techniques available while compiling and linking AXI
applications using the HAPSE environment.
__________
6. ARMS is a trademark of Harris Computer Systems
Corporation.
- 12 -
Release Notes 7.1.1 CX/UX AXI
7.5 An Example Motif Program
The following is the source code for a simple Motif program
that uses the AXI bindings. It may be compiled and linked
using the HAPSE compiler as shown in sections 6.1 and 6.2 of
these release notes.
--
-- Make all appropriate AXI packages visible
--
with Xm;
with Xrm;
with Xt;
with Xlib;
procedure helloworld is
--
app_context : Xt.AppContext;
toplevel, label : Xt.Widget;
argv : Xt.stringlist_ptr;
options : Xrm.optiondesclist (1 .. 0);
fallback : string (1 .. 0) := "";
args : Xt.arglist (0 .. 1);
--
begin
--
argv := Xlib.getarguments;
-- Create and initialize the application context
app_context := Xt.createapplicationcontext;
Xt.AppInitialize (app_context, "Hello", options, 0, argv,
fallback, args, 0, toplevel);
-- Create a simple label widget
label := Xm.CreateLabel (toplevel, "Hello_World", args, 0);
Xt.ManageChild (label);
-- Enter the event loop
Xt.RealizeWidget (toplevel);
Xt.AppMainLoop (app_context);
--
end helloworld;
- 13 -
CX/UX AXI 7.1.1 Release Notes
Other sample programs that demonstrate the usage of the AXI
bindings are available from Harris Computer Systems
Corporation. Contact your Harris analyst to obtain a copy of
the sample programs. The sample programs that are available
use the AXI bindings to exercise features in Xlib, Xt and
Motif.
7.6 Programming Pitfalls
Many Xt and Motif references discourage the use of system
calls such as fork(), exec(), and system() because error
conditions that may arise (when using these system calls)
are virtually unrecoverable from an X application's
standpoint. If error recovery is not a critical matter from
the X application's view, then the use of such system calls
may be appropriate, and often useful. For non-ARMS
programs, the use of any such system call is clearly up to
the programmer; however, for ARMS applications, use of these
types of system calls is strictly prohibited. Any ARMS
program that attempts to use any routine that uses the
fork() system call will get an error at link time. The ARMS
"spawn" services may be used as an alternative in ARMS
applications that require the ability to spawn other
processes.
AXI calls were designed to map as closely as possible to the
C language library functions to which they "bind". Ada
typing restrictions sometimes make this task more difficult,
and several AXI-defined Ada types have been defined in order
to make this task a bit easier. Users should always consult
the AXI documentation or refer to the package specifications
in order to choose the most appropriate form of any Xlib,
Xt, or Motif function that they wish to employ. Often
several different Ada interfaces are available (as
overloaded Ada functions and procedures) for a single C
function. If chosen properly, much work can be saved by
avoiding Ada type conversions when programming with the AXI
bindings.
8. Fixes in This Release
This is not the initial release of this product, however,
there are no fixes in this release. AXI version 7.1.1 is
identical to AXI versions 7.1 and 3.0.1, compiled
specifically for use with HAPSE version 7.1.1.
- 14 -
Release Notes 7.1.1 CX/UX AXI
9. Features in This Release
o Full Ada support of Xlib, Xt, and Motif operations on
Harris NightHawk Series 4000 and Series 5000 systems
running HAPSE. The AXI product includes:
o Support for X11, Release 5.
o Support for Motif version 1.1.
o Access to functions in the X Extensible Library.
o Access to functions in the X Miscellaneous
Utilities Library.
o Ada support for the Motif Resource Manager
(including UIL-based applications).
o Support for the STARS interface to the X window
system (Xlib only).
o Support for non-blocking Ada tasking using the
Basic Ada Run-time System.
o A conventional naming scheme which parallels the
original C implementation.
o The supplied libraries are built with full DWARF
debug information, so that they may be debugged
using the optional NightView debugger.
o AXI is integrated with the HAPSE environment to take
advantage of the latest real-time Ada optimization and
performance features including:
o The HAPSE Ada compiler's CCG (common code
generator) optimizer that performs state-of-the-
art optimizations of Ada applications. Ada X
applications may be fully optimized for maximum
performance.
o The HAPSE prelinker's selective linking capability
that is capable of removing unused routines that
would normally be linked into Ada applications.
o The flexibility of choosing between the ARMS and
Basic Ada Run-time Systems when linking AXI
applications. Each has its own advantages and
disadvantages for Ada tasking and memory pool
- 15 -
CX/UX AXI 7.1.1 Release Notes
configuration.
o A variety of real-time features and packages
provided with the HAPSE programming environment.
o A complete set of Ada bindings to standard UNIXO7
(CX/UX) utilities. (Note: The POSIX 1003.5
product must be obtained separately from HAPSE.)
10. Known Problems with AXI 7.1.1
Problems with AXI version 7.1.1 included in the following
list will be addressed in patches to version 7.1.1 or will
be corrected in later versions of AXI. Full functionality
of the STARS binding to the Xt toolkit will provided in a
future release.
o The 7.1.1 version of AXI does not support Motif version
1.2.
o The STARS Xt implementation is not complete. The STARS
bindings should be used only for programming at the
Xlib level.
o Ada applications that use the Motif Resource Manager
may not correctly reference .uid files created by the
uil compiler.
o The HAPSE selective linker will not remove dead code
from C language libraries. Only dead code from Ada
libraries is subject to removal from linked
executables.
__________
7. UNIX is a registered trademark licensed exclusively by
the X/Open Company Ltd.
- 16 -
Release Notes 7.1.1 CX/UX AXI
11. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 17 -
CONTENTS
1. Introduction............................................ 1
2. Documentation........................................... 3
3. Prerequisites........................................... 3
3.1 Hardware........................................... 3
3.2 Software........................................... 3
4. Cautions................................................ 4
5. Installation............................................ 4
6. Using the AXI Bindings.................................. 6
6.1 Compilation........................................ 6
6.2 Linking............................................ 7
6.3 Executing.......................................... 8
6.4 Debugging.......................................... 8
7. Programming Hints....................................... 8
7.1 Setting and Getting Widget Resources............... 8
7.2 Callbacks.......................................... 10
7.3 Ada Tasking in AXI Applications.................... 11
7.4 Optimizations...................................... 12
7.5 An Example Motif Program........................... 13
7.6 Programming Pitfalls............................... 14
8. Fixes in This Release................................... 14
9. Features in This Release................................ 15
10. Known Problems with AXI 7.1.1........................... 16
11. Direct Software Support................................. 17
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX AXI
VERSION 7.1.1
RELEASE NOTES
0890418-7.1.1
October 1994
_________________________________________________________________
return to index
================================================================================
CX/UX AXI -
VERSION 6.2
RELEASE NOTES
Harris Computer Systems Division
1. Introduction
The Ada X Interface (AXI)1 is an abstract Ada binding to the
X2 Library (Xlib), the X Toolkit (Xt) and Motif3 (Xm).
Using this interface, applications written in Ada may take
full advantage of the X library, the X Toolkit, and Motif.
Installation of this software assumes that the actual C
libraries to which the AXI product "binds" is present on the
system. This product also assumes that the Harris Ada
Programming Support Environment (HAPSE)4 is installed. The
specifics of these requirements are outlined later in this
document.
The documentation contained with this product assumes that
users are familiar with X and programming with X. It also
assumes a working knowledge of the Ada language and the
HAPSE environment. The documentation provided with the AXI
product does not substitute documentation about X, Motif,
HAPSE, or the Ada language.
__________
- These release notes cover the following products:
axi_88k
1. AXI is a trademark of Advanced Technology Center.
2. X is a registered trademark of the Massachusetts
Institute of Technology.
3. Motif is a trademark of the Open Software Foundation,
Inc.
4. HAPSE is a registered trademark of Harris Computer
Systems Division.
- 1 -
CX/UX AXI 6.2 Release Notes
The AXI documentation contains the specifications that
comprise the Ada X Interface. No Ada source modules for the
package bodies that make up the AXI interface are shipped
with the AXI product; however, source for the package
specifications are available. These source files may be
useful as a point of reference in addition to the AXI
manual.
- 2 -
Release Notes 6.2 CX/UX AXI
2. Documentation
The following documentation is included with this release:
_____________________________________
| Manual Name Pub. Number|
|______________________|_____________|
| AXI Reference Manual | 0890418-000|
| AXI 6.2 Release Notes| 0890418-6.2|
|______________________|_____________|
Additional copies may be ordered by contacting the Harris
Software Support Center. The toll-free number is 1-800-
245-6453. For calls outside the continental United States
the number is 1-305-971-6248.
3. Prerequisites
Prerequisites for CX/UX AXI Version 6.2 are as follows:
3.1 Hardware
o Any Harris Series-4000 or Series-5000 system
o 32MB physical memory (minimum configuration)
o Total of 8MB physical memory per AXI user
o An X Terminal
3.2 Software
o CX/UX 6.2 or CX/RT 6.2.
o HAPSE version 6.2 installed.
o X Window System Version 11, Release 5 (X11R5).
- 3 -
CX/UX AXI 6.2 Release Notes
4. Cautions
AXI version 6.2 supports only systems that are running X11R5
and HAPSE v6.2. Any system running CX/UX 6.2 or higher
should be running X11R5; however, it may be possible that a
system running CX/UX 6.2 is only running X11R4. In order to
use the AXI bindings, X11R5 must be installed.
In order to figure out which version of the X Window System
your system is running, use the xdpyinfo(1) command.
No Ada package body source files are shipped with the AXI
product; therefore, it is not possible to debug Ada programs
through X library calls at the source level. The a.db
debugger may still be used to debug Ada programs; however,
stepping into any calls within the AXI bindings may be
debugged only at the assembly level.
The 6.2 release of AXI is identical to the 3.0.1 release of
AXI, but is compiled for use with HAPSE v6.2.
5. Installation
The installation tape is in cpio format. It contains the
source for all AXI package specifications as well as the
pre-compiled versions of the package specifications and
bodies.
To install CX/UX AXI, follow these steps:
o Sign on as root, or use the "su" program to become
root.
o CX/UX AXI should be installed after the HAPSE product
has been installed. It is intended that this product
be installed under the root partition, since its
default placement is under
"usr/hapse_88k_6.2/bindings", and because the HAPSE
product is usually read from tape at the root
directory.
o IT IS REQUIRED THAT AXI BE INSTALLED FROM THE SAME
LOCATION AS THE HAPSE PRODUCT!. If the hapse_88k6.2
product was read from some location other than the root
directory, then the AXI product must also be read in
from that same location.
- 4 -
Release Notes 6.2 CX/UX AXI
o Execute "cd /" to position yourself under the root
directory.
o Mount the CX/UX AXI installation tape.
o Issue the command "cpio -iBcvdum < /dev/rmt/0mn" to
read in the first two files setup and tape_list (Note:
the installation tape is assumed to be loaded on drive
0.)
o Issue the command "./setup" to run a menu-driven
program that installs the new CX/UX AXI product.
o The setup program displays a prompt similar to: "Enter
the name of the running kernel or if /unix".
Press the carriage return key. The following message
is displayed: "Non-generic boot. Assuming System
Generation not to be done."
o The next message displayed is: "Reel 1 of the product
tape(s) must be loaded on device /dev/rmt/0mn. Is this
the case? (y|n)". Type "y".
o Expect a pause, then a menu will prompt: "Enter the
numbers of the actions you would like to perform."
Select the number corresponding to "All".
o You will see a message similar to: "Loading object
files" as files come onto the system under the
directories usr/hapse_88k_6.2/bindings.
o When the menu returns, select "Exit", and remove the
tape from the drive.
o Installation is now complete.
6. Using the AXI Bindings
Once installed, the AXI bindings may be used in Ada
applications. This section describes the steps required in
order to compile, link, execute, and debug programs that use
the AXI bindings.
- 5 -
CX/UX AXI 6.2 Release Notes
6.1 Compilation
In order to compile applications that reference any part of
the AXI bindings (e.g., Xlib, Xt, Motif), a user must first
include the appropriate library pathname(s) on the ADAPATH
search list in the HAPSE library where the application is to
be compiled.
Assuming that the HAPSE installation we are using is
installed in what we will refer to as $hapse_location, then
it is necessary to include either one or both of the
following HAPSE libraries on the ADAPATH:
$hapse_location/bindings/xlibxt
$hapse_location/bindings/motif
The first is necessary for all programs that use the Xlib
and/or Xt interfaces. If these are used exclusively, then
this is the only additional library required on a HAPSE
library's ADAPATH. If Motif is also to be used, then both
libraries shown above must be included on the library path.
The HAPSE library tool a.path recognizes the AXI library
directory names as keywords (regardless of the value of
$hapse_location); therefore, it is possible to configure a
HAPSE library to reference the Xlib and Xt interface by
typing the following command:
a.path -A xlibxt
If Motif will be used, then the additional command should
also be issued:
a.path -A motif
Note that for applications that utilize the Motif interface,
both supplied libraries must be included on the ADAPATH in
the library where compilations will be performed. The
Motif-specific library path is not sufficient for Ada Motif
applications as the Motif interface depends upon both Xlib
and Xt, making the presence of both supplied-libraries
necessary.
Aside from including the appropriate library(ies) on the
ADAPATH, nothing special needs to be done in order to
compile applications that use the AXI interface. A user can
compile source code that contains AXI calls in the same
- 6 -
Release Notes 6.2 CX/UX AXI
manner as he would any other Ada source file by invoking the
HAPSE compiler, ada. For example:
ada helloworld.a
compiles the Ada source file helloworld.a which contains a
simple Motif "helloworld" program that utilizes the AXI
bindings. The source for this program is provided in these
release notes.
6.2 Linking
Linking AXI programs does not require any special steps
other than the presence of the appropriate AXI library(ies)
on the ADAPATH of the target HAPSE library. The AXI
interface internally links in the C libraries required
(e.g., libX11.a, libXt.a, libXm.a) when applications use any
AXI-specific features that would require these C libraries
to be linked. In order to link any AXI program, a user must
only invoke the a.ld prelinker as he would any Ada program.
For example, to link the program helloworld, simply issue
the command:
a.ld helloworld
Note that the AXI interface only supports X11R5 versions of
the C libraries and that AXI programs will not link unless
the R5 versions are installed on your system. If R4
versions are installed, attempts to link AXI applications
will most likely result in errors due to undefined
externals.
6.3 Executing
Executing a program that utilizes the AXI interface only
requires that the user will be running the program on an X
terminal with an appropriate DISPLAY variable setting.
6.4 Debugging
Ada programs that use the AXI interface may be debugged
using the a.db debugger just like any other Ada program.
However, since no source is supplied for the bodies of the
packages that make up the AXI interface, debugging through
any AXI functions and procedures may be done only at the
assembly level. Because most AXI calls access C libraries,
- 7 -
CX/UX AXI 6.2 Release Notes
these would have to be debugged at the assembly level
anyway.
The a.db debugger traps most CX/UX signals by default,
stopping the program being debugged in the process. Because
X programs rely heavily on the use of SIGIO, the debugger
does not stop (by default) when the application being
debugged encounters SIGIO. This default behavior may be
modified using the a.db command handle. All other CX/UX
signals are trapped and handled by the debugger as
documented in the CX/UX HAPSE Reference Manual.
7. Programming Hints
7.1 Setting and Getting Widget Resources
The X Toolkit and Motif widget-creation convenience
functions expect users to identify widget resources in a
static array. This array is passed as an argument to the
convenience function along with an argument specifying the
number of resources in the list.
For example, the often-used Xt function
CreateManagedWidget() accepts as its arguments, the name of
the widget to create, the class of the widget, the widget's
parent, and, as its last two arguments, the function accepts
an array of resource pairs and an integer specifying the
number of resource pairs in the array.
When using the AXI bindings, Motif and Xt resources may
easily be constructed by creating argument lists using the
SetArg procedure that is defined in the Xt package. An
argument list that is created using this technique may then
be passed onto the Ada version of the convenience function
along with the number of resources defined in the list.
The following Ada code fragments demonstrate how a user may
specify a horizontal orientation when creating a simple
Motif RowColumn widget. The user first creates an argument
list of widget resources. Then the user passes this list as
an argument to the CreateManagedWidget function found in the
Xt package. In this example, only one resource pair is
specified in the list (to specify the orientation of the
widget):
with Xt;
- 8 -
Release Notes 6.2 CX/UX AXI
with Xm;
with Xmdef;
...
arglist : Xt.arglist(1..1);
rowcol_w, toplevel : Xt.Widget;
...
Xt.SetArg (arglist(1), Xmdef.Norientation, Xt.Argval(Xm.HORIZONTAL));
rowcol_w := Xt.CreateManagedWidget("Row", Xm.RowColumnWidgetClass,
toplevel, arglist, 1);
...
A few things are important to note regarding resource lists:
o The resource list is of the AXI-defined type Xt.arglist
and is an array type. The SetArg procedure may be
called repetitively to set as many resource pairs in
the argument list array as necessary.
o The Motif resource names are defined in the Xmdef
package and parallel the names of the resources as they
appear in the C language header files with a similar
notation. (In this case Norientation appears as it
would in C without the "Xt" or "Xm" prefix that the C
language uses. For Ada, these resource names MUST BE
prefixed by "Xmdef.", UNLESS a "use" clause is given
for this package, as all resource names are defined in
the Xmdef package).
o Constants for resource values are defined within either
the Xt or Xm packages, depending upon whether the value
is an X Toolkit or Motif resource value. The names for
these constants also mimic the C language definitions
in the C header files (Xm.HORIZONTAL in this case
parallels the C value XmHORIZONTAL).
o Resource values may either be simple integer values or
must be converted to the AXI-defined type Xt.Argval as
shown in the example above. The SetArg procedure is
overloaded to accept either type as a resource value.
- 9 -
CX/UX AXI 6.2 Release Notes
7.2 Callbacks
Callback routines are an integral part of X Toolkit
programming. To register a callback routine in an Ada
program using Xt or Motif is quite similar to the C
language; however, certain programming techniques should be
used when programming Ada callbacks in order to minimize
errors.
A callback may be registered in Ada by using the AddCallback
procedure found in the Xt package. Its arguments are
similar to the C function XtAddCallback(). What users
should be most aware of when programming Ada callbacks is
that all callback routines must be defined in library-level
packages. Because the Harris C compiler and the HAPSE Ada
compiler use similar calling conventions, nothing further
needs to be done in order to register an Ada callback
routine with the Xt toolkit. The requirement that Ada
callbacks be defined at the library level eliminates
confusion introduced by uplevel references.
An example of an Ada callback routine and a code fragment
demonstrating how to register the callback are shown below:
--
-- A simple Ada callback routine in a library-level package body.
--
with text_io;
package body callback is
--
procedure call_me (w : in Xt.Widget;
client_data : in Xt.Pointer;
call_data : in Xt.Pointer) is
begin
text_io.put_line ("Callback was called");
end call_me;
--
end callback;
--
-- This callback can then be registered with the X Toolkit
-- for an AXI application where "some_widget" is defined.
--
with callback;
procedure test is
--
- 10 -
Release Notes 6.2 CX/UX AXI
...
Xt.AddCallback(some_widget, Xtdef.NactivateCallback,
callback.call_me'address, Xt.XtNULL);
...
--
end test;
Full debugging of Ada callbacks is supported when using the
a.db symbolic debugger; however, traversing the call stack
backwards from a callback routine into C code found within
the Xt library can be debugged only at the assembly level
from within the debugger.
7.3 Ada Tasking in AXI Applications
The AXI bindings support Ada tasking features that make it
easy to integrate X programming with applications that
utilize Ada tasking constructs. Normally, any Ada task (in
the Basic Ada Runtime System) that blocks to wait for input
will block all other tasks, including those which are
runable. AXI contains an internal tasking implementation
whereby all X calls that block to wait for input will block
through an internal event handler mechanism (implemented
using Ada tasking). This mechanism allows all other tasks
in the application to proceed normally without blocking when
another task is blocked in an X call.
Without this internal mechanism, all tasks in a given
application would not be able to execute, even if runable,
when any other task is blocked in an X call. The task that
makes the X call would be blocked in a CX/UX system call
(waiting for input), prohibiting all other tasks from
executing until the blocked task has exited the system call.
This kind of behavior is evident in some Ada/X binding
implementations available from other vendors. The AXI
implementation eliminates this problem for programs linked
with the Basic Ada Runtime.
In ARMS applications, Ada tasks are mapped to CX/UX
processes. This implementation does not introduce the
problems outlined above that exist in the Basic Ada Runtime.
It is important to note; however, that only one ARMS task in
a given application can operate on an open connection to the
server. That is, it is not possible to establish a
connection to the server from one ARMS task and attempt to
- 11 -
CX/UX AXI 6.2 Release Notes
make X calls on the same connection from another ARMS task.
Because ARMS tasks are implemented as CX/UX processes, only
one ARMS task in an application may perform X calls, because
within the X toolkit, only one connection to the server per
process is allowed.
7.4 Optimizations
The HAPSE compiler supports three levels of optimization.
The details of these levels of optimization are outlined in
the CX/UX HAPSE Reference Manual. Ada programs that use the
AXI interface may be fully optimized.
Additionally, link-time optimizations may be performed to
enhance execution speed and reduce program size. The a.ld
prelinker supports a selective linking capability that may
reduce the size of a linked Ada program. Other link-time
optimizations are available and may be performed to improve
the execution speed of a program (See a.ld(1)).
AXI imposes no restrictions when using any of the
optimization techniques available when compiling and linking
AXI applications using the HAPSE environment.
7.5 An Example Motif Program
The following is the source code for a simple Motif program
that uses the AXI bindings. It may be compiled and linked
using the HAPSE compiler as shown in sections 6.1 and 6.2 of
these release notes.
--
-- Make all appropriate AXI packages visible
--
with Xm;
with Xrm;
with Xt;
with Xlib;
procedure helloworld is
--
app_context : Xt.AppContext;
toplevel, label : Xt.Widget;
- 12 -
Release Notes 6.2 CX/UX AXI
argv : Xt.stringlist_ptr;
options : Xrm.optiondesclist (1 .. 0);
fallback : string (1 .. 0) := "";
args : Xt.arglist (0 .. 1);
--
begin
--
argv := Xlib.getarguments;
-- Create and initialize the application context
app_context := Xt.createapplicationcontext;
Xt.AppInitialize (app_context, "Hello", options, 0, argv,
fallback, args, 0, toplevel);
-- Create a simple label widget
label := Xm.CreateLabel (toplevel, "Hello_World", args, 0);
Xt.ManageChild (label);
-- Enter the event loop
Xt.RealizeWidget (toplevel);
Xt.AppMainLoop (app_context);
--
end helloworld;
Other sample programs that demonstrate the usage of the AXI
bindings are available from Harris. Contact your Harris
analyst to obtain a copy of the sample programs. The sample
programs that are available use the AXI bindings to exercise
features in Xlib, Xt and Motif.
7.6 Programming Pitfalls
Many Xt and Motif references discourage the use of system
calls such as fork(), exec(), and system() because error
conditions that may arise (when using these system calls)
are virtually unrecoverable from an X application's
standpoint. If error recovery is not a critical matter from
the X application's view, then the use of such system calls
may be appropriate, and often useful. For non-ARMS
programs, the use of any such system call is clearly up to
the programmer; however, for ARMS applications, use of these
types of system calls is strictly prohibited. Any ARMS
program which attempts to use any routine that uses the
fork() system call will get an error at link time. The ARMS
- 13 -
CX/UX AXI 6.2 Release Notes
"spawn" services may be used as an alternative in ARMS
applications which require the ability to spawn other
processes.
AXI calls were designed to map as closely as possible to the
C language library functions to which they "bind". Ada
typing restrictions sometimes make this task more difficult,
and several AXI-defined Ada types have been defined in order
to make this task a bit easier. Users should always consult
the AXI documentation or refer to the package specifications
in order to choose the most appropriate form of any Xlib,
Xt, or Motif function that they wish to employ. Often
several different Ada interfaces are available (as
overloaded Ada functions and procedures) for a single C
function. If chosen properly, much work can be saved by
avoiding Ada type conversions when programming with the AXI
bindings.
8. Fixes in this Release
This is not the initial release of this product, however,
there are no fixes in this release. AXI version 6.2 is
identical to AXI version 3.0.1, compiled specifically for
use with HAPSE version 6.2.
9. Features in this Release
o Full Ada support of Xlib, Xt, and Motif operations on
Harris NightHawk Series 4000 and Series 5000 systems
running HAPSE. The AXI product includes:
o Support for X11 Release 5.
o Support for Motif version 1.1.
o Access to functions in the X Extensible Library.
o Access to functions in the X Miscellaneous
Utilities Library.
o Ada support for the Motif Resource Manager
(including UIL-based applications).
- 14 -
Release Notes 6.2 CX/UX AXI
o Support for the STARS interface to the X window
system (Xlib only)
o Support for non-blocking Ada tasking using the
Basic Ada Runtime System.
o A conventional naming scheme which parallels the
original C implementation.
o AXI is integrated with the HAPSE environment to take
advantage of the latest real-time Ada optimization and
performance features including:
o The HAPSE Ada compiler's CCG (common code
generator) optimizer which performs state-of-the-
art optimizations of Ada applications. Ada X
applications may be fully optimized for maximum
performance.
o The HAPSE prelinker's selective linking capability
which is capable of removing unused routines that
would normally be linked into Ada applications.
o The flexibility of choosing between the ARMS and
Basic Ada Runtime Systems when linking AXI
applications. Each has its own advantages and
disadvantages for Ada tasking and memory pool
configuration.
o A variety of real-time features and packages
provided with the HAPSE programming environment.
o A complete set of Ada bindings to standard UNIX5
(CX/UX) utilities. (Note: The POSIX 1003.5
product must be obtained separately from HAPSE).
__________
5. UNIX is a registered trademark of UNIX System
Laboratories, Inc.
- 15 -
CX/UX AXI 6.2 Release Notes
10. Known Problems with AXI 6.2
Problems with AXI version 6.2 included in the following list
will be addressed in patches to version 6.2 or will be
corrected in later versions of AXI. Full functionality of
the STARS binding to the Xt toolkit will provided in a
future release.
o The 6.2 version of AXI does not support Motif version
1.2.
o The STARS Xt implementation is not complete. The STARS
bindings should only be used for programming at the
Xlib level.
o Ada applications that use the Motif Resource Manager
may not correctly reference .uid files created by the
uil compiler.
o The HAPSE selective linker will not remove dead code
from C language libraries. Only dead code from Ada
libraries is subject to removal from linked
executables.
11. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
- 16 -
Release Notes 6.2 CX/UX AXI
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 17 -
CONTENTS
1. Introduction............................................ 1
2. Documentation........................................... 3
3. Prerequisites........................................... 3
3.1 Hardware........................................... 3
3.2 Software........................................... 3
4. Cautions................................................ 4
5. Installation............................................ 4
6. Using the AXI Bindings.................................. 5
6.1 Compilation........................................ 6
6.2 Linking............................................ 7
6.3 Executing.......................................... 7
6.4 Debugging.......................................... 7
7. Programming Hints....................................... 8
7.1 Setting and Getting Widget Resources............... 8
7.2 Callbacks.......................................... 10
7.3 Ada Tasking in AXI Applications.................... 11
7.4 Optimizations...................................... 12
7.5 An Example Motif Program........................... 12
7.6 Programming Pitfalls............................... 13
8. Fixes in this Release................................... 14
9. Features in this Release................................ 14
10. Known Problems with AXI 6.2............................. 16
11. Direct Software Support................................. 16
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX AXI
VERSION 6.2
RELEASE NOTES
0890418-6.2
December 1993
_________________________________________________________________
return to index
================================================================================
CX/UX HC C -
VERSION 6.3.1
RELEASE NOTES
Harris Computer Systems Division
1. Introduction
CX/UX hc C 6.3.1 is the Harris ANSI C compiler for Series
4000 and Series 5000 systems. The hc compiler accepts the C
language as defined by Kernighan and Ritchie, nearly all of
the traditional UNIX extensions to this definition, and all
of the features of the ANSI C standard. The hc compiler is
also known as cc.
2. Documentation
The following documentation is included with this release:
_________________________________________________
| Manual Name Pub. Number |
|________________________________|_______________|
| CX/UX Harris C Reference Manual| 0891019-040 |
| CX/UX hc C Release Notes | 0891019-6.3.1|
| C A Reference Manual | 0890378-000 |
|________________________________|_______________|
Additional copies may be ordered by contacting the Harris
Support Center. The toll-free number is 1-800-245-6453.
For calls outside the continental United States the number
is 1-305-971-6248.
__________
- These release notes cover the following products: hc
- 1 -
CX/UX hc C 6.3.1 Release Notes
3. Prerequisites
Prerequisites for CX/UX hc Version 6.3.1 are as follows:
3.1 Hardware
o Any Harris Night Hawk Series 4000 or Series 5000 system
3.2 Software
o CX/UX 6.2
4. Installation
Please refer to the CX/UX System Administration Manual,
Chapter 3, for instructions on software installation.
5. Cautions
o hc can generate code that runs on both the Series 4000
and the Series 5000 Harris Night Hawk computers. The
88110 processor used in the Series 5000 can reorder
loads and stores of different memory locations; use the
-Qsync_volatile compiler option when compiling
applications that will be executed on the Series 5000
and that might depend on the ordering of loads from and
stores to memory. One example of such an application
is a device driver for which a load will change the
state of the device.
o The extent to which the hc compiler accepts the C
language as defined by the ANSI C standard as well as
defined by the first edition of Kernighan and Ritchie
is controlled by command line options. See the
discussion of compilation modes in hc(1) for an
explanation of how hc will treat specific C language
features.
o Certain incorrect C constructs (as defined by Kernighan
and Ritchie), which are accepted by pcc-based
compilers, may not be accepted by hc. Correctly
written programs will compile without problems.
- 2 -
Release Notes 6.3.1 CX/UX hc C
o Users are encouraged to retain the source for their
applications. Major releases may provide new object
file formats, which will require the recompilation of
programs.
6. Changes from Previous Releases
The following changes from past releases of hc should be
noted.
6.1 88110 Code Generation
hc provides enhanced code generation that takes advantage of
features unique to the 88110 microprocessor in Night Hawk
Series 5000 systems. 88110 code generation is selectable
from the hc command line via the -Qtarget command line
switch. The 6.3.1 compiler supports three settings for the
-Qtarget switch:
-Qtarget=M88100, -Qtarget=M88110, and -Qtarget=M88110compat.
Code generated with -Qtarget=M88100 is optimized for the
Series 4000. Code generated with -Qtarget=M88110 takes
advantage of features unique to the 88110 microprocessor in
Series 5000 systems and will not execute on Series 4000
systems. Also, in this mode, a string library specially
optimized for the Series 5000 is linked into the executable.
-Qtarget=M88110compat specifies that code be generated that
is compatible with the Series 4000, but instructions are
scheduled for optimal execution on the Series 5000.
Executables generated in this mode will execute on either
the Series 4000 or the Series 5000.
A preprocessor macro is defined according to the compilation
target. M88100 is the default target for compilation on a
Series 4000. M88110 is the default target for compilation
on a Series 5000.
____________________________________________________________
| Target | Macro | Compile| Schedule| String |
| | | for | for | Library|
|_____________|______________|_________|__________|_________|
| M88100 | M88100 | 88100 | 88100 | 88100 |
| M88110 | M88110 | 88110 | 88110 | 88110 |
|_____________|______________|_________|__________|_________|
- 3 -
CX/UX hc C 6.3.1 Release Notes
| M88110compat| M88110COMPAT| 88100 | 88110 | 88100 |
|_____________|______________|_________|__________|_________|
6.2 Compiler Pass Name Changes
There are now copies of the executables /lib/cxc and
/lib/cxc-reorder for each of the supported architectures.
Their names have been changed to reflect their principal
target architectures. The hc driver selects the correct
compiler and scheduler passes based on the setting of the
-Qtarget command-line option. /lib/cxc-100 is the compiler
pass for M88100 and M88110compat compilations. /lib/cxc-110
is the compiler pass for M88110 compilations. /lib/cxc-
reorder-100 is the instruction scheduler pass for M88100
compilations. /lib/cxc-reorder-110 is the instruction
scheduler for M88110 and M88110compat compilations.
6.3 Preprocessor Changes
In past releases, the hc compiler used an internal
preprocessor rather than invoking a separate preprocessing
pass with cpp(1). The current release of hc always makes
use of a separate preprocessing pass either with cpp(1) or
with the new ANSI C preprocessor. This introduces the
following incompatibilities with preprocessing extensions
supported by the Harris hc compiler bundled with versions of
CX/UX prior to version 6.0:
o The sizeof() operator may no longer be used in
conditional compilation expressions (#if expressions).
This practice was never considered to be portable C.
o The #savetable, #loadtable, #pragma push, #pragma pop,
and #pragma optimization directives are no longer
supported.
o The #array_expand Harris-specific directive is no
longer supported.
o The compiler now treats the arguments to #pragma as a
sequence of C tokens. In the past, these were treated
as a character string and divided into tokens according
to rules that were unique to each #pragma directive.
This change should make the behavior of pragmas more
consistent. For example, all pragmas that accept
numeric arguments will now accept C hex and octal
- 4 -
Release Notes 6.3.1 CX/UX hc C
constants as well as decimal constants.
o #pragma must be used with all Harris-specific
directives when the compiler is run in ANSI C
conforming mode (-Xc option).
Note that the Harris #error directive (controls the
printing of some error messages) has a name conflict
with the ANSI C #error directive (causes the
compilation to terminate while printing the user-
specified diagnostic message); #pragma error should
always be used when the Harris version is desired.
The use of the external preprocessors has fixed the
following problems with the past release of hc.
o Macros are now correctly expanded in #include
directives.
o Certain cases of token-splicing macros that failed with
the internal preprocessor now work in Old mode (-Xo
option). However, they typically do not work in the
ANSI C compilation modes (-Xt, -Xa and -Xc options).
6.4 Listing Option Changes
The format of hc compiler-generated listings (-QP option)
has changed. Page headers have a different layout than in
past releases. The use of the external preprocessors forces
some changes in the presentation of macro (-QPX) and include
(-QPa) file expansions (minor variations will be noticed
depending on the compilation mode). The following #pragma
listing-control directives are no longer supported:
expandinclude, expandmacro, ident, linelength, list, page,
search, title.
6.5 Problems Fixed with This Release
The following errors in previous releases of hc have been
corrected:
o hc Version 6.3.1 can compile larger programs than
previous versions.
o Using the -i option could cause an incorrect source
file name to be inserted into the debugging information
in Old (traditional) mode.
- 5 -
CX/UX hc C 6.3.1 Release Notes
o The -P option would cancel out the -g option. Now the
combination of -P and -g produces a preprocessed file
with line-number information included.
o If a single compilation included too many distinct
include files, the compiler would abort with a core
dump.
7. Future Considerations
As part of Harris' commitment to standards, it can be
expected that in a future release of hc the default
compilation mode will change from Old (traditional) mode to
ANSI C mode. A final decision has not been made as to when
this might occur, but customers should plan for the
conversion of their source for ANSI-C compatibility.
8. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 6 -
Release Notes 6.3.1 CX/UX hc C
- 7 -
CONTENTS
1. Introduction.............................................. 1
2. Documentation............................................. 1
3. Prerequisites............................................. 2
3.1 Hardware............................................. 2
3.2 Software............................................. 2
4. Installation.............................................. 2
5. Cautions.................................................. 2
6. Changes from Previous Releases............................ 3
6.1 88110 Code Generation................................ 3
6.2 Compiler Pass Name Changes........................... 4
6.3 Preprocessor Changes................................. 4
6.4 Listing Option Changes............................... 5
6.5 Problems Fixed with This Release..................... 5
7. Future Considerations..................................... 6
8. Direct Software Support................................... 6
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX HC C
VERSION 6.3.1
RELEASE NOTES
0891019-6.3.1
April 1993
_________________________________________________________________
return to index
================================================================================
CX/UX HC C -
VERSION 7.1
RELEASE NOTES
Harris Computer Systems Division
1. Introduction
CX/UX hc C 7.1 is the Harris ANSI C compiler for Series 4000
and Series 5000 systems. The hc compiler accepts the C
language as defined by Kernighan and Ritchie, nearly all of
the traditional UNIX extensions to this definition, and all
of the features of the ANSI C standard. The hc compiler is
also known as cc.
2. Documentation
The following documentation is included with this release:
_______________________________________________
| Manual Name Pub. Number|
|________________________________|_____________|
| CX/UX Harris C Reference Manual| 0891019-060|
| CX/UX hc C Release Notes | 0891019-7.1|
| C A Reference Manual | 0890378-000|
|________________________________|_____________|
Additional copies may be ordered by contacting the Harris
Support Center. The toll-free number is 1-800-245-6453.
For calls outside the continental United States the number
is 1-305-971-6248.
__________
- These release notes cover the following products: hc
- 1 -
CX/UX hc C 7.1 Release Notes
3. Prerequisites
Prerequisites for CX/UX hc Version 7.1 are as follows:
3.1 Hardware
o Any Harris Series 4000 or Series 5000 system
3.2 Software
o CX/UX 7.1
4. Installation
Please refer to the CX/UX System Administration Manual,
Chapter 3, for instructions on software installation.
5. Cautions
o This release provides a new object-file format, ELF.
Support for COFF is still available. See Section 6.1
for details.
o hc can generate code that runs on both the Series 4000
and the Series 5000 Harris computers. The 88110
processor used in the Series 5000 can reorder loads and
stores of different memory locations; use the
-Qsync_volatile compiler option when compiling
applications that will be executed on the Series 5000
and that might depend on the ordering of loads from and
stores to memory. One example of such an application
is a device driver for which a load will change the
state of the device.
o The extent to which the hc compiler accepts the C
language as defined by the ANSI C standard as well as
defined by the first edition of Kernighan and Ritchie
is controlled by command-line options. See the
discussion of the -X[acto] option in hc(1) for an
explanation of how hc treats specific C-language
features in its different compilation modes.
- 2 -
Release Notes 7.1 CX/UX hc C
o Certain incorrect C constructs (as defined by Kernighan
and Ritchie), which are accepted by pcc-based
compilers, may not be accepted by hc. Correctly
written programs will compile without problems.
o Users are encouraged to retain the source for their
applications. Major releases may provide new object-
file formats, which will require the recompilation of
programs.
6. Changes from Previous Releases
The following changes from past releases of hc should be
noted.
6.1 ELF Object Files and Dwarf Debugging
hc now supports two object-file formats: COFF and ELF.
COFF is the object-file and debugging format traditionally
supported by CX/UX. ELF is the new, SVR4-compatible
object-file format and Dwarf is the debugging format
supported by CX/UX in ELF-format object files. ELF is the
CX/UX 7.1 default object-file format. New _COFF and _ELF
predefined macros exist. _COFF is defined when compiling in
the COFF software development environment (SDE). _ELF is
defined when compiling in the ELF SDE.
While the same compiler is used to generate object in either
of these two formats, other tools such as as and ld, and the
libraries have different formats. The new -Z command-line
option and the SDE_TARGET environment variable may be used
to choose which object-file format to work with. Please
refer to the hc(1) man page for information about SDE_TARGET
and the -Z option. Also, the CX/UX Programmer's Guide and
CX/UX Support Tools Guide contain more information about the
object-file formats and the tools that deal with them.
6.2 -Qfile_buffer_limit Command-Line Option
The -Qfile_buffer_limit command-line option can be used to
increase the size of the file buffers that ld uses when
linking large COFF executables. In situations where ld
could use larger buffers, it prints out a diagnostic to that
effect containing a number. Use that number (or a greater
number) with the -Qfile_buffer_limit option to permit ld to
- 3 -
CX/UX hc C 7.1 Release Notes
use optimally-sized file buffers and decrease link time.
6.3 New Optional Syntax for -O Command Line Options
hc now accepts an alternate syntax for the -O command-line
option, which is also accepted by hf77, the Harris Fortran
compiler. The new syntax is of the form -O,arg1[,arg2...],
where arg1, arg2, etc. are keywords from the following list:
minimal, global, maximal, reorder, noreorder, no_reorder,
post_linker, no_post_linker, standard, unsafe, safe.
minimal is a synonym for -O1. global is a synonym for -O2
or just -O. maximal is a synonym for -O3. The other
keywords serve as modifiers for these basic optimization
levels. reorder turns on the use of code reordering for
optimization; noreorder (and no_reorder) turn it off.
post_linker turns on the use of analyze88's post-linker
optimizations; no_post_linker turns it off. standard (and
safe) is equivalent to -Qopt_class=safe. unsafe is
equivalent to -Qopt_class=unsafe. safe and standard are
equivalent to -Qopt_class=standard.
- 4 -
Release Notes 7.1 CX/UX hc C
6.4 88110 Code Generation
hc provides enhanced code generation that takes advantage of
features unique to the 88110 microprocessor in Series 5000
systems. 88110 code generation is selectable via the
TARGET_ARCH environment variable and from the hc command
line via the -Qtarget command-line switch.
See the table later in this section for details about
targets. Code generated for the M88100 target is optimized
for the Series 4000. Code generated for the M88110 target
takes advantage of features unique to the 88110
microprocessor in Series 5000 systems and will not execute
on Series 4000 systems. Also, in this mode, a string
library specially optimized for the Series 5000 is linked
into the executable. Code generated for the M88110compat
target is compatible with the Series 4000, but instructions
are scheduled for optimal execution on the Series 5000.
Executables generated in this mode execute on either the
Series 4000 or the Series 5000.
A preprocessor macro is defined according to the compilation
target. M88100 is the default target for compilation on a
Series 4000. M88110 is the default target for compilation
on a Series 5000.
____________________________________________________________
| Target | Macro | Compile| Schedule| String |
| | | for | for | Library|
|_____________|______________|_________|__________|_________|
| M88100 | M88100 | 88100 | 88100 | 88100 |
| M88110 | M88110 | 88110 | 88110 | 88110 |
| M88110compat| M88110COMPAT| 88100 | 88110 | 88100 |
|_____________|______________|_________|__________|_________|
6.5 Compiler Pass Name Changes
There are now copies of the executables /lib/cxc and
/lib/cxc-reorder for each of the supported architectures.
Their names have been changed to reflect their principal
target architectures. For information about target-
architecture selection, see the preceding section.
/lib/cxc-100 is the compiler pass for M88100 and
M88110compat compilations. /lib/cxc-110 is the compiler
pass for M88110 compilations. /lib/cxc-reorder-100 is the
instruction-scheduler pass for M88100 compilations.
/lib/cxc-reorder-110 is the instruction-scheduler pass for
- 5 -
CX/UX hc C 7.1 Release Notes
M88110 and M88110compat compilations.
6.6 Preprocessor Changes
In past releases, the hc compiler used an internal
preprocessor rather than invoking a separate preprocessing
pass with cpp(1). The current release of hc always makes
use of a separate preprocessing pass either with cpp(1) or
with the new ANSI C preprocessor. This introduces the
following incompatibilities with preprocessing extensions
supported by the Harris hc compiler bundled with versions of
CX/UX prior to version 6.0:
o The sizeof() operator may no longer be used in
conditional compilation expressions (#if expressions).
This practice was never considered to be portable C.
o The #savetable, #loadtable, #pragma push, #pragma pop,
and #pragma optimization directives are no longer
supported.
o The #array_expand Harris-specific directive is no
longer supported.
o The compiler now treats the arguments to #pragma as a
sequence of C tokens. In the past, these were treated
as a character string and divided into tokens according
to rules that were unique to each #pragma directive.
This change should make the behavior of pragmas more
consistent. For example, all pragmas that accept
numeric arguments now accept C hexadecimal and octal
constants as well as decimal constants.
o #pragma must be used with all Harris-specific
directives when the compiler is run in ANSI C
conforming mode (-Xc option).
Note that the Harris #error directive (that controls
the printing of some error messages) has a name
conflict with the ANSI C #error directive (that causes
the compilation to terminate while printing the user-
specified diagnostic message); #pragma error should
always be used when the Harris version is desired.
The use of the external preprocessors has fixed the
following problems with the past release of hc.
- 6 -
Release Notes 7.1 CX/UX hc C
o Macros are now correctly expanded in #include
directives.
o Certain cases of token-splicing macros that failed with
the internal preprocessor now work in Old mode (-Xo
option). However, they typically do not work in the
ANSI C compilation modes (-Xt, -Xa and -Xc options).
6.7 Listing Option Changes
The format of hc compiler-generated listings (-QP option)
has changed. Page headers have a different layout than in
past releases. The use of the external preprocessors forces
some changes in the presentation of macro (-QPX) and include
(-QPa) file expansions (minor variations are noticed
depending on the compilation mode). The following #pragma
listing-control directives are no longer supported:
expandinclude, expandmacro, ident, linelength, list, page,
search, title.
6.8 Problems Fixed with This Release
The following errors in previous releases of hc have been
corrected:
o hc Version 7.1 can compile larger programs than
previous versions.
o Using the -i option could cause an incorrect source
file name to be inserted into the debugging information
in Old (traditional) mode.
o The -P option would cancel out the -g option. Now the
combination of -P and -g produces a preprocessed file
with line-number information included.
o If a single compilation included too many distinct
include files, the compiler would abort with a core
dump.
- 7 -
CX/UX hc C 7.1 Release Notes
7. Future Considerations
As part of Harris' commitment to standards, it can be
expected that in a future release of hc the default
compilation mode will change from Old (traditional) mode to
ANSI C mode. Users are advised to explicitly set
compilation modes on the hc command line as part of their
build procedures.
8. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 8 -
CONTENTS
1. Introduction.............................................. 1
2. Documentation............................................. 1
3. Prerequisites............................................. 2
3.1 Hardware............................................. 2
3.2 Software............................................. 2
4. Installation.............................................. 2
5. Cautions.................................................. 2
6. Changes from Previous Releases............................ 3
6.1 ELF Object Files and Dwarf Debugging................. 3
6.2 -Qfile_buffer_limit Command-Line Option.............. 3
6.3 New Optional Syntax for -O Command Line Options...... 4
6.4 88110 Code Generation................................ 5
6.5 Compiler Pass Name Changes........................... 5
6.6 Preprocessor Changes................................. 6
6.7 Listing Option Changes............................... 7
6.8 Problems Fixed with This Release..................... 7
7. Future Considerations..................................... 8
8. Direct Software Support................................... 8
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX HC C
VERSION 7.1
RELEASE NOTES
0891019-7.1
October 1993
_________________________________________________________________
return to index
================================================================================
CX/UX HF77 FORTRAN -
VERSION 6.3.2
RELEASE NOTES
Harris Computer Systems Division
1. Introduction
This is Hf77 6.3.2, a full release of CX/UX Hf77 Fortran.
This release introduces support for INTERNAL procedures, the
SELECT CASE decision structure, and the -uns_int1 flag for
unsigned INTEGER*1 variables. These are similar to Encore
(TM) 1 language features and will ease porting existing code
to Series 4000 and 5000 systems. Also new is support for
132-column input lines, using the -col132 flag.
CX/UX Hf77 Fortran is a Harris Fortran product using Harris
CCG technology. Hf77 accepts standard Fortran 77, the MIL-
STD 1753 extensions, all of the Portable Fortran F77
Compiler extensions, and select Harris VOS Fortran, DEC
Vax(TM) 2 VMS and Encore extensions.
The executable names hf77 and f77 both refer to the Hf77
compiler.
This release is available for Series 4000 and 5000 systems
and includes the following software:
CCG-based Fortran 77 compiler /usr/bin/hf77
/usr/bin/f77
/usr/lib/cxf77-100
__________
- These release notes cover the following products: hf77
1. Encore is a trademark of Encore Computer Corporation.
2. VAX is a trademark of Digital Equipment Corporation.
- 1 -
CX/UX Hf77 Fortran 6.3.2 Release Notes
/usr/lib/cxf77-110
/usr/lib/cxf77-reorder-100
/usr/lib/cxf77-reorder-110
/usr/lib/hf77cc
Run-time libraries /usr/lib/libhF77.a
/usr/lib/libhI77.a
/usr/lib/libhU77.a
/usr/lib/libp/libhF77.a
/usr/lib/libp/libhI77.a
/usr/lib/libp/libhU77.a
Support files /lib/nounsint1.o
/lib/unsint1.o
/usr/lib/libf77.x
Other Fortran 77 family processors /usr/bin/fsplit
/usr/bin/ratfor
/usr/bin/xref
Select Fortran 66 and VOS Fortran 77 /usr/bin/f66_hf77
constructs and conversion scripts /usr/bin/fix_octal
/usr/bin/vos_hf77
/usr/lib/vos_hf77.awk
Man pages for the above.
2. Documentation
The following documentation is included with this release:
_____________________________________________________
| Manual Name Pub. Number |
|____________________________________|_______________|
| CX/UX Hf77 FORTRAN Reference Manual| 0890240-040 |
| CX/UX Hf77 FORTRAN Release Notes | 0890240-6.3.2|
|____________________________________|_______________|
Additional copies may be ordered by contacting the Harris
Support Center. The toll-free number is 1-800-245-6453.
For calls outside the continental United States the direct
number is 1-305-971-6248.
- 2 -
Release Notes 6.3.2 CX/UX Hf77 Fortran
3. Prerequisites
Prerequisites for CX/UX Hf77 Fortran Version 6.3.2 are as
follows:
3.1 Hardware
o Any Series 4000 or Series 5000 system
3.2 Software
o CX/UX 6.2
4. Installation
Please refer to the CX/UX System Administration Manual,
Chapter 3, for instructions on software installation.
5. Cautions
Included are problems reported in Software Action Requests
(SARs) open as of August 29, 1994. If an SAR is assigned to
a problem, its number appears in parentheses after the
description.
Users are encouraged to retain the source for their
applications. Major releases may provide new object file
formats which require the recompilation of programs.
o Variable declarations that appear like typed function
headers confuse the compiler (HM10806).
o A fatal error in a declaration invalidates the remaining
declarations on the line.
o Compiler syntax error recovery is not successful when a
previously declared PARAMETER is declared again
(HM10639).
o An intrinsic name that appears in an INTRINSIC statement
may cause a "bad length" error message. The workaround
is to remove the name from the INTRINSIC statement
(HM11321).
- 3 -
CX/UX Hf77 Fortran 6.3.2 Release Notes
o Initializing the same common-block location multiple
times may cause internal errors if the remainder of the
common-block initializations do not occur sequentially
in the storage sequence (HM10543). Initialization of
overlapping sections of a character array causes the
compiler to abort (HM10082).
o When initializing a large character scalar variable
(greater than 1320 characters) with a single character,
an invalid size character constant error occurs.
o Invoking a logical-valued statement function without
arguments may cause the compiler to abort (HM11318).
Statement functions involving more than one complex
character expression and/or character-valued function
call may produce incorrect results.
o Using INTEGER*2 variables in IEOR() with hexadecimal
constants may force the result type to be INTEGER*4
(HM10891).
o Incorrectly referencing a scalar datapool member as an
array does not generate an error message (HM11211).
o Invalid characters within hexadecimal constants do not
cause errors (HM11328).
o The %LOC() intrinsic cannot be used in an I/O list; a
run-time library error is the result (HM10722).
o A countdown loop with a negative real constant step size
is not entered when the bounds indicate it should be
(HM10939).
o The compiler does not always detect an explicit
modification of a DO loop variable within the range of
the loop.
o The compiler does not generate an error for I/O
qualifiers with incorrect character values, e.g.,
specifying ACCESS=APPEND in an OPEN statement when
ACCESS="APPEND" was intended. (HM10662)
o The ERR= and END= clauses do not apply to namelist I/O
(HM11195).
o The I/O ERR= branch is not taken for quota exceeded
error in WRITE statements (HM08749).
- 4 -
Release Notes 6.3.2 CX/UX Hf77 Fortran
o The use of a / format descriptor does not advance the
record pointer on an internal read (GH0258).
o Tab characters in source files are not expanded to tab
stops, but treated as a single space except at the
beginning of the line, where they indicate the end of
the statement label field. This will cause problems if
tabs are expected to affect column positioning elsewhere
in source files (HM10367). Tabs in the statement label
field are treated differently with the -VAX option; see
the CX/UX Hf77 Fortran Reference Manual for details.
o The compiler does not generate an error for statement
label 0 (HM10622).
o Error message line numbers are not always accurate when
source files INCLUDE other source files.
o The Fortran library depends heavily on the AT&T versions
of the C libraries, so mixing Fortran and C in the UCB
universe will cause problems (HM10327).
o Array subscript bounds checking (-C) may cause the
compiler to abort if array elements are used in a
character substring expression (HM11216). Bounds
checking also does not check values of individual
subscripts, but rather overruns of the entire array
storage (HM10444). The compiler may abort with bounds
checking (HM10482).
o Entry points do not have debug entries (HM10494). Line
number debug entries may occasionally be incorrect
(HM10553).
o Code generated with the -g debug option is slightly
slower than code without it. Value consistency is
maintained between a temporary copy of a variable in a
CPU register and that variable's location in memory.
o gdb can access datapool variables only through their
constructed name (HM10864).
o A datapool definition object file name appearing within
the INCLUDE statement of a shmdefine(1) input file may
not contain a hyphen "-". This is a bug in ld(1).
- 5 -
CX/UX Hf77 Fortran 6.3.2 Release Notes
6. New Features in this Release
6.1 INTERNAL Procedures
Hf77 supports Encore-style INTERNAL procedures. The sole
caveat: it is not currently possible to override an
intrinsic name with an internal procedure definition.
6.2 SELECT CASE Decision Structure
Hf77 provides the Encore-style SELECT CASE decision
structure.
6.3 Unsigned INTEGER*1
Use the -uns_int1 option for unsigned INTEGER*1 variables.
INTEGER*1 variables are unsigned on Encore machines.
6.4 132-column Input Lines
Use the -col132 option to compile source files with 132-
column input lines. The -col72 option reinforces the
default standard Fortran 77 fixed-format line.
6.5 Faster Compile-Time Initialization Processing
Compilation of large numbers of compile-time
initializations, prevalent in BLOCK DATA subprograms, is
twenty times faster.
6.6 Other Features
An SAR number in parentheses follows the description of an
extension if the extension was prompted by an SAR.
o Array names are now allowed within multiple assignment
statements. The assignment to the array is as in array
assignment, and the assignment from the array is the
scalar value assigned to the array.
o Less compilation time is required for large subprograms
(HM10818).
o Generated code is slightly faster.
- 6 -
Release Notes 6.3.2 CX/UX Hf77 Fortran
7. Changes from Previous Releases
7.1 No Unnecessary Alignment for Equivalence Classes
Equivalence classes are aligned to the requirements of their
most restrictive member variable. Previously, all
equivalence classes were aligned to eight-byte boundaries,
except those within COMMON and POINTER blocks (HM11252).
7.2 Other Changes
Most of the changes provided in this release are a result of
SARs received. The number in parentheses following each
change is the assigned SAR number that prompted the
modification.
o The compiler generates a more useful diagnostic when a
dummy argument name appears in a PARAMETER statement
(HM11307).
o A name appearing in the CEXTERNAL statement passed as an
actual argument now has the correct external name.
o Statement functions containing multiple arithmetic
expressions and function calls with side effects now
work correctly.
o Namelist member variables are now considered modified by
a namelist read. This had caused incorrect optimization
of namelist member variables (HM11174).
o Using a logical function as the single term of an IF
logical expression now works with the -V option.
o The %LOC() compile-time intrinsic may be applied to
subprogram names.
o A few library aborts when performing internal I/O are
corrected.
o Sending large amounts of compiler output across a pipe
attached to a socket no longer causes spurious compiler
aborts.
A complete list of all SARs closed for this release is, as
follows:
- 7 -
CX/UX Hf77 Fortran 6.3.2 Release Notes
HM10818, HM11174, HM11252, HM11307.
8. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 8 -
CONTENTS
1. Introduction.............................................. 1
2. Documentation............................................. 2
3. Prerequisites............................................. 3
3.1 Hardware............................................. 3
3.2 Software............................................. 3
4. Installation.............................................. 3
5. Cautions.................................................. 3
6. New Features in this Release.............................. 6
6.1 INTERNAL Procedures.................................. 6
6.2 SELECT CASE Decision Structure....................... 6
6.3 Unsigned INTEGER*1................................... 6
6.4 132-column Input Lines............................... 6
6.5 Faster Compile-Time Initialization Processing........ 6
6.6 Other Features....................................... 6
7. Changes from Previous Releases............................ 7
7.1 No Unnecessary Alignment for Equivalence Classes..... 7
7.2 Other Changes........................................ 7
8. Direct Software Support................................... 8
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX HF77 FORTRAN
VERSION 6.3.2
RELEASE NOTES
0890240-6.3.2
August 1994
_________________________________________________________________
return to index
================================================================================
CX/UX HF77 FORTRAN -
VERSION 7.2
RELEASE NOTES
Harris Computer Systems Division
1. Introduction
This is Hf77 7.2, a full release of CX/UX Hf77 Fortran.
This release introduces support for INTERNAL procedures, the
SELECT CASE decision structure, and the -uns_int1 flag for
unsigned INTEGER*1 variables. These are similar to Encore
(TM) 1 language features and will ease porting existing code
to Series 4000 and 5000 systems. Also new is support for
132-column input lines, using the -col132 flag.
Additionally, full support for POSIX P1003.9 Fortran 77
Language Bindings is provided via the -lposix9 library.
These bindings provide Fortran-language access to the system
services described in POSIX P1003.1, and include flexible
Fortran-language signal handling, file system manipulation,
process management and other operations. The new POSIX
material is in development and the documentation for it is
incomplete.
CX/UX Hf77 Fortran is a Harris Fortran product using Harris
CCG technology. Hf77 accepts standard Fortran 77, the MIL-
STD 1753 extensions, all of the Portable Fortran F77
Compiler extensions, and select Harris VOS Fortran, DEC
VAX(TM) 2 VMS and Encore extensions.
The executable names hf77 and f77 both refer to the Hf77
compiler.
__________
- These release notes cover the following products: hf77
1. Encore is a trademark of Encore Computer Corporation.
2. VAX is a trademark of Digital Equipment Corporation.
- 1 -
CX/UX Hf77 Fortran 7.2 Release Notes
This release is available for Series 4000 and 5000 systems
and includes the following software. SDE are directories
appropriate to individual Software Development Environments
and are /usr/sde/{coff,elf,ocs}.
CCG-based Fortran 77 compiler /usr/bin/hf77
/usr/bin/f77
/usr/lib/cxf77-100
/usr/lib/cxf77-110
/usr/lib/cxf77-reorder-100
/usr/lib/cxf77-reorder-110
/usr/lib/hf77cc
Run-time libraries SDE/usr/lib/libhF77.a
SDE/usr/lib/libhI77.a
SDE/usr/lib/libhU77.a
SDE/usr/lib/libposix9.a
SDE/usr/lib/libp/libhF77.a
SDE/usr/lib/libp/libhI77.a
SDE/usr/lib/libp/libhU77.a
SDE/usr/lib/libp/libposix9.a
/usr/sde/elf/usr/lib/libhF77.so
/usr/sde/elf/usr/lib/libhF77.so.1
/usr/sde/elf/usr/lib/libhI77.so
/usr/sde/elf/usr/lib/libhU77.so
/usr/sde/elf/usr/lib/libposix9.so
Support files SDE/usr/lib/vax.o
SDE/usr/lib/nounsint1.o
SDE/usr/lib/unsint1.o
/usr/lib/libf77.x
Other Fortran 77 family processors /usr/bin/fsplit
/usr/bin/ratfor
/usr/bin/xref
Select Fortran 66 and VOS Fortran 77 /usr/bin/f66_hf77
constructs and conversion scripts /usr/bin/fix_octal
/usr/bin/vos_hf77
/usr/lib/vos_hf77.awk
Man pages for the above.
- 2 -
Release Notes 7.2 CX/UX Hf77 Fortran
2. Documentation
The following documentation is included with this release:
___________________________________________________
| Manual Name Pub. Number|
|____________________________________|_____________|
| CX/UX Hf77 FORTRAN Reference Manual| 0890240-050|
| CX/UX Hf77 FORTRAN Release Notes | 0890240-7.2|
|____________________________________|_____________|
Additional copies may be ordered by contacting the Harris
Support Center. The toll-free number is 1-800-245-6453.
For calls outside the continental United States the direct
number is 1-305-971-6248.
3. Prerequisites
Prerequisites for CX/UX Hf77 Fortran Version 7.2 are as
follows:
3.1 Hardware
o Any Series 4000 or Series 5000 system.
3.2 Software
o CX/UX 7.1.
4. Installation
Please refer to the CX/UX System Administration Manual,
Chapter 3, for instructions on software installation.
5. Cautions
Included are problems reported in Software Action Requests
(SARs) open as of August 29, 1994. If an SAR is assigned to
a problem, its number appears in parentheses after the
description.
- 3 -
CX/UX Hf77 Fortran 7.2 Release Notes
Users are encouraged to retain the source for their
applications. Major releases may provide new object file
formats which require the recompilation of programs.
o CX/UX Release 7 provides the new ELF object-file format.
Support for COFF is still available. See the "New
Features" section for details.
o When using the INCLUDE statement in the ELF Software
Development Environment to include executable code, a
compiler abort may occur.
o Variable declarations that appear like typed function
headers confuse the compiler (HM10806).
o A fatal error in a declaration invalidates the remaining
declarations on the line.
o Compiler syntax error recovery is not successful when a
previously declared PARAMETER is declared again
(HM10639).
o Initializing the same common-block location multiple
times may cause internal errors if the remainder of the
common-block initializations do not occur sequentially
in the storage sequence (HM10543).
o Initialization of overlapping sections of a character
array causes the compiler to abort (HM10082).
o When initializing a large character scalar variable
(greater than 1320 characters) with a single character,
an invalid size character constant error occurs.
o Invoking a logical-valued statement function without
arguments may cause the compiler to abort (HM11318).
Statement functions involving more than one character
expression and/or character-valued function call may
produce incorrect results.
o Incorrectly referencing a scalar datapool member as an
array does not generate an error message (HM11211).
o Invalid characters within hexadecimal constants do not
cause errors (HM11328).
o Using INTEGER*2 variables in IEOR() with hexadecimal
constants may force the result type to be INTEGER*4
(HM10891).
- 4 -
Release Notes 7.2 CX/UX Hf77 Fortran
o The %LOC() intrinsic cannot be used in an I/O list; a
run-time library error is the result (HM10722).
o A countdown loop with a negative real constant step size
is not entered when the bounds indicate it should be
(HM10939).
o The compiler does not always detect an explicit
modification of a DO loop variable within the range of
the loop.
o The compiler does not generate an error for I/O
qualifiers with incorrect character values, e.g.,
specifying ACCESS=APPEND in an OPEN statement when
ACCESS="APPEND" was intended. (HM10662)
o The ERR= and END= clauses do not apply to namelist I/O
(HM11195).
o The I/O ERR= branch is not taken for quota exceeded
error in WRITE statements (HM08749).
o The use of a / format descriptor does not advance the
record pointer on an internal read (GH0258).
o Tab characters in source files are not expanded to tab
stops, but treated as a single space except at the
beginning of the line, where they indicate the end of
the statement label field. This will cause problems if
tabs are expected to affect column positioning elsewhere
in source files (HM10367). Tabs in the statement label
field are treated differently with the -VAX option; see
the CX/UX Hf77 Fortran Reference Manual for details.
o The compiler does not generate an error for statement
label 0 (HM10622).
o The Fortran library depends heavily on the AT&T versions
of the C libraries, so mixing Fortran and C in the UCB
universe will cause problems (HM10327).
o Array subscript bounds checking (-C) may cause the
compiler to abort if array elements are used in a
character substring expression (HM11216). Bounds
checking also does not check values of individual
subscripts, but rather overruns of the entire array
storage (HM10444). The compiler may abort with bounds
checking (HM10482).
- 5 -
CX/UX Hf77 Fortran 7.2 Release Notes
o In the COFF SDE entry points do not have debug entries
(HM10494).
o Line number debug information may occasionally be
incorrect (HM10553).
o Error message line numbers are not always accurate when
source files INCLUDE other source files.
o Code generated with the -g debug option is slightly
slower than code without it. Value consistency is
maintained between a temporary copy of a variable in a
CPU register and that variable's location in memory.
o gdb can access datapool variables only through their
constructed name (HM10864).
o Within a shmdefine(1) input file in the COFF SDE, a
datapool definition object file name appearing within
the INCLUDE statement may not contain a hyphen "-".
This is a bug in ld(1).
6. New Features in this Release
Some of the features below were also announced with the
release of Hf77 7.1.
6.1 ELF Object-file Format
Hf77 now supports two object-file formats: ELF and COFF.
ELF is the new, SVR4-compatible, object-file format, and
Dwarf is the debugging format supported by CX/UX in ELF-
format object files. ELF is the CX/UX Release 7 default
object-file format. COFF is the object-file and debugging
format traditionally supported by CX/UX.
While the same compiler is used to generate object in either
of these two formats, other tools such as as(1) and ld(1),
and the libraries have different formats. The new -Z
command-line option and the SDE_TARGET environment variable
may be used to choose which object-file format to work with.
Please refer to the hf77(1) man page for information about
SDE_TARGET and the -Z option. Also, the CX/UX Programmer's
Guide and CX/UX Support Tools Guide contain more information
about the object-file formats and the tools that deal with
them.
- 6 -
Release Notes 7.2 CX/UX Hf77 Fortran
The ELF object-file format supports shared objects, allowing
multiple processes to share the same executing text, thus
saving real memory. Shared-object versions of the Fortran
libraries are supplied along with the ELF static and
traditional COFF versions. Shared-object versions of the
libraries are used by default in the ELF software
development environment (SDE). The -Z option and the
STATIC_LINK environment variable are used to specify the
library version the executable is linked with.
Because of the additional object-file format, many of the
support files used by hf77 are now SDE-specific. See the
"FILES" section of the hf77(1) man page for details.
6.2 POSIX 1003.9 Fortran
Hf77 fully supports POSIX P1003.9 Fortran 77 Language
Bindings, a set of Fortran-accessible routines that provide
P1003.1-mandated system services. See the posix9(3F) online
man page for a starter. Note: the online documentation is
incomplete and will be updated as available. Refer to the
online man pages, and the IEEE P1003.9 document (available
from IEEE) for more complete information.
6.3 INTERNAL Procedures
Hf77 supports Encore-style INTERNAL procedures. The sole
caveat: it is not currently possible to override an
intrinsic name with an internal procedure definition.
6.4 SELECT CASE Decision Structure
Hf77 provides the Encore-style SELECT CASE decision
structure.
6.5 Unsigned INTEGER*1
Use the -uns_int1 option for unsigned INTEGER*1 variables.
INTEGER*1 variables are unsigned on Encore machines.
6.6 132-Column Input Lines
Use the -col132 option to compile source files with 132-
column input lines. The -col72 option reinforces the
default standard Fortran 77 fixed-format line.
- 7 -
CX/UX Hf77 Fortran 7.2 Release Notes
6.7 Faster Compile-Time Initialization Processing
Compilation of large numbers of compile-time
initializations, prevalent in BLOCK DATA subprograms, is
twenty times faster.
6.8 Other Features
o Array names are now allowed within multiple assignment
statements. The assignment to the array is as in array
assignment, and the assignment from the array is the
scalar value assigned to the array.
o The -o object-name option is accepted for renaming the
resulting object file. This usage is recognized when
the -c option is specified, there is one source file,
and the -o option appears before the source file name on
the command line.
o The -h shared-object-name option is accepted while
building a shared object. shared-object-name is the
name recorded for the shared object.
o The -O option now accepts keywords to control
optimization level, safety, and optimizations performed
by the instruction reorder tool and post-link optimizer.
See the hf77(1) man page for details.
o The -Qskew_large_arrays option is accepted for
encouraging efficient cache usage. See the hf77(1) man
page for details.
o The TARGET_ARCH environment variable is accepted as an
alternative to -Qtarget=. See the hf77(1) man page for
details.
o Other new -Q options include -Qinvert_divides, -Qnotic,
-Qschedule_tn_window=N, -Qtic, and
-Qtime_conflict_stages=N.
o Less compilation time is required for large subprograms.
o Generated code is slightly faster.
- 8 -
Release Notes 7.2 CX/UX Hf77 Fortran
7. Changes from Previous Releases
7.1 No Unnecessary Alignment for Equivalence Classes
Equivalence classes are aligned to the requirements of their
most restrictive member variable. Previously, all
equivalence classes were aligned to eight-byte boundaries
except those within COMMON and POINTER blocks (HM11252).
7.2 Other Changes
Many of the changes provided in this release are a result of
SARs received. The number in parentheses following each
change is the assigned SAR number that prompted the
modification.
o When specifying an ld(1) mapfile, such as the .ld output
file created by shmdefine(1), on the command line in the
ELF SDE, the -M mapfile option must be used. In the
COFF SDE the -M option must not be used, and mapfile
should be specified directly on the command line
(HM11285).
o Linking with Fortran shared objects does not require a
Fortran PROGRAM (HM11301).
o The INCLUDE statement almost works in the ELF
environment. See "Cautions" above (HM11303).
o An intrinsic name whose data type is double-word size or
larger that appears in an INTRINSIC statement no longer
causes an error message (HM11321).
o The compiler generates an error when an adjustable
dimension is not INTEGER type (HM11156).
o The compiler generates a more useful diagnostic when a
dummy argument name appears in a PARAMETER statement
(HM11307).
o A name appearing in the CEXTERNAL statement passed as an
actual argument now has the correct external name.
o Statement functions containing multiple arithmetic
expressions and function calls with side effects now
work correctly.
o Namelist member variables are now considered modified by
a namelist read. This had caused incorrect optimization
- 9 -
CX/UX Hf77 Fortran 7.2 Release Notes
of namelist member variables (HM11174).
o Using a logical function as the single term of an IF
logical expression now works with the -V option.
o The .EQV. operator works correctly (HM11317).
o The .SHIFT. and .ROTAT. operators work correctly for
INTEGER*1 and all LOGICAL operands (HM11298).
o The %LOC() compile-time intrinsic may be applied to
subprogram names.
o A few library aborts when performing internal I/O are
corrected.
o Sending large amounts of compiler output across a pipe
attached to a socket no longer causes spurious compiler
aborts.
A complete list of all SARs closed for this release is, as
follows:
HM11156, HM11174, HM11252, HM11285, HM11298, HM11301,
HM11303, HM11307, HM11317, HM11321.
8. Direct Software Support
Software support is available from a central source. When
you need assistance or information about your system, please
contact the Harris Software Support Center at our toll free
number (800-245-6453). Our customers outside the
continental United States can contact us directly at 305-
971-6248. The Software Support Center operates Monday
through Friday from 8 a.m. to 7 p.m., Eastern Standard time.
Calling the Software Support Center gives you immediate
access to a broad range of skilled personnel and guarantees
you a prompt response from the person most qualified to
assist you. If you have a question requiring on-site
assistance or consultation, the Software Support Center
staff will arrange for a field analyst to return your call
and schedule a visit.
Harris provides a Software Action Request (SAR) form which
our customers can fill out and submit to their local field
- 10 -
Release Notes 7.2 CX/UX Hf77 Fortran
analyst or the Software Support Center. This procedure
ensures that your request is entered into our SAR database
for follow-up and action.
To obtain copies of SAR forms, call the Software Support
Center and request form number CSD1833B.
- 11 -
CONTENTS
1. Introduction............................................. 1
2. Documentation............................................ 3
3. Prerequisites............................................ 3
3.1 Hardware............................................ 3
3.2 Software............................................ 3
4. Installation............................................. 3
5. Cautions................................................. 3
6. New Features in this Release............................. 6
6.1 ELF Object-file Format.............................. 6
6.2 POSIX 1003.9 Fortran................................ 7
6.3 INTERNAL Procedures................................. 7
6.4 SELECT CASE Decision Structure...................... 7
6.5 Unsigned INTEGER*1.................................. 7
6.6 132-Column Input Lines.............................. 7
6.7 Faster Compile-Time Initialization Processing....... 8
6.8 Other Features...................................... 8
7. Changes from Previous Releases........................... 9
7.1 No Unnecessary Alignment for Equivalence
Classes............................................. 9
7.2 Other Changes....................................... 9
8. Direct Software Support.................................. 10
- i -
_________________________________________________________________
HARRIS
COMPUTER SYSTEMS
_________________________________________________________________
CX/UX HF77 FORTRAN
VERSION 7.2
RELEASE NOTES
0890240-7.2
January 1995
_________________________________________________________________
return to index
================================================================================