From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: ADA CORE TECHNOLOGIES ANNOUNCES THE RELEASE OF GNAT VERSION 3.10p
Date: 1997/09/14
Date: 1997-09-14T00:00:00+00:00 [thread overview]
Message-ID: <dewar.874293503@merv> (raw)
Ada Core Technologies has released the following versions of release
3.10p of the GNAT Ada 95 compiler. These versions should be available
shortly on the various mirror sites that provide latest GNAT versions
DEC Unix
HPPA HPUX
x86 Linux
MIPS IRIX
POWER PC AIX
SPARC SOLARIS
SPARC SUNOS
x86 NT/Win95
x86 OS/2
Power PC (Mac) Machten
Corresponding source and documentation releases have also been made.
The following is a brief summary of the new features in 3.10p (in comparison
with the previous 3.09 public release). Ada Core Technologies will continue
to develop the GNAT technology, and make public releases from time to time
reflecting the state of this important developing technology.
For details on commercial support for these and other versions of GNAT, send
mail to sales@gnat.com.
Latest features in GNAT version 3.10
====================================
Generic units are now compiled. This allows proper handling of some
complex order of elaboration issues. If you are using gnatmake, then
generics will be compiled automatically. If you are not using
gnatmake (e.g. you are using a makefile with make), you may need to
adjust your build procedures to accomodate this new requirement
A new tool, gnatls, provides capabilities for listing the units in a
given compilation environment, together with their status.
A new set of GNAT library units provides full SPITBOL compatible pattern
matching capabilities, as well as associative tables and some other
useful SPITBOL-inspired features. See files g-spitbo.ads, g-spipat.ads,
g-sptabo.ads, g-sptain.ads, g-stunst.ads.
A new GNAT unit g-debuti.ads provides some standard debugging utilities
and capabilities.
A new Ada child, see a-suteio.ads, provides Text_IO capabilities for
the Ada.Strings.Unbounded.Unbounded_String type.
A function File_Exists has been added to GNAT.IO_Aux to test if a
file exists (without having to open it).
Deferred constants may now be completed using pragma Import so that
the value of the constant is supplied by an external unit in some
language other than Ada.
A number of missing semantic checks have been added. Most notably, GNAT
now correctly requires conversions from the anonymous type corresponding
to an access parameter to a named access type and properly disallows use
of null literals for anonymous access types.
A new set of warning messages now allows full diagnosis of possible access
before elaboration problems at compile time. By systematically eliminating
the warning messages, it is feasible to ensure that a large application
cannot possibly run into an access before elaboration, and to ensure this
in a portable manner.
The binder now generates a far more friendly elaboration order. In the
default mode, it guarantees a successful elaboration order, and gives
an error message if this guarantee is not possible.
A new attribute, applicable to library units, x'elaborated, returns a
Boolean value indicating whether X has been elaborated. It is always
true for preelaborated, pure and predefined units, and also for units
for which Elaborate_Body is specified. Otherwise it determines if the
body of the specified unit has been elaborated yet. This is primarily
intended for use by the compiler itself in checking for access before
elaboration, but it can be used by user programs.
The error messages for the case of an operator with incorrectly typed
operands have been enhanced to give more information about the errors.
Two tools, gnatpsta and gnatpsys, can be used to generate source language
representations of packages Standard and System, including all relevant
constants in numeric form. These are generated by actually looking at
what the values are (so they are guaranteed to give correct results).
A new convention Stubbed is available. A stubbed subprogram will cause
Program_Error to be raised on any call. Furthermore, if you use convention
Stubbed in a pragma Import, then no body need be supplied for the
subprogram.
Entry families constrained by task discriminants are now implemented (this
combination of features had been overlooked, and was not yet tested by the
ACVC suite).
A new function GNAT.OS_Lib.Is_Writable_File determines if a given file
exists and is writable.
Pragma Discard_Names is now respected for enumeration types, so that the
image tables are actually discarded if the pragma applies.
A new feature in gnatmake causes any write protected ali files to be
treated like system files, i.e. when using -f, they will not be recompiled
unless the -a switch is also used. This allows user libraries to have the
same status as the Ada runtime library.
A new switch (-i for in place) for gnatmake requests that gnatmake put
ali files and object files back in the same place they were found, so
that gnatmake can be used to automatically update a multi-directory
program structure.
Ada.Task_Identification.Image now returns a meaningful image for a task
based on the variable name used to create the task. This name is also
available while debugging (via the call interface). The generation of
these names can be suppressed by using pragma Discard_Names with no
argument.
The gnatchop utility now detects and rejects attempts to generate more
than one copy of a file with the same name unless -w is specified. This
is particularly useful when using file name krunching, because it means
that cases of multiple units crunching to the same name are detected.
In the Solaris version, foreign threads (those created outside Ada) are
now recognized automatically and converted to Ada tasks for proper
treatment by the Ada runtime as Ada tasks.
The switch -gnatN now properly enables possible inlining for all
subprograms, as though pragma Inline had been specified for every
possible subprogram. This may improve code quality, but note that
very large amounts of memory may be needed to compile with this switch.
The Ada aware features of GDB have been substantially enhanced. GDB now
understands more Ada data structures. A new command break exception allows
convenient breakpoints on specified or all exceptions. On many targets,
tasking handling is greatly improved. A new command info tasks lists the
status of all tasks in the system. For details see the new GDB manual,
included in the release, that contains an enhanced section on debugging
of Ada code.
Two choices of threads libraries are now offered on Solaris and Linux.
On Solaris there is a choice of using native Solaris threads or FSU
threads with the default being native threads.
On Linux there is a choice of using FSU threads or native Linuxthreads
with the default being FSU threads.
On AIX there is a timeslicing option for tasking using the pragma
Time_Slice. This is using FSU threads.
The GNAT runtime library now consists of a single archive file, libgnat.a,
rather than a collection of individual object modules as was the case
in previous versions of GNAT.
The adainclude directory is now located at the same level as the adalib
directory, and the GNU include directory. The adainclude directory was
formerly at the same level as the bin directory.
next reply other threads:[~1997-09-14 0:00 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-09-14 0:00 Robert Dewar [this message]
1997-09-15 0:00 ` ADA CORE TECHNOLOGIES ANNOUNCES THE RELEASE OF GNAT VERSION 3.10p Robert S. White
1997-09-16 0:00 ` Robert Dewar
1997-09-15 0:00 ` Stephen Leake
1997-09-16 0:00 ` Robert Dewar
1997-09-16 0:00 ` Chris Morgan
1997-09-17 0:00 ` Robert Dewar
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox