From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b6026bc2dec7a883,start X-Google-Attributes: gid103376,public From: Bernard Banner Subject: ANNOUNCEMENT - GNAT 3.13p availability Date: 2000/08/08 Message-ID: X-Deja-AN: 655842132 To: comp.lang.ada@ada.eu.org X-Sender: banner@nile Content-Type: TEXT/PLAIN; charset=US-ASCII X-Complaints-To: usenet@enst.fr X-Trace: menuisier.enst.fr 965743505 29472 137.194.161.2 (8 Aug 2000 14:05:05 GMT) Organization: ENST, France List-Id: comp.lang.ada mail<->news gateway X-Mailman-Version: 2.0beta5 X-BeenThere: comp.lang.ada@ada.eu.org Mime-Version: 1.0 Reply-To: comp.lang.ada@ada.eu.org NNTP-Posting-Date: 8 Aug 2000 14:05:05 GMT Newsgroups: comp.lang.ada Date: 2000-08-08T14:05:05+00:00 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.