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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,f8cc5d6b825da6e8,start X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: ADA CORE TECHNOLOGIES ANNOUNCES THE RELEASE OF GNAT VERSION 3.10p Date: 1997/09/14 Message-ID: X-Deja-AN: 272592558 Organization: New York University Newsgroups: comp.lang.ada Date: 1997-09-14T00:00:00+00:00 List-Id: 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.