comp.lang.ada
 help / color / mirror / Atom feed
* ANNOUNCEMENT - GNAT 3.13p availability
@ 2000-08-08  0:00 Bernard Banner
  2000-08-10  0:00 ` Claw & " tmoran
  0 siblings, 1 reply; 10+ messages in thread
From: Bernard Banner @ 2000-08-08  0:00 UTC (permalink / raw)
  To: comp.lang.ada


           Announcing GNAT version 3.13p

Ada Core Technologies announces the availability of version
3.13p of GNAT. This version of GNAT is derived from GNAT
Professional version 3.13a1, and like previous public
versions of GNAT is made freely available with the specific
intention of supporting student use and academic research
use of the Ada 95 language.

The public version of 3.13p is available for the following
targets in binary form:

    Sparc Solaris
    x86 Linux
    Windows 95/98/NT/2000

These versions may be obtained from the usual download
sites for public GNAT releases. Check cs.nyu.edu ftp
directories pub/gnat for details.

The following are new features in version 3.13p

  The package GNAT.Regpat has been enhanced to provide an almost full support
  for Perl-like regular expressions, including several new constructs.

  On unix systems, it is now possible to install GNAT at any location
  without setting any environment variable.

  A warning is issued for the use of Import/Export_Valued_Procedure if
  the default Ada convention is used, since it makes no sense to use
  convention Ada for such a procedure, the only point of the feature
  is to interface with foreign convention procedures. This prevents
  hard to find errors resulting in incorrect behavior at run time.

  A new style switch -gnatyn (STANDARD_CASING in the VMS version) checks
  that all entities from package Standard are cased in a manner consistent
  with the way this package is presented in the Ada Reference Manual.

  A simple way of interfacing with C++ is now documented in the user's
  guide and has been added to the examples directory.

  A new gnatmake switch (-s) causes recompilation of a file if its
  compilation options (e.g. optimization level) have changed.

  A new gnatdll switch (-k) removed Stdcall @nn suffix from the
  import library's exported names.

  A new GNAT library package (GNAT.Float_Control in file g-flocon.ads)
  provides an interface for resetting the floating-point processor into
  the required mode.

  A new GNAT library package (GNAT.Exceptions in file g-except.ads)
  provides a mechanism for raising predefined exceptions with messages
  from Pure units.

  A new pragma, Suppress_Debug_Info, provides for suppressing debugging
  information for selected entities.

  Additional optimization circuits in aggregate handling result in many
  more aggregate assignments being handled in place, instead of generating
  an extra temporary.

  The GNAT Reference manual now contains summary documentation of the GNAT
  library routines. The primary documentation is still in the specs of the
  relevant packages, but the document summarizes what facilities are
  available.

  The package Ada.Strings.Unbounded.Text_IO is now documented in the
  GNAT reference manual.

  A new package Ada.Strings.Wide_Unbounded.Wide_Text_IO has been added
  to provide Wide_Text_IO facilities for Unbounded_Wide_String.

  The -mlongcall switch as well as the __shortcall__ attribute is now provided
  on all powerpc ports. See the GCC documentation for more details.

  The Linker_Options pragma can now take multiple options, which are
  guaranteed to apear in the sequence given in the pragma.

  The gnatbind -E option (stack tracebacks) is now supported under
  Windows NT.

  New switches -gnatwa and -gnatwA are available to turn all
  optional warnings on/off respectively.

  The syntax for the -gnatw warning switch now allows a string of
  options after the w. For example -gnatwaLe turns on all optional
  warnings except elaboration warnings and considers warnings to be
  errors.

  The generated code for many slice assignments has been improved, resulting
  in considerably improved execution time on most targets.

  The generated code for multi-dimensional arrays has been improved,
  significantly improving performance in many situations.

  The compiler now does a much more effective job of suppressing checks
  in array references in loops where the arrays involved are parameters
  that are unconstrained array types, or pointers to unconstrained arrays.

  On VxWorks cross-compilers, a new package called Interfaces.VxWorks provides
  provides a limited binding to the VxWorks API. In particular, it interfaces
  with the VxWorks hardware interrupt facilities.

  The package GNAT.Regexp no longer has any size limitation, and can handle
  complex regular expressions.

  A new warning switch -gnatwc turns on warnings for relational and
  membership operators appearing in statements (e.g. if statements)
  whose results are known at compile time to be always true or
  always false.

  A new pragma Style_Checks allows selection of style checks in a manner
  similar to the existing compiler switch, and also allows the style
  checks to be temporarily turned off and then turned back on again.

  The binary releases now contain the necessary headers to compile the
  C files in the runtime without having to do a full build of GNAT from
  sources.

  Makefile.adalib now also recompiles the C part of the GNAT run time,
  providing the ability to rebuild completely the GNAT libraries with the
  binary distribution.

  Makefile.adalib is now available for cross compilers, as well as the
  native versions of GNAT

  The -gnatwu switch now also provides warnings about possible access to
  uninitialized out parameters.

  The -gnatyk switch (check identifier casing) error messages now contain
  a source location reference to the definition of the relevant identifier.

  It is now permissible to specify the non-default Bit_Order for record
  subtypes. Component clauses for such types must either specify an
  integral number of bytes, or the component must lie entirely within
  one byte. Note that, in accordance with the RM, no reordering of bytes
  is done, the only effect is to renumber bits. This feature is therefore
  only of limited use in dealing with big/little-endian interfacing.

  Default_Bit_Order is now static. This is strictly a violation of the RM
  requirement that it be non-static, but everyone agrees this was a mistake,
  and an AI is expected to "fix" this mistake. Other Ada 95 compilers are
  already consistent with this modified interpreation of the RM.

  Florist has been ported to Solaris 7 and HP-UX 11.00

  GNAT now fully supports HP-UX 11.00, including a dual tasking run time
  that provides access to the DCE run time for compatibility with HP-UX 10.20,
  and to the POSIX pthread run time.

  Interrupt handling on HP-UX has been rewritten to provide a more powerful
  and less restrictive signal handling. In particular, the signals SIGIO and
  SIGPIPE can now be handled via Ada.Interrupts.

  The listing generated by the -gnatR switch now includes alignment values
  for array and record types.

  The NT version of GNAT now generates object files that are fully compatible
  with the standard Microsoft linker, so this linker can be used instead of
  the GNU ld program to build NT executables.

  The default stack size on NT for tasking program has been reduced to 8Mb
  (instead of 32Mb). This increase the default maximum number of tasks
  from approximately 60 to a value around 250.

  The gnathtml tool can now read the list of files to convert from a file,
  eliminating the command line length problem on some systems.

  The parent type of derived types is now recorded in the cross-reference
  section of the ali files. The new ali format is backward compatible with
  the previous one.

  The gnatfind and gnatxref tools have been extended to display the parent
  type of derived types. Furthermore gnatfind is now able to display the full
  type derivation informations for a specific type.

  Shared libraries are now provided as an option (via the -shared gnatbind
  switch) on four additional targets: Solaris x86, Solaris sparc, Linux and
  SCO UnixWare.

  New restrictions No_Implicit_Conditionals and No_Implicit_Loops have
  been added for greater control over generated code. This is particularly
  useful in a safety-critical/certification environment using GNORT (GNAT
  with no run time)

  The performance of the elementary trigononmetric functions has been
  substantially improved.

  A new section has been added to the GNAT Reference Manual providing
  a complete description of the set of representation pragmas and
  pragmas that are accepted by GNAT, and their effect.

  The implementation of the ASIS Data Decomposition Annex is now complete,
  with all queries fully supported.

  More static checking is now done for pragma Restrictions (No_Recursion),
  and most common cases are now detected and flagged as illegalities.

  A new package GNAT.Calendar is provided. It deals with Hour, Minute,
  Seconds, Day_Of_Week, Day_In_Year, Week_In_Year. There is also two
  functions to do conversions between Duration and C timeval struct.

  A new package GNAT.Calendar.Time_IO is provided. This package implements
  formatted output of Ada.Calendar.Time. The format string uses a format
  similar to the one used by the date UNIX command.

  The gnatdll tool now accepts the -I switch to search source and
  object files in specified directories.

  The optimization of checks has been significantly improved, and many
  unnecessary checks, particularly in connection with type conversions and
  the use of the pos operator, have been removed.

  The traceback stored in the exception occurrence (using the gnatbind -E
  switch) now gives accurate values in the case of a reraise.

  The structure used to hold task data has been split to allow restricted
  tasking implementations to use less storage for each task created.

  Enumeration representation clauses for types derived from Boolean
  are now fully supported.

  Variable shift instructions are now generated for multiplications or
  divisions by powers of 2 (e.g. x * 2 ** y, where y is Natural).

  External symbol names and debugging symbols are now more fully qualified.
  This avoids some peculiar naming conflicts for example in the case where
  there is a child package and nested package with the same name, and also
  improves the behavior of gdb when fully qualified names are given.

  An extended form of the Source_File_Name pragma permits handling the
  unusual case where a subunit and child unit have identical qualified
  names. This is unusual, but is allowed by the rules of the language,
  although both versions cannot appear in a single partition.

  The OpenVMS version of GNAT now fully supports the use of mixed-case
  external names. This solves a number of compatibility problems in
  this area, which could show up as unexpected duplicate names.

  A new pragma External_Name_Casing is provided for controlling the
  casing of external names. This is primarily for use in OpenVMS systems,
  but is available in all implementations.

  A new pragma Extensions_Allowed (ON | OFF) is provided for local control
  of whether language extensions are allowed. This pragma may also be used
  as a configuration pragma (e.g. in the gnat.adc file) to control the use
  of extensions for a series of compilations.

  The -gnatwu flag now separately checks specs to make sure that a with in
  a spec is now actually used in the spec. If the with is used only in the
  body, the warning suggests moving it to the body.

  The renaming of a constant was implemented as the declaration of a local
  variable whose initial value was the constant being renamed. This avoids
  an indirection, but is inefficient if the constant being renamed is large.
  This optimization is now restricted to objects that fit in registers.








^ permalink raw reply	[flat|nested] 10+ messages in thread

* Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability
  2000-08-08  0:00 ANNOUNCEMENT - GNAT 3.13p availability Bernard Banner
@ 2000-08-10  0:00 ` tmoran
  2000-08-14  0:00   ` Ted Dennison
  0 siblings, 1 reply; 10+ messages in thread
From: tmoran @ 2000-08-10  0:00 UTC (permalink / raw)


Gnat 3.13p has difficulty when a public primitive is overridden in
a private part.  From the Claw mailing list:

>The recently released GNAT 3.13p contains an inheritance bug which prevents
>the successful compilation of Claw (all versions). The problem has been
>reported to the maintainers of GNAT. The problem will cause various
>compilation errors when compiling Claw and programs using Claw. Generally,
>the bug manifests itself by reporting a legal call as if it was a call to an
>undefined subprogram, or a call with an incorrect parameter list.
>
>We are working to create workarounds for the bug (we think we can do so
>without making the workaround version incompatible with the regular version)
>for both the demo and release versions of Claw. In the mean time, we
>recommend avoiding GNAT 3.13p -- continue to use GNAT 3.12p.
>
>We regret any inconvenience.
>
>                        Randy Brukardt
>                        R.R. Software, Inc.
Tom Moran




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability
  2000-08-10  0:00 ` Claw & " tmoran
@ 2000-08-14  0:00   ` Ted Dennison
  2000-08-14  0:00     ` Simon Wright
  2000-08-17  0:00     ` Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability tmoran
  0 siblings, 2 replies; 10+ messages in thread
From: Ted Dennison @ 2000-08-14  0:00 UTC (permalink / raw)


In article <ZPFk5.94902$i5.1405866@news1.frmt1.sfba.home.com>,
  tmoran@bix.com wrote:
> Gnat 3.13p has difficulty when a public primitive is overridden in
> a private part.  From the Claw mailing list:
>
> >The recently released GNAT 3.13p contains an inheritance bug which
> >prevents the successful compilation of Claw (all versions). The

It turns out that OpenToken 2.0 and earlier suffer from this same
problem. I'm curious if it really is a gnat bug though. I could see
someone making a case that since the caller's view of the routine in
question is still abstract, only dynamicly dispatching calls are legal.

Of course the latest version of Gnat is the only compiler that has
*ever* complained about this. But that doesn't nessecarily mean that it
is wrong.

I'd be interested in a Language Laywer ruling on this. Or failing that,
I'd like to know if ACT does consider this a bug. I've put a bit of a
hack work-around in the new version of OpenToken. But if its not a
compiler bug, I should probably put in a real fix.

--
T.E.D.

http://www.telepath.com/~dennison/Ted/TED.html


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




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability
  2000-08-14  0:00   ` Ted Dennison
@ 2000-08-14  0:00     ` Simon Wright
  2000-08-14  0:00       ` Ted Dennison
  2000-08-17  0:00     ` Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability tmoran
  1 sibling, 1 reply; 10+ messages in thread
From: Simon Wright @ 2000-08-14  0:00 UTC (permalink / raw)


Ted Dennison <dennison@telepath.com> writes:

> In article <ZPFk5.94902$i5.1405866@news1.frmt1.sfba.home.com>,
>   tmoran@bix.com wrote:
> > Gnat 3.13p has difficulty when a public primitive is overridden in
> > a private part.  From the Claw mailing list:
> >
> > >The recently released GNAT 3.13p contains an inheritance bug which
> > >prevents the successful compilation of Claw (all versions). The
> 
> It turns out that OpenToken 2.0 and earlier suffer from this same
> problem. I'm curious if it really is a gnat bug though. I could see
> someone making a case that since the caller's view of the routine in
> question is still abstract, only dynamicly dispatching calls are legal.

I wonder whether my article <x7v4s5af41m.fsf@pogner.demon.co.uk>
refers to the same problem? Seems to be in the same ballpark, but that
covers a lot of ground ..

> I'd be interested in a Language Laywer ruling on this. Or failing that,
> I'd like to know if ACT does consider this a bug. I've put a bit of a
> hack work-around in the new version of OpenToken. But if its not a
> compiler bug, I should probably put in a real fix.

I think the LL's are all on vacation. Hope you're having fun, guys!




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability
  2000-08-14  0:00     ` Simon Wright
@ 2000-08-14  0:00       ` Ted Dennison
  2000-08-15  0:00         ` Simon Wright
  0 siblings, 1 reply; 10+ messages in thread
From: Ted Dennison @ 2000-08-14  0:00 UTC (permalink / raw)


In article <x7vem3rwssz.fsf@pogner.demon.co.uk>,
  Simon Wright <simon@pogner.demon.co.uk> wrote:
> Ted Dennison <dennison@telepath.com> writes:
>
> > In article <ZPFk5.94902$i5.1405866@news1.frmt1.sfba.home.com>,
> >   tmoran@bix.com wrote:
> > > Gnat 3.13p has difficulty when a public primitive is overridden in
> > > a private part.  From the Claw mailing list:
> > >
> > > >The recently released GNAT 3.13p contains an inheritance bug
which
> > > >prevents the successful compilation of Claw (all versions). The
> >
> > It turns out that OpenToken 2.0 and earlier suffer from this same
> > problem. I'm curious if it really is a gnat bug though. I could see
> > someone making a case that since the caller's view of the routine in
> > question is still abstract, only dynamicly dispatching calls are
legal.
>
> I wonder whether my article <x7v4s5af41m.fsf@pogner.demon.co.uk>
> refers to the same problem? Seems to be in the same ballpark, but that
> covers a lot of ground ..

Do you mean the message titled "Delegating operations to parent (generic
formal type)" Dated 07/13/2000?

That apppears to be nearly the opposite problem. There Gnat (3.12 and
3.13) is accepting code other compilers aren't. I can't help with
Apex. But given my experience the last couple of years getting another
intermetrics-driven compiler to accept the Booch components, I
definitely wouldn't trust that ancient version of ObjectAda.

Thanks, btw. Whenever I think I've made the inter-relationships between
my types and packages in OpenToken too complex, I can always count on a
jaunt through Booch to cheer me up. :-)


--
T.E.D.

http://www.telepath.com/~dennison/Ted/TED.html


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




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability
  2000-08-14  0:00       ` Ted Dennison
@ 2000-08-15  0:00         ` Simon Wright
  2000-08-16  2:58           ` Ed Falis
  0 siblings, 1 reply; 10+ messages in thread
From: Simon Wright @ 2000-08-15  0:00 UTC (permalink / raw)


Ted Dennison <dennison@telepath.com> writes:

> Thanks, btw. Whenever I think I've made the inter-relationships
> between my types and packages in OpenToken too complex, I can always
> count on a jaunt through Booch to cheer me up. :-)

Curses, my master plan has been detected!




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability
  2000-08-16  2:58           ` Ed Falis
@ 2000-08-16  0:00             ` Simon Wright
  2000-08-16  0:00               ` Booch Component Complexity (was: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability) Ted Dennison
  0 siblings, 1 reply; 10+ messages in thread
From: Simon Wright @ 2000-08-16  0:00 UTC (permalink / raw)


Ed Falis <efalis@pop.ne.mediaone.net> writes:

> Ted Dennison <dennison@telepath.com> writes:
> > Thanks, btw. Whenever I think I've made the inter-relationships
> > between my types and packages in OpenToken too complex, I can always
> > count on a jaunt through Booch to cheer me up. :-)
> 
> Simon Wright <simon.j.wright@amsjv.com> wrote:
> > Curses, my master plan has been detected!
> 
> Indeed. Whenever I really feel like twisting my brain up, I visit
> them, and some of the interesting ways I've seen them put to use ;-)

I'm aware of several places where people have used the BCs in projects
(ie, I've had bug reports). Perhaps you know more (including what the
projects actually _do_!) Do you think people have trouble because of
the lack of documentation, or is it just inventiveness?

> On a more serious level, I guess it raises some interesting
> questions about the price of generality.

I don't think I can properly appreciate the point you and Ted are
making here? On the whole there is one (public) type per package, so
if there was a new Container type Drawer I would expect to generate

  BC.Containers.Drawers             abstract Drawer
  BC.Containers.Drawers.Bounded     concrete Bounded_Drawer
  BC.Containers.Drawers.Dynamic     concrete Dynamic_Drawer
  BC.Containers.Drawers.Unbounded   concrete Unbounded_Drawer

and possibly either

  BC.Containers.Drawers.Bounded.Guarded        concrete Guarded_Bounded_Drawer
  BC.Containers.Drawers.Bounded.Synchronized   ...
  BC.Containers.Drawers.Dynamic.Guarded
  BC.Containers.Drawers.Dynamic.Synchronized
  BC.Containers.Drawers.Unbounded.Guarded
  BC.Containers.Drawers.Unbounded.Synchronized

(I'm working on just having new generics

  BC.Containers.Drawers.Guarded
  BC.Containers.Drawers.Synchronized

to be instantiated with a concrete Drawer form, but the compilers are
giving me grief).

I do agree that this is untidy, you would have thought some mixin
techniques would do the trick, but that wasn't really the brief.


If there's a topic worthy of discussion here, maybe we should retitle
the thread!

-S




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Booch Component Complexity (was: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability)
  2000-08-16  0:00             ` Simon Wright
@ 2000-08-16  0:00               ` Ted Dennison
  0 siblings, 0 replies; 10+ messages in thread
From: Ted Dennison @ 2000-08-16  0:00 UTC (permalink / raw)


In article <x7vaeed68kt.fsf@pogner.demon.co.uk>,
  Simon Wright <simon@pogner.demon.co.uk> wrote:
> Ed Falis <efalis@pop.ne.mediaone.net> writes:
> > On a more serious level, I guess it raises some interesting
> > questions about the price of generality.
>
> I don't think I can properly appreciate the point you and Ted are
> making here? On the whole there is one (public) type per package, so

I don't think anyone's making a complaint exactly. Its not like the
components are more complex than they need to be. They are just not for
beginners.

For instance, I didn't have much trouble using them here at work. It
took an afternoon of spelunking to figure out what I needed to do, which
was really time well-spent because I learned a *lot* about Ada95 looking
through that code.

But I've been writing Ada code for over 10 years. Most of the rest of my
co-workers are afraid of them.

Another thing I should mention is that I've found OpenToken + Booch
Compoents to be a very powerful combination. For instance, we've got a
package that reads configuration item defintions (string or integer)
from a config file at startup, loads them into a dictionary, then passes
their valule back to clients when requested. I wrote it quite quickly in
about 130 lines of code (22 of which were "with" statements!).


--
T.E.D.

http://www.telepath.com/~dennison/Ted/TED.html


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




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability
  2000-08-15  0:00         ` Simon Wright
@ 2000-08-16  2:58           ` Ed Falis
  2000-08-16  0:00             ` Simon Wright
  0 siblings, 1 reply; 10+ messages in thread
From: Ed Falis @ 2000-08-16  2:58 UTC (permalink / raw)


Ted Dennison <dennison@telepath.com> writes:
> Thanks, btw. Whenever I think I've made the inter-relationships
> between my types and packages in OpenToken too complex, I can always
> count on a jaunt through Booch to cheer me up. :-)

Simon Wright <simon.j.wright@amsjv.com> wrote:
> Curses, my master plan has been detected!

Indeed. Whenever I really feel like twisting my brain up, I visit them,
and some of the interesting ways I've seen them put to use ;-)

On a more serious level, I guess it raises some interesting questions
about the price of generality.

- Ed



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability
  2000-08-14  0:00   ` Ted Dennison
  2000-08-14  0:00     ` Simon Wright
@ 2000-08-17  0:00     ` tmoran
  1 sibling, 0 replies; 10+ messages in thread
From: tmoran @ 2000-08-17  0:00 UTC (permalink / raw)


>It turns out that OpenToken 2.0 and earlier suffer from this same
>problem. I'm curious if it really is a gnat bug though. I could see
>someone making a case that since the caller's view of the routine in
>question is still abstract, only dynamicly dispatching calls are legal.
  I reported the problem to ACT some months ago and have been assured
that they have a fix, which I understand will be in the next Gnat release.




^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2000-08-17  0:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-08-08  0:00 ANNOUNCEMENT - GNAT 3.13p availability Bernard Banner
2000-08-10  0:00 ` Claw & " tmoran
2000-08-14  0:00   ` Ted Dennison
2000-08-14  0:00     ` Simon Wright
2000-08-14  0:00       ` Ted Dennison
2000-08-15  0:00         ` Simon Wright
2000-08-16  2:58           ` Ed Falis
2000-08-16  0:00             ` Simon Wright
2000-08-16  0:00               ` Booch Component Complexity (was: Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability) Ted Dennison
2000-08-17  0:00     ` Claw & Re: ANNOUNCEMENT - GNAT 3.13p availability tmoran

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