comp.lang.ada
 help / color / mirror / Atom feed
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.





             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