comp.lang.ada
 help / color / mirror / Atom feed
From: Robert Dewar <robert_dewar@my-deja.com>
Subject: Re: [A bit OT] Problems with GNAT 3.11p
Date: 1999/09/26
Date: 1999-09-26T00:00:00+00:00	[thread overview]
Message-ID: <7sk2ko$sbm$1@nnrp1.deja.com> (raw)
In-Reply-To: 37ECE188.7AF1E2B@yukyonline.co.yuky

In article <37ECE188.7AF1E2B@yukyonline.co.yuky>,
  the middleman <charles.dand@yukyonline.co.yuky> wrote:
> I agree with you. I am guilty of not reading the
> documentation!

well we all do that sometimes, and the fact is that many
kinds of program really don't need documentation. For instance
I have used powerpoint for ages and know it quite well, but
never read any documentation.

> And i'd
> say that NG's are getting to a sad state where people just ask
questions
> without looking into it much themselves.

Well of course in this situation you really needed to ask the
newsgroup anyway, and got the valuable information about the
RPM's that you needed, so that's not so terrible :-) :-)

> Normally I would do a bit more
> work myself but on this occason I think I have an good excuse
> (excueses.....excuses!!). I had been up all night messing
around with 3D
> on my Voodoo Banshee (and I'm sure those of you who have tried
to get
> one of those to work with linux will agree, it can get very
> frustrating).

Sometimes I must say I find it hard to believe that anyone can
get anything working, we have all been there!

> Once I had succeded with that I moved on to installing
> GNAT. when I got these problems I couldn't be bothered reading
> anything
> so I just posted a question.

Pick up the RPM, and things should be smooth. Note that we have
given the GNAT/Linux team advance access to the 3.12 version,
so they should have the RPM's available for 3.12p almost
simultaneously with the 3.12p release. That's the idea.

> Just to say that I am guilty thats all.

Well I apologize if I was too fierce reacting -- it's always
frustrating on the other end when you work hard on the
documentation and it does not get read :-)

P.S. If you are using GNAT, take the time to read the manuals
at some point, you will be surprised how much useful stuff
is there!

> P.S. I know i should have read the documenation before even
> trying to install it but to be honest I don't think that many
> people do that.

It's often worth just glancing at a top level readme file, even
if you don't have time for the full doc!

> P.P.S Good news that GNAT 3.12p is out soon

Yup, and I think you will find a lot of good stuff there.
Here for reference is the list of features new in 3.12:

Enum_Rep can now be applied to integer types and objects. This
allows its use on (<>) formal discrete types in generic packages
and subprograms.

A preliminary version of the Data Decomposition Annex is now
available for use in ASIS. This preliminary version supports
only the simple typ model, and does not yet allow queries with
Portable_Data arguments.

The -gnatR switch can now be used in conjunction with the -gnatc
switch to obtain representation information without requiring a
full compile.

The standard GNAT library (on Unix systems) now contains a
Makefile called Makefile.adalib which allows recompilation of
the runtim with different compilation options or different
configuration pragmas.

GNAT now handles C, C++ and Fortran convention boolean types
specially. In all these cases, zero/non-zero semantics is used,
so that any non-zero value is treated as equivalent to True.
This means that the implementation of Interfaces.Fortran.LOGICAL
is more accurate and provides a convenient way of importing C
int values used as boolean values.

GNORT now permits the use of allocators and it is also possible
to explicitly raise Program_Error. These calls are supported by
user defined subprograms. See GNORT documentation for full
details.

A new package, GNAT.Current_Exception is provided for access to
the current exception name and information. This is provided for
compatibility with other Ada 83 compilers. See g-curexc.ads for
a full description of this package.

A new gnatbind option, -shared, enables the use of a shared GNAT
library when available (currently DEC Unix, SGI IRIX and
OpenVMS). Static GNAT library is the default on all targets but
VMS and SGI IRIX.

A new tool is provided, gnatdll. This is an NT/Win9x specific
tool to help in constructing DLLs.

Complete rewrite of the section of NT/Win9x specific features
and documentation of the GNAT technology in this area. This
section now clearly explains and documents how to use the
NT/Win9x specific features of the GNAT technology.

The compiler is now built with options -gnatpn instead of
-gnata. This means that the front end of the compiler is
considerably faster, up to 2-3 times faster in some cases. The
cases where you will see the biggest speed up are in -gnatc
compilations with no code generation, or if very large specs are
with'ed from smaller units.

If pragma Suppress is used in the gnat.adc file, this now
properly suppresses exceptions in all files compiled in the
presence of this gnat.adc file (Suppress pragmas in gnat.adc
were previously ignored, which is in accordance with the RM, but
certainly not what is wanted!)

On Digital Unix 4.0D, the run time now takes advantage of the
full range of priorities (0 .. 63).

In -gnatc mode, an existing up to date ali file is no longer
destroyed. In particular this means that the -gnatc -gnatt
compilations used by ASIS do not destroy existing ali files.

A new switch -gnaty activates style checking features in the
compiler. These roughly correspond to the checking done by the
special internal -gnatg flag, except that -gnaty allows
extensive choice of which checks are to be performed, and also
allows parametrization, e.g. of the indent level that is
enforced.

The handling of aggregates has been optimized in many cases,
generating more efficient code and less memory usage.

The binder now generates an Ada package as the main program by
default instead of a C program. The generated files are called
b~xxx.ads/adb, where xxx is the name of the main program. The -C
switch for both gnatbind and gnatlink can be used to get the old
behavior of generating the main program in C.

The compilation switches are now stored in the ali file (lines
starting with A). This is used to implement the corresponding
ASIS option to retrieve the command line arguments.

A new pragma Finalize_Storage_Only has been implemented. It
indicates that a Finalize routine is present only for the
purposes of releasing storage, and that thus the Finalize call
can be omitted in some cases (e.g. for objects declared at the
library level).

A function and a procedure to retrieve the current working
directory have been added in g-dirope.ad[sb].

Gcov, a test coverage program is now distributed with GNAT. See
the gcc documentation for its use.

pragma Task_Info is now available for AiX and can be used to
specify the scheduling contention scope of each Ada task.

New switches -nostdinc and -nostdlib for gnatmake and gnatbind.
New switch -nostdinc for gcc/gnat1 and gnatls. -nostdinc turns
off looking for sources in the system default directory.
-nostdlib turns off looking for library files in the system
default directory.

[VMS] Wildcard directory specifications accepted and expanded in
/SEARCH qualifiers and ADA_{INCLUDE,OBJECTS}_PATH logicals.

Add support for Windows NT Resources. Under NT there are two new
tools. RCL the resource compiler and res2coff to convert a
binary resources file to a coff object file to be linked with a
program.

A new package GNAT.Traceback provides non-symbolic tracebacks at
run time on Solaris and Linux.

A new package GNAT.Traceback.Symbolic provides symbolic
tracebacks at run time on Solaris and Linux.

A new package GNAT.Regpat implements the full V7 regular
expression matching, including such features as anchors, and is
thus a more complete implementation than that in GNAT.Regexp,
which is retained for compatibility (and is in any case more
appropriate for certain functions).

The packages Calendar and Ada.Real_Time for the NT/Win9x
implementation now use a high resolution clock providing a
resolution of 1 micro-sec.

A new convention DLL has been added to simplify the development
of DLL's using the NT/Win9x port of GNAT..

The convention Stdcall is now available for variables as well as
subprograms for the NT/Win9x port of GNAT.

A restricted version of the run time is now provided. This
version of the run time is automatically used if the appropriate
set of restrictions is used. A new pragma Restricted_Run_Time
sets this set of restrictions. The restricted run-time is more
efficient for the set of allowed operations.

A new pragma Ravenscar establishes the set of restrictions that
corresponds with the Ravenscar profile for limited tasking. This
is a more restrictive set than Restricted_Run_Time, so use of
pragma Ravenscar will also cause th restricted run time to be
used.

A new restriction identifier No_Complex_Barriers has been added
which causes barriers to be restricted to simple boolean
variables declare within the protected type. This is one of the
Ravenscar restrictions.

A new restriction identifier No_Select_Statements has been added
which completely eliminates the use of select statements. This
is one of the Ravenscar restrictions

The list of switches printed out when the -gnath option is used
now includes common gcc switches.

The handling of protected objects with no entries has been
simplified and optimized.

A new switch -gnatR causes the compiler to output representation
information for declared arrays and records.

A new switch -gnatD causes the compiler to generate files with
names x.dg (where x is the source file name) that contain the
expanded (-gnatG) code and to force debugging information to
refer to these files. This allows source level debugging using
the expanded code.

The package GNAT.Command_Line has been updated to handle
sections on the command line, as in gnatmake (-largs, -bargs,
...). There is also a new character '!' to specify that a switch
must have a parameter, and that there must be no space between
the two. Finally, a new special switch '*' has been created, to
match any item on the command line.

Shared passive partitions are fully implemented, including
support for protected objects that provide global locking
capability. The implementation allows the use of shared passive
partitions to communicate between separate programs as well as
between partitions of a single distibuted program, and also
provides for automatic persistance from one run to another.

A new flag -O for gnatbind gives a complete list of objects that
are needed by the Ada part of the program.

The sorting packages GNAT.Heap_Sort_A, GNAT.Heap_Sort_G,
GNAT.Bubble_Sort_A and GNAT. Bubble_Sort_G use subtype Natural
instead of Positive for the number of items to sort, so it is no
longer an error to sort an empty  range of items.

A new package GNAT.Threads (in files g-thread.ads/adb) provides
a general facility for foreign code (e.g. written in C) to
create threads in a manner known to the Ada run-time system, so
that these threads can freely call Ada code that uses explicit
or implicit tasking constructs.

The Assert pragma now permits expressions of types derived from
Boolean instead of requiring Standard.Boolean itself.

A new flag -z for gnatmake and gnatbind allows the more
convenient  compilation/binding/linking of an Ada program
without a main subprogram. The execution of such a program is
identical to the one of the program with an empty main
subprogram with a "with" clause on the main package.

The output format of gnatxref has been modified to be in
columnar format so that it is easier to read.

The gnatfind utility now accepts wild cards in the file name to
allow a set of files to be searched, and this works on all
operating systems.

The gnatprep utility now supports boolean expressions (and, or,
and then, or else, =, 'Defined), and has a new command line
switch to define symbols.

A new optimization circuit removes many subscript checks in
loops in the cases where the range of the loop can be determined
to be in range of the subscript.

The location (file and line number) at which an exception was
raised now appears by default in the exception message, and the
message for an unhandled exception includes this information.

Zero cost exceptions are now implemented in DEC Unix and on SGI
Irix. On these two targets, zero cost exception handling is the
standard default. You can select longjmp/setjmp exception
handling (smaller executables) by using the -gnatL switch on all
compilations including the library units. The switch -gnatZ can
be used to enable zero cos exceptions on certain other targets
including NT, but these are partial implementations in which
exceptions cannot be propagated through C code (but for all Ada
programs, this will work correctly).

In the DEC Unix version, foreign threads (those created outside
Ada) are now recognized automatically and converted to Ada tasks
for proper treatment by the Ada run time as Ada tasks.

24-bit packed components are now permitted in GNORT mode
provided that the alignment of the component type is explicitly
set to 1.

A new attribute System'To_Address (X) has exactly the same
result value as System.Storage_Elements.To_Address (X), except
that the result is a static value if the input value is static,
allowing its use in a package to which pragma Preelaborate
applies.

It is now permissible to declare library variables whose nominal
type is unconstrained String in GNORT mode if the initializing
expression is a string literal.


Robert Dewar
Ada Core Tecnologies


Sent via Deja.com http://www.deja.com/
Before you buy.




  reply	other threads:[~1999-09-26  0:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-09-25  0:00 [A bit OT] Problems with GNAT 3.11p the middleman
1999-09-25  0:00 ` Robert Dewar
1999-09-25  0:00   ` the middleman
1999-09-26  0:00     ` Robert Dewar [this message]
1999-09-25  0:00 ` Preben Randhol
1999-09-25  0:00   ` the middleman
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox