Newsgroups: comp.os.linux.announce
From: re@buis.enpc.fr (Rolf EBERT)
Subject: new Gnu Ada compiler available (GNAT-1.75)
Message-ID: <1994Mar4.180454.15933@cs.cornell.edu>
Date: Fri, 4 Mar 1994 18:04:54 GMT
Approved: linux-announce@tc.cornell.edu (Matt Welsh)

Finally I got it. Now I know about the priviliges of full net access
(and I appreciate to have them, even for a limited time).

Here comes a new version of the Gnu Ada compiler for Linux 
as of February 28th (1.75). I have uploaded gnat-1.75-l1.tar.gz into the
incoming directories of SunSite, tsx-11, and Nic. From SunSite you can
get it right now. Expect some days until the maintainers move it to the
following directories:

sunsite.unc.edu:/pub/Linux/development/ada/gnat-1.75.l1.tar.gz
nic.funet.fi:/pub/OS/Linux/util/languages/gnat-1.75.l1.tar.gz
tsx-11.mit.edu:/pub/linux/packages/Ada/gnat-1.75.l1.tar.gz

They replace the previous version gnat-1.67.l2.tar.gz

Some of the features supported since the last announced version (1.67) are:
Features added since GNAT version 1.74

Mostly bug fixes for this version.

gnatbl under OS/2 should be much more usable. It now writes a linker response
file which it then executes to avoid the long command line limitation of
the previous version.

Ada 83 features:
===============
default <> for generic formal subprograms

Ada 9X features:
===============
preliminary version of the ada-numerics-generic_elementary_functions and
ada-numerics-elementary_functions packages.
(Thanks for Jon Squire for his valuable contributions on the implementation of
the numerics annex for GNAT)

=======================================================================
Features added since GNAT version 1.67

Library search paths (see gnat-intro for more details)

Ada 83 features:
================
Initialization of private types.
Static evaluation of floating point types.
Static evaluation of modular types.
Number declarations for universal real values.
New attributes supported:
  Digits
  Epsilon
  Machine_Emax
  Machine_Emin
  Machine_Mantissa
  Machine_Overflows
  Machine_Radix
  Machine_Rounds
  Mantissa
  Safe_Emax
  Safe_Large
  Safe_Small

Text_IO section 14.3.8 (Float_IO) now supported for both Get and Put.
  (support only for Float not Long_Float) and no bounds checking on result.
Text_IO section 14.3.9 (Enumeration_IO) now supported
  (with the exception of character literals)

Ada 9X features:
================
Wide_Character and Wide_String types (using a temporary form of ESC sequence
 that may be changed later)
Latin-1 characters in identifiers now work (including proper handling
 by the assembler)
Under control of the -gnatiw flag, wide characters are now supported in
 identifiers
Tagged Extensions with new discriminants.

New attributes supported:
  Denorm
  Emax
  Large
  Model_Emax
  Model_Emin
  Model_Mantissa
  Model_Epsilon
  Model_Small
  Safe_First
  Safe_Last
  Signed_Zeroes
  Unchecked_Access

Generic formal packages.
Generic formal derived types.
... and lots of bug fixes !

Note that a search path exists now. Read gnat-intro in the doc directory.

The GNAT project will implement the full Ada9X language which has full
support of Object Oriented Programming (using a slightly different
approach than C++, see the paper intro-9x.txt), has already working
Generics (aka templates), exception handling, and a full tasking support
within the language itself (the runtime support is not yet ready)


I have tested the compiler on the examples and of course on
itself. The executable that you find in this distribution has compiled
itself. There is a bug in the Linux assembler 'as'. You need a patched
version, if you want to bootstrap gnat1 yourself. Drop me a note
(a2c0102@sunmail.lrz-muenchen.de or ebert@enpc.fr), and I will mail it
to you.



This distribution contains the following files:

./usr/lib/gcc-lib/i486-linux/2.5.8/gnat1
./usr/bin/gnatbind
./usr/bin/gnatbl

They have been compiled with gcc-2.5.8 (C) and gnat-1.75 (Ada). They are
dynamically linked with libc-4.5.19.

You find some documentation about using GNAT and Ada9x in
./usr/src/gnat/doc

Since version 2.5.0, Ada support already is included in the main
distribution of GCC. So we don't need a special driver program anymore
(/usr/bin/gcc). This means that you must have installed a version of GCC
2.5.X. 

If you use gcc 2.4.5, you need a patched driver program /usr/bin/gcc. It
can be found in the same directory where get the Linux GNAT distribution.
Simply copy the gnat1 executable into the needed gcc directory:

% mv /usr/lib/gcc-lib/i486-linux/2.5.7/gnat1 /usr/lib/gcc-lib/i486-linux/2.4.5/gnat1
% cd /
% zcat gcc-drv-2.4.5.tar.gz | tar xf - 


Perhaps it is a good idea to get the latest Ada9X reference manual from:

ajpo.sei.cmu.edu:/public/ada9x/rm9x/v4.0

It might look a bit thick, but there are a lot of instructive examples
and you better understand the list of supported and unsupported features
of the current release.


examples are in 

./usr/src/gnat/examples
./usr/src/gnat/examples

I have not yet build a dyn. library since I don't really know how to do
it and the Runtime Library changes quite rapidly.

Please read and gnat-intro (a kind of user guide for GNU-Ada)


BUGS

There are quite a few, mostly known. It is not yet a complete system.
If you have problems using gnat please tell me (ebert@enpc.fr)
first. I will check on a Sparc Station if it is a Linux port problem
or a bug in GNAT.

If you have general questions concerning Ada, please read comp.lang.ada
and the useful FAQ. A lot of Ada information can be found at
wuarchive.wustl.edu:/languages/ada


Have fune with Ada

	Rolf Ebert
	(a2c0102@sunmail.lrz-muenchen.de or ebert@enpc.fr)

